Documentation
¶
Index ¶
- Variables
- type ApiError
- type ApplicationClient
- type Client
- type ListApplicationParams
- type ListRoleParams
- type ListUserParams
- type ListUsersInRoleParams
- type OIDCRoundTripper
- type OidcClient
- type PatchVirtualServerInput
- type ProjectClient
- type RoleClient
- type ServiceUserTokenSource
- type Transport
- func (t *Transport) Do(req *http.Request) (*http.Response, error)
- func (t *Transport) DoNoRedirect(req *http.Request) (*http.Response, error)
- func (t *Transport) DoRaw(req *http.Request) (*http.Response, error)
- func (t *Transport) NewOidcRequest(ctx context.Context, method string, endpoint string, body io.Reader) (*http.Request, error)
- func (t *Transport) NewRootRequest(ctx context.Context, method string, endpoint string, body io.Reader) (*http.Request, error)
- func (t *Transport) NewTenantRequest(ctx context.Context, method string, endpoint string, body io.Reader) (*http.Request, error)
- type TransportOptions
- type UserClient
- type VirtualServerClient
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type ApplicationClient ¶
type ApplicationClient interface {
Create(ctx context.Context, dto api.CreateApplicationRequestDto) (api.CreateApplicationResponseDto, error)
List(ctx context.Context, params ListApplicationParams) (api.PagedApplicationsResponseDto, error)
Get(ctx context.Context, id uuid.UUID) (api.GetApplicationResponseDto, error)
Patch(ctx context.Context, id uuid.UUID, dto api.PatchApplicationRequestDto) error
Delete(ctx context.Context, id uuid.UUID) error
}
func NewApplicationClient ¶
func NewApplicationClient(transport *Transport, projectSlug string) ApplicationClient
type Client ¶
type Client interface {
VirtualServer() VirtualServerClient
User() UserClient
Oidc() OidcClient
Project() ProjectClient
}
type ListApplicationParams ¶
type ListRoleParams ¶ added in v0.3.10
type ListUserParams ¶
type ListUsersInRoleParams ¶ added in v0.3.11
type OIDCRoundTripper ¶
type OIDCRoundTripper struct {
// contains filtered or unexported fields
}
func NewOIDCRoundTripper ¶
func NewOIDCRoundTripper(next http.RoundTripper, tokenSource oauth2.TokenSource) *OIDCRoundTripper
type OidcClient ¶
type OidcClient interface {
BeginDeviceFlow(ctx context.Context, clientId string, scope string) (api.DeviceAuthorizationResponse, error)
PollDeviceToken(ctx context.Context, clientId string, deviceCode string) (api.DeviceTokenResponse, error)
PostActivate(ctx context.Context, userCode string) (loginToken string, err error)
VerifyPassword(ctx context.Context, loginToken string, username string, password string) error
FinishLogin(ctx context.Context, loginToken string) error
}
func NewOidcClient ¶
func NewOidcClient(transport *Transport) OidcClient
type PatchVirtualServerInput ¶ added in v0.3.0
type PatchVirtualServerInput struct {
DisplayName *string `json:"displayName"`
EnableRegistration *bool `json:"enableRegistration"`
Require2fa *bool `json:"require2fa"`
RequireEmailVerification *bool `json:"requireEmailVerification"`
}
PatchVirtualServerInput holds the fields that can be patched on a virtual server.
type ProjectClient ¶ added in v0.3.0
type ProjectClient interface {
Create(ctx context.Context, input api.CreateProjectRequestDto) (api.CreateProjectResponseDto, error)
Get(ctx context.Context, slug string) (api.GetProjectResponseDto, error)
Application(projectSlug string) ApplicationClient
Role(projectSlug string) RoleClient
}
func NewProjectClient ¶ added in v0.3.0
func NewProjectClient(transport *Transport) ProjectClient
type RoleClient ¶ added in v0.3.10
type RoleClient interface {
Create(ctx context.Context, dto api.CreateRoleRequestDto) (api.CreateRoleResponseDto, error)
List(ctx context.Context, params ListRoleParams) (api.PagedRolesResponseDto, error)
Get(ctx context.Context, id uuid.UUID) (api.GetRoleByIdResponseDto, error)
Patch(ctx context.Context, id uuid.UUID, dto api.PatchRoleRequestDto) error
Delete(ctx context.Context, id uuid.UUID) error
Assign(ctx context.Context, roleId uuid.UUID, userId uuid.UUID) error
ListUsers(ctx context.Context, roleId uuid.UUID, params ListUsersInRoleParams) (api.PagedUsersInRoleResponseDto, error)
}
func NewRoleClient ¶ added in v0.3.10
func NewRoleClient(transport *Transport, projectSlug string) RoleClient
type ServiceUserTokenSource ¶ added in v0.3.1
type ServiceUserTokenSource struct {
KeylineURL string
VirtualServer string
PrivKeyPEM string
Kid string
Username string
Application string
// contains filtered or unexported fields
}
ServiceUserTokenSource implements oauth2.TokenSource via Keyline's RFC 8693 token exchange, signing a short-lived JWT with a service user's Ed25519 private key.
type Transport ¶
type Transport struct {
// contains filtered or unexported fields
}
func NewTransport ¶
func NewTransport(baseUrl string, virtualServer string, options ...TransportOptions) *Transport
func (*Transport) DoNoRedirect ¶
DoNoRedirect executes the request without following redirects.
func (*Transport) DoRaw ¶
DoRaw executes the request and returns the raw response without status code checking.
func (*Transport) NewOidcRequest ¶
func (*Transport) NewRootRequest ¶
type TransportOptions ¶
type TransportOptions func(*Transport)
func WithBaseURL ¶
func WithBaseURL(baseURL string) TransportOptions
func WithClient ¶
func WithClient(client *http.Client) TransportOptions
func WithOidc ¶
func WithOidc(tokenSource oauth2.TokenSource) TransportOptions
func WithRoundTripper ¶
func WithRoundTripper(roundTripperFactory func(next http.RoundTripper) http.RoundTripper) TransportOptions
type UserClient ¶
type UserClient interface {
List(ctx context.Context, params ListUserParams) (api.PagedUsersResponseDto, error)
Get(ctx context.Context, id uuid.UUID) (api.GetUserByIdResponseDto, error)
Patch(ctx context.Context, id uuid.UUID, dto api.PatchUserRequestDto) error
CreateServiceUser(ctx context.Context, username string) (uuid.UUID, error)
AssociateServiceUserPublicKey(ctx context.Context, serviceUserID uuid.UUID, publicKeyPEM string) (string, error)
}
func NewUserClient ¶
func NewUserClient(transport *Transport) UserClient
type VirtualServerClient ¶
type VirtualServerClient interface {
Create(ctx context.Context, dto api.CreateVirtualServerRequestDto) error
Get(ctx context.Context) (api.GetVirtualServerResponseDto, error)
GetPublicInfo(ctx context.Context) (api.GetVirtualServerListResponseDto, error)
Patch(ctx context.Context, input PatchVirtualServerInput) error
}
func NewVirtualServerClient ¶
func NewVirtualServerClient(transport *Transport) VirtualServerClient
Click to show internal directories.
Click to hide internal directories.