Documentation ¶
Index ¶
- Variables
- func NotAllowed(c *gin.Context)
- func NotFound(c *gin.Context)
- type APIKey
- type APIKeyPage
- type APIv1
- func (s *APIv1) APIKeyDelete(ctx context.Context, id string) (err error)
- func (s *APIv1) APIKeyDetail(ctx context.Context, id string) (out *APIKey, err error)
- func (s *APIv1) APIKeyList(ctx context.Context, in *PageQuery) (out *APIKeyPage, err error)
- func (s *APIv1) APIKeyUpdate(ctx context.Context, in *APIKey) (out *APIKey, err error)
- func (s *APIv1) Do(req *http.Request, data interface{}, checkStatus bool) (rep *http.Response, err error)
- func (s *APIv1) MemberCreate(ctx context.Context, in *Member) (out *Member, err error)
- func (s *APIv1) MemberDelete(ctx context.Context, id string) (err error)
- func (s *APIv1) MemberDetail(ctx context.Context, id string) (out *Member, err error)
- func (s *APIv1) MemberList(ctx context.Context, in *PageQuery) (out *MemberPage, err error)
- func (s *APIv1) MemberUpdate(ctx context.Context, in *Member) (out *Member, err error)
- func (s *APIv1) NewRequest(ctx context.Context, method, path string, data interface{}, params *url.Values) (req *http.Request, err error)
- func (s *APIv1) ProjectAPIKeyCreate(ctx context.Context, id string, in *APIKey) (out *APIKey, err error)
- func (s *APIv1) ProjectAPIKeyList(ctx context.Context, id string, in *PageQuery) (out *ProjectAPIKeyPage, err error)
- func (s *APIv1) ProjectCreate(ctx context.Context, in *Project) (out *Project, err error)
- func (s *APIv1) ProjectDelete(ctx context.Context, id string) (err error)
- func (s *APIv1) ProjectDetail(ctx context.Context, id string) (out *Project, err error)
- func (s *APIv1) ProjectList(ctx context.Context, in *PageQuery) (out *ProjectPage, err error)
- func (s *APIv1) ProjectTopicCreate(ctx context.Context, id string, in *Topic) (out *Topic, err error)
- func (s *APIv1) ProjectTopicList(ctx context.Context, id string, in *PageQuery) (out *ProjectTopicPage, err error)
- func (s *APIv1) ProjectUpdate(ctx context.Context, in *Project) (out *Project, err error)
- func (c *APIv1) SetCSRFProtect(protect bool) error
- func (c *APIv1) SetCredentials(token string)
- func (s *APIv1) SignUp(ctx context.Context, in *ContactInfo) (err error)
- func (s *APIv1) Status(ctx context.Context) (out *StatusReply, err error)
- func (s *APIv1) TenantCreate(ctx context.Context, in *Tenant) (out *Tenant, err error)
- func (s *APIv1) TenantDelete(ctx context.Context, id string) (err error)
- func (s *APIv1) TenantDetail(ctx context.Context, id string) (out *Tenant, err error)
- func (s *APIv1) TenantList(ctx context.Context, in *PageQuery) (out *TenantPage, err error)
- func (s *APIv1) TenantMemberCreate(ctx context.Context, id string, in *Member) (out *Member, err error)
- func (s *APIv1) TenantMemberList(ctx context.Context, id string, in *PageQuery) (out *TenantMemberPage, err error)
- func (s *APIv1) TenantProjectCreate(ctx context.Context, id string, in *Project) (out *Project, err error)
- func (s *APIv1) TenantProjectList(ctx context.Context, id string, in *PageQuery) (out *TenantProjectPage, err error)
- func (s *APIv1) TenantUpdate(ctx context.Context, in *Tenant) (out *Tenant, err error)
- func (s *APIv1) TopicDelete(ctx context.Context, id string) (err error)
- func (s *APIv1) TopicDetail(ctx context.Context, id string) (out *Topic, err error)
- func (s *APIv1) TopicList(ctx context.Context, in *PageQuery) (out *TopicPage, err error)
- func (s *APIv1) TopicUpdate(ctx context.Context, in *Topic) (out *Topic, err error)
- type ClientOption
- type ContactInfo
- type Member
- type MemberPage
- type PageQuery
- type Project
- type ProjectAPIKeyPage
- type ProjectPage
- type ProjectTopicPage
- type Reply
- type StatusReply
- type Tenant
- type TenantClient
- type TenantMemberPage
- type TenantPage
- type TenantProjectPage
- type Topic
- type TopicPage
Constants ¶
This section is empty.
Variables ¶
var ( ErrAPIKeyIDRequired = errors.New("apikey id is required for this endpoint") ErrMemberIDRequired = errors.New("member id is required for this endpoint") ErrProjectIDRequired = errors.New("project id is required for this endpoint") ErrTenantIDRequired = errors.New("tenant id is required for this endpoint") ErrTopicIDRequired = errors.New("topic id is required for this endpoint") ErrInvalidTenantField = errors.New("invalid tenant field") )
Functions ¶
func NotAllowed ¶
NotAllowed returns a JSON 405 response for the API.
Types ¶
type APIKey ¶ added in v0.2.0
type APIKey struct { ID int `json:"id,omitempty"` ClientID string `json:"client_id"` ClientSecret string `json:"client_secret,omitempty"` Name string `json:"name"` Owner string `json:"owner,omitempty"` Permissions []string `json:"permissions,omitempty"` Created string `json:"created,omitempty"` Modified string `json:"modified,omitempty"` }
type APIKeyPage ¶ added in v0.2.0
type APIv1 ¶
type APIv1 struct {
// contains filtered or unexported fields
}
APIv1 implements the TenantClient interface
func (*APIv1) APIKeyDelete ¶ added in v0.2.0
func (*APIv1) APIKeyDetail ¶ added in v0.2.0
func (*APIv1) APIKeyList ¶ added in v0.2.0
func (*APIv1) APIKeyUpdate ¶ added in v0.2.0
func (*APIv1) Do ¶
func (s *APIv1) Do(req *http.Request, data interface{}, checkStatus bool) (rep *http.Response, err error)
Do executes an http request against the server, performs error checking, and deserializes response data into the specified struct.
func (*APIv1) MemberCreate ¶ added in v0.2.0
func (*APIv1) MemberDelete ¶ added in v0.2.0
func (*APIv1) MemberDetail ¶ added in v0.2.0
func (*APIv1) MemberList ¶ added in v0.2.0
func (*APIv1) MemberUpdate ¶ added in v0.2.0
func (*APIv1) NewRequest ¶
func (*APIv1) ProjectAPIKeyCreate ¶ added in v0.2.0
func (*APIv1) ProjectAPIKeyList ¶ added in v0.2.0
func (*APIv1) ProjectCreate ¶ added in v0.2.0
func (*APIv1) ProjectDelete ¶ added in v0.2.0
func (*APIv1) ProjectDetail ¶ added in v0.2.0
func (*APIv1) ProjectList ¶ added in v0.2.0
func (*APIv1) ProjectTopicCreate ¶ added in v0.2.0
func (*APIv1) ProjectTopicList ¶ added in v0.2.0
func (*APIv1) ProjectUpdate ¶ added in v0.2.0
func (*APIv1) SetCSRFProtect ¶ added in v0.2.0
SetCSRFProtect is a helper function to set CSRF cookies on the client. This is not possible in a browser because of the HttpOnly flag. This method should only be used for testing purposes and an error is returned if the URL is not localhost. For live clients - the server should set these cookies. If protect is false, then the cookies are removed from the client by setting the cookies to an empty slice.
func (*APIv1) SetCredentials ¶ added in v0.2.0
SetCredentials is a helper function for external users to override credentials at runtime by directly passing in the token, which is useful for testing. TODO: Pass in a credentials interface instead of the token string.
func (*APIv1) TenantCreate ¶ added in v0.1.1
func (*APIv1) TenantDelete ¶ added in v0.2.0
func (*APIv1) TenantDetail ¶ added in v0.2.0
func (*APIv1) TenantList ¶ added in v0.1.1
func (*APIv1) TenantMemberCreate ¶ added in v0.2.0
func (*APIv1) TenantMemberList ¶ added in v0.2.0
func (*APIv1) TenantProjectCreate ¶ added in v0.2.0
func (*APIv1) TenantProjectList ¶ added in v0.2.0
func (*APIv1) TenantUpdate ¶ added in v0.2.0
func (*APIv1) TopicDetail ¶
type ClientOption ¶
ClientOptions allows us to configure the APIv1 client when it is created.
func WithClient ¶
func WithClient(client *http.Client) ClientOption
type ContactInfo ¶
type ContactInfo struct { FirstName string `json:"firstName"` LastName string `json:"lastName"` Email string `json:"email"` Country string `json:"country"` Title string `json:"title"` Organization string `json:"organization"` CloudServiceProvider string `json:"cloudServiceProvider"` }
ContactInfo allows users to sign up for email notifications from SendGrid and is specifically used to allow users to request Ensign Private Beta access.
type MemberPage ¶ added in v0.2.0
type ProjectAPIKeyPage ¶ added in v0.2.0
type ProjectPage ¶ added in v0.2.0
type ProjectTopicPage ¶ added in v0.2.0
type Reply ¶
Reply contains standard fields that are used for generic API responses and errors.
func ErrorResponse ¶
func ErrorResponse(err interface{}) Reply
Constructs a new response for an error or returns unsuccessful.
type StatusReply ¶
type StatusReply struct { Status string `json:"status"` Uptime string `json:"uptime,omitempty"` Version string `json:"version,omitempty"` }
Returned on status requests.
type TenantClient ¶
type TenantClient interface { Status(context.Context) (*StatusReply, error) SignUp(context.Context, *ContactInfo) error TenantList(context.Context, *PageQuery) (*TenantPage, error) TenantCreate(context.Context, *Tenant) (*Tenant, error) TenantDetail(ctx context.Context, id string) (*Tenant, error) TenantUpdate(context.Context, *Tenant) (*Tenant, error) TenantDelete(ctx context.Context, id string) error TenantMemberList(ctx context.Context, id string, in *PageQuery) (*TenantMemberPage, error) TenantMemberCreate(ctx context.Context, id string, in *Member) (*Member, error) MemberList(context.Context, *PageQuery) (*MemberPage, error) MemberCreate(context.Context, *Member) (*Member, error) MemberDetail(ctx context.Context, id string) (*Member, error) MemberUpdate(context.Context, *Member) (*Member, error) MemberDelete(ctx context.Context, id string) error TenantProjectList(ctx context.Context, id string, in *PageQuery) (*TenantProjectPage, error) TenantProjectCreate(ctx context.Context, id string, in *Project) (*Project, error) ProjectList(context.Context, *PageQuery) (*ProjectPage, error) ProjectCreate(context.Context, *Project) (*Project, error) ProjectDetail(ctx context.Context, id string) (*Project, error) ProjectUpdate(context.Context, *Project) (*Project, error) ProjectDelete(ctx context.Context, id string) error ProjectTopicList(ctx context.Context, id string, in *PageQuery) (*ProjectTopicPage, error) ProjectTopicCreate(ctx context.Context, id string, in *Topic) (*Topic, error) TopicList(context.Context, *PageQuery) (*TopicPage, error) TopicDetail(ctx context.Context, id string) (*Topic, error) TopicUpdate(context.Context, *Topic) (*Topic, error) TopicDelete(ctx context.Context, id string) error ProjectAPIKeyList(ctx context.Context, id string, in *PageQuery) (*ProjectAPIKeyPage, error) ProjectAPIKeyCreate(ctx context.Context, id string, in *APIKey) (*APIKey, error) APIKeyList(context.Context, *PageQuery) (*APIKeyPage, error) APIKeyDetail(ctx context.Context, id string) (*APIKey, error) APIKeyUpdate(context.Context, *APIKey) (*APIKey, error) APIKeyDelete(ctx context.Context, id string) error }
func New ¶
func New(endpoint string, opts ...ClientOption) (_ TenantClient, err error)
New creates a new API v1 client that implements the Tenant Client interface.