Documentation
¶
Overview ¶
Package client provides a server-side Platform93 machine client.
Index ¶
- type Attachment
- type BillingProfile
- type BillingSummary
- type Client
- func (c *Client) CreateInvitation(ctx context.Context, input CreateInvitation) (Invitation, error)
- func (c *Client) GetInvitation(ctx context.Context, id string) (Invitation, error)
- func (c *Client) GetUser(ctx context.Context, id string) (User, error)
- func (c *Client) GetWorkspace(ctx context.Context, id string) (Workspace, error)
- func (c *Client) GetWorkspaceAccess(ctx context.Context, id string) (Page[WorkspaceAccess], error)
- func (c *Client) ListInvitations(ctx context.Context) (Page[Invitation], error)
- func (c *Client) ListUsers(ctx context.Context) (Page[User], error)
- func (c *Client) ListWorkspaces(ctx context.Context) (Page[Workspace], error)
- func (c *Client) PublishEvent(ctx context.Context, input CustomEvent, idempotencyKey string) (PublishedEvent, error)
- func (c *Client) ResendInvitation(ctx context.Context, id string) (Invitation, error)
- func (c *Client) RevokeInvitation(ctx context.Context, id string) error
- func (c *Client) SendNotification(ctx context.Context, input Notification, idempotencyKey string) (QueuedNotification, error)
- func (c *Client) SubjectBilling(ctx context.Context, subjectType, subjectID string) (BillingSummary, error)
- func (c *Client) SubjectEntitlements(ctx context.Context, subjectType, subjectID string) (Page[EntitlementGrant], error)
- func (c *Client) UpdateSecret(secret string)
- type CreateInvitation
- type CustomEvent
- type EntitlementGrant
- type Invitation
- type Notification
- type Page
- type PublishedEvent
- type QueuedNotification
- type Subscription
- type User
- type Workspace
- type WorkspaceAccess
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attachment ¶
type BillingProfile ¶
type BillingProfile struct {
ID string `json:"id"`
SubjectType string `json:"subject_type"`
SubjectID string `json:"subject_id"`
Name *string `json:"name"`
Email *string `json:"email"`
TaxID *string `json:"tax_id"`
DefaultAddressID *string `json:"default_address_id"`
Version int64 `json:"version"`
}
type BillingSummary ¶
type BillingSummary struct {
SubjectType string `json:"subject_type"`
SubjectID string `json:"subject_id"`
BillingProfile *BillingProfile `json:"billing_profile"`
Subscriptions []Subscription `json:"subscriptions"`
}
type Client ¶
type Client struct {
BaseURL string
ApplicationID string
ClientID string
ClientSecret string
Scopes []string
HTTPClient *http.Client
// contains filtered or unexported fields
}
func (*Client) CreateInvitation ¶
func (c *Client) CreateInvitation(ctx context.Context, input CreateInvitation) (Invitation, error)
func (*Client) GetInvitation ¶
func (*Client) GetWorkspace ¶
func (*Client) GetWorkspaceAccess ¶
func (*Client) ListInvitations ¶
func (*Client) ListWorkspaces ¶
func (*Client) PublishEvent ¶
func (c *Client) PublishEvent(ctx context.Context, input CustomEvent, idempotencyKey string) (PublishedEvent, error)
func (*Client) ResendInvitation ¶
func (*Client) RevokeInvitation ¶
func (*Client) SendNotification ¶
func (c *Client) SendNotification(ctx context.Context, input Notification, idempotencyKey string) (QueuedNotification, error)
func (*Client) SubjectBilling ¶
func (*Client) SubjectEntitlements ¶
func (*Client) UpdateSecret ¶
type CreateInvitation ¶
type CustomEvent ¶
type EntitlementGrant ¶
type EntitlementGrant struct {
ID string `json:"id"`
SubjectType string `json:"subject_type"`
SubjectID string `json:"subject_id"`
SourceType string `json:"source_type"`
SourceID *string `json:"source_id"`
FeatureValues json.RawMessage `json:"feature_values"`
Configuration json.RawMessage `json:"configuration"`
StartsAt time.Time `json:"starts_at"`
ExpiresAt *time.Time `json:"expires_at"`
RevokedAt *time.Time `json:"revoked_at"`
ExternalReference *string `json:"external_reference"`
}
type Invitation ¶
type Invitation struct {
ID string `json:"id"`
Email string `json:"email"`
WorkspaceID *string `json:"workspace_id"`
ApplicationRoleKeys []string `json:"application_role_keys"`
WorkspaceRoleKeys []string `json:"workspace_role_keys"`
Status string `json:"status"`
ExpiresAt time.Time `json:"expires_at"`
LastSentAt time.Time `json:"last_sent_at"`
ResendAvailableAt time.Time `json:"resend_available_at"`
AcceptedAt *time.Time `json:"accepted_at"`
RevokedAt *time.Time `json:"revoked_at"`
}
type Notification ¶
type Notification struct {
TemplateKey string `json:"template_key"`
UserID string `json:"user_id,omitempty"`
Recipient string `json:"recipient,omitempty"`
Locale string `json:"locale,omitempty"`
Variables map[string]any `json:"variables,omitempty"`
Attachments []Attachment `json:"attachments,omitempty"`
}
type PublishedEvent ¶
type QueuedNotification ¶
type Subscription ¶
type Subscription struct {
ID string `json:"id"`
SubjectType string `json:"subject_type"`
SubjectID string `json:"subject_id"`
PriceID string `json:"price_id"`
ProviderID string `json:"provider_id"`
Status string `json:"status"`
CurrentPeriodEnd *time.Time `json:"current_period_end"`
CancelAtPeriodEnd bool `json:"cancel_at_period_end"`
ExternalReference *string `json:"external_reference"`
}
type User ¶
type User struct {
ID string `json:"id"`
ApplicationID string `json:"application_id"`
Email string `json:"email"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Username *string `json:"username"`
Locale string `json:"locale"`
EmailVerified bool `json:"email_verified"`
OrganizationOK bool `json:"is_org_verified"`
Status string `json:"status"`
CustomAttributes json.RawMessage `json:"custom_attributes"`
Version int64 `json:"version"`
}
type Workspace ¶
type Workspace struct {
ID string `json:"id"`
ApplicationID string `json:"application_id"`
OwnerUserID string `json:"owner_user_id"`
Key string `json:"key"`
Name string `json:"name"`
Metadata json.RawMessage `json:"metadata"`
Status string `json:"status"`
Version int64 `json:"version"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type WorkspaceAccess ¶
type WorkspaceAccess struct {
Type string `json:"type"`
WorkspaceID string `json:"workspace_id"`
UserID *string `json:"user_id"`
Email *string `json:"email"`
RoleKeys []string `json:"role_keys"`
InvitationID *string `json:"invitation_id"`
Status string `json:"status"`
ExpiresAt *time.Time `json:"expires_at"`
}
Click to show internal directories.
Click to hide internal directories.