organization

package
v0.41.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DomainStateTypeChoices added in v0.8.0

func DomainStateTypeChoices() []string

func PrincipalTypeChoices added in v0.29.0

func PrincipalTypeChoices() []string

func ResourceTypeChoices added in v0.29.0

func ResourceTypeChoices() []string

func TierTypeChoices

func TierTypeChoices() []string

func VerificationTypeChoices added in v0.8.0

func VerificationTypeChoices() []string

Types

type DomainOut added in v0.8.0

type DomainOut struct {
	ChallengeToken                string           `json:"challenge_token"`                  // Random string to be used for validation
	CreateTime                    time.Time        `json:"create_time"`                      // Time of creating the domain
	DomainId                      string           `json:"domain_id"`                        // ID of the domain
	DomainName                    string           `json:"domain_name"`                      // Name of the domain
	LinkedAuthenticationMethodIds []string         `json:"linked_authentication_method_ids"` // Linked Authentication Method Ids
	OrganizationId                string           `json:"organization_id"`                  // ID of the organization owning this domain
	State                         DomainStateType  `json:"state"`                            // State of the verification process
	VerificationType              VerificationType `json:"verification_type"`                // Type of verification to be made
}

type DomainStateType added in v0.8.0

type DomainStateType string
const (
	DomainStateTypeDeleted    DomainStateType = "deleted"
	DomainStateTypeUnverified DomainStateType = "unverified"
	DomainStateTypeVerified   DomainStateType = "verified"
)

type Handler

type Handler interface {
	// OrganizationAuthDomainLink link a domain to an organization's identity provider
	// PUT /v1/organization/{organization_id}/authentication-methods/{authentication_method_id}/domains
	// https://api.aiven.io/doc/#tag/Authentication_Methods/operation/OrganizationAuthDomainLink
	OrganizationAuthDomainLink(ctx context.Context, organizationId string, authenticationMethodId string, in *OrganizationAuthDomainLinkIn) error

	// OrganizationAuthDomainList list domains linked to an organization's identity provider
	// GET /v1/organization/{organization_id}/authentication-methods/{authentication_method_id}/domains
	// https://api.aiven.io/doc/#tag/Authentication_Methods/operation/OrganizationAuthDomainList
	OrganizationAuthDomainList(ctx context.Context, organizationId string, authenticationMethodId string) ([]DomainOut, error)

	// OrganizationAuthDomainUnlink unlink domain from authentication method
	// DELETE /v1/organization/{organization_id}/authentication-methods/{authentication_method_id}/domains/{domain_id}
	// https://api.aiven.io/doc/#tag/Authentication_Methods/operation/OrganizationAuthDomainUnlink
	OrganizationAuthDomainUnlink(ctx context.Context, organizationId string, authenticationMethodId string, domainId string) error

	// OrganizationAuthenticationConfigGet retrieve authentication configuration
	// GET /v1/organization/{organization_id}/config/authentication
	// https://api.aiven.io/doc/#tag/Organizations/operation/OrganizationAuthenticationConfigGet
	OrganizationAuthenticationConfigGet(ctx context.Context, organizationId string) (*OrganizationAuthenticationConfigGetOut, error)

	// OrganizationAuthenticationConfigUpdate update authentication configuration
	// PATCH /v1/organization/{organization_id}/config/authentication
	// https://api.aiven.io/doc/#tag/Organizations/operation/OrganizationAuthenticationConfigUpdate
	OrganizationAuthenticationConfigUpdate(ctx context.Context, organizationId string, in *OrganizationAuthenticationConfigUpdateIn) (*OrganizationAuthenticationConfigUpdateOut, error)

	// OrganizationGet get information about an organization
	// GET /v1/organization/{organization_id}
	// https://api.aiven.io/doc/#tag/Organizations/operation/OrganizationGet
	OrganizationGet(ctx context.Context, organizationId string) (*OrganizationGetOut, error)

	// OrganizationUpdate update organization's details
	// PATCH /v1/organization/{organization_id}
	// https://api.aiven.io/doc/#tag/Organizations/operation/OrganizationUpdate
	OrganizationUpdate(ctx context.Context, organizationId string, in *OrganizationUpdateIn) (*OrganizationUpdateOut, error)

	// PermissionsGet [EXPERIMENTAL] List of permissions
	// GET /v1/organization/{organization_id}/permissions/{resource_type}/{resource_id}
	// https://api.aiven.io/doc/#tag/Permissions/operation/PermissionsGet
	PermissionsGet(ctx context.Context, organizationId string, resourceType ResourceType, resourceId string) ([]PermissionOut, error)

	// PermissionsUpdate [EXPERIMENTAL] Update permissions
	// PATCH /v1/organization/{organization_id}/permissions/{resource_type}/{resource_id}
	// https://api.aiven.io/doc/#tag/Permissions/operation/PermissionsUpdate
	PermissionsUpdate(ctx context.Context, organizationId string, resourceType ResourceType, resourceId string, in *PermissionsUpdateIn) error

	// UserOrganizationCreate create an organization
	// POST /v1/organizations
	// https://api.aiven.io/doc/#tag/Organizations/operation/UserOrganizationCreate
	UserOrganizationCreate(ctx context.Context, in *UserOrganizationCreateIn) (*UserOrganizationCreateOut, error)

	// UserOrganizationsList list organizations the user belongs to
	// GET /v1/organizations
	// https://api.aiven.io/doc/#tag/Organizations/operation/UserOrganizationsList
	UserOrganizationsList(ctx context.Context) ([]OrganizationOut, error)
}

type OrganizationAuthDomainLinkIn added in v0.8.0

type OrganizationAuthDomainLinkIn struct {
	DomainId string `json:"domain_id"` // ID of the domain
}

OrganizationAuthDomainLinkIn OrganizationAuthDomainLinkRequestBody

type OrganizationAuthenticationConfigGetOut

type OrganizationAuthenticationConfigGetOut struct {
	OauthEnabled                           *bool `json:"oauth_enabled,omitempty"`                               // Organization users are able to use OAuth authentication.
	PasswordAuthEnabled                    *bool `json:"password_auth_enabled,omitempty"`                       // Organization users are able to use password authentication.
	PersonalTokensEnabled                  *bool `json:"personal_tokens_enabled,omitempty"`                     // Organization users can use their personal tokens to access the organization through the Aiven API or other applications.
	PersonalTokensRequireAllowedAuthMethod *bool `json:"personal_tokens_require_allowed_auth_method,omitempty"` // Organization users are able to use personal tokens that were generated from one of the allowed authentication methods.
	SamlAllowExternal                      *bool `json:"saml_allow_external,omitempty"`                         // Organization users are able to use SAML authentication of other organizations.
	SamlEnabled                            *bool `json:"saml_enabled,omitempty"`                                // Organization users are able to use SAML authentication.
	TwoFactorRequired                      *bool `json:"two_factor_required,omitempty"`                         // 2FA is required to access resources in this organization.
}

OrganizationAuthenticationConfigGetOut OrganizationAuthenticationConfigGetResponse

type OrganizationAuthenticationConfigUpdateIn

type OrganizationAuthenticationConfigUpdateIn struct {
	OauthEnabled                           *bool `json:"oauth_enabled,omitempty"`                               // Organization users are able to use OAuth authentication.
	PasswordAuthEnabled                    *bool `json:"password_auth_enabled,omitempty"`                       // Organization users are able to use password authentication.
	PersonalTokensEnabled                  *bool `json:"personal_tokens_enabled,omitempty"`                     // Organization users can use their personal tokens to access the organization through the Aiven API or other applications.
	PersonalTokensRequireAllowedAuthMethod *bool `json:"personal_tokens_require_allowed_auth_method,omitempty"` // Organization users are able to use personal tokens that were generated from one of the allowed authentication methods.
	SamlAllowExternal                      *bool `json:"saml_allow_external,omitempty"`                         // Organization users are able to use SAML authentication of other organizations.
	SamlEnabled                            *bool `json:"saml_enabled,omitempty"`                                // Organization users are able to use SAML authentication.
	TwoFactorRequired                      *bool `json:"two_factor_required,omitempty"`                         // 2FA is required to access resources in this organization.
}

OrganizationAuthenticationConfigUpdateIn OrganizationAuthenticationConfigUpdateRequestBody

type OrganizationAuthenticationConfigUpdateOut

type OrganizationAuthenticationConfigUpdateOut struct {
	OauthEnabled                           *bool `json:"oauth_enabled,omitempty"`                               // Organization users are able to use OAuth authentication.
	PasswordAuthEnabled                    *bool `json:"password_auth_enabled,omitempty"`                       // Organization users are able to use password authentication.
	PersonalTokensEnabled                  *bool `json:"personal_tokens_enabled,omitempty"`                     // Organization users can use their personal tokens to access the organization through the Aiven API or other applications.
	PersonalTokensRequireAllowedAuthMethod *bool `json:"personal_tokens_require_allowed_auth_method,omitempty"` // Organization users are able to use personal tokens that were generated from one of the allowed authentication methods.
	SamlAllowExternal                      *bool `json:"saml_allow_external,omitempty"`                         // Organization users are able to use SAML authentication of other organizations.
	SamlEnabled                            *bool `json:"saml_enabled,omitempty"`                                // Organization users are able to use SAML authentication.
	TwoFactorRequired                      *bool `json:"two_factor_required,omitempty"`                         // 2FA is required to access resources in this organization.
}

OrganizationAuthenticationConfigUpdateOut OrganizationAuthenticationConfigUpdateResponse

type OrganizationGetOut

type OrganizationGetOut struct {
	AccountId                    string    `json:"account_id"`                                 // Account ID of the organization's root unit
	CreateTime                   time.Time `json:"create_time"`                                // Time of creating the organization
	DefaultGovernanceUserGroupId *string   `json:"default_governance_user_group_id,omitempty"` // Default governance user group ID
	OrganizationId               string    `json:"organization_id"`                            // Organization's ID
	OrganizationName             string    `json:"organization_name"`                          // Organization's name
	Tier                         TierType  `json:"tier"`                                       // Tier of the organization
	UpdateTime                   time.Time `json:"update_time"`                                // Time of the organization's latest update
}

OrganizationGetOut OrganizationGetResponse

type OrganizationHandler

type OrganizationHandler struct {
	// contains filtered or unexported fields
}

func NewHandler

func NewHandler(doer doer) OrganizationHandler
func (h *OrganizationHandler) OrganizationAuthDomainLink(ctx context.Context, organizationId string, authenticationMethodId string, in *OrganizationAuthDomainLinkIn) error

func (*OrganizationHandler) OrganizationAuthDomainList added in v0.8.0

func (h *OrganizationHandler) OrganizationAuthDomainList(ctx context.Context, organizationId string, authenticationMethodId string) ([]DomainOut, error)
func (h *OrganizationHandler) OrganizationAuthDomainUnlink(ctx context.Context, organizationId string, authenticationMethodId string, domainId string) error

func (*OrganizationHandler) OrganizationAuthenticationConfigGet

func (h *OrganizationHandler) OrganizationAuthenticationConfigGet(ctx context.Context, organizationId string) (*OrganizationAuthenticationConfigGetOut, error)

func (*OrganizationHandler) OrganizationAuthenticationConfigUpdate

func (h *OrganizationHandler) OrganizationAuthenticationConfigUpdate(ctx context.Context, organizationId string, in *OrganizationAuthenticationConfigUpdateIn) (*OrganizationAuthenticationConfigUpdateOut, error)

func (*OrganizationHandler) OrganizationGet

func (h *OrganizationHandler) OrganizationGet(ctx context.Context, organizationId string) (*OrganizationGetOut, error)

func (*OrganizationHandler) OrganizationUpdate

func (h *OrganizationHandler) OrganizationUpdate(ctx context.Context, organizationId string, in *OrganizationUpdateIn) (*OrganizationUpdateOut, error)

func (*OrganizationHandler) PermissionsGet added in v0.29.0

func (h *OrganizationHandler) PermissionsGet(ctx context.Context, organizationId string, resourceType ResourceType, resourceId string) ([]PermissionOut, error)

func (*OrganizationHandler) PermissionsUpdate added in v0.29.0

func (h *OrganizationHandler) PermissionsUpdate(ctx context.Context, organizationId string, resourceType ResourceType, resourceId string, in *PermissionsUpdateIn) error

func (*OrganizationHandler) UserOrganizationCreate

func (*OrganizationHandler) UserOrganizationsList

func (h *OrganizationHandler) UserOrganizationsList(ctx context.Context) ([]OrganizationOut, error)

type OrganizationOut

type OrganizationOut struct {
	AccountId                    string    `json:"account_id"`                                 // Account ID of the organization's root unit
	CreateTime                   time.Time `json:"create_time"`                                // Time of creating the organization
	DefaultGovernanceUserGroupId *string   `json:"default_governance_user_group_id,omitempty"` // Default governance user group ID
	OrganizationId               string    `json:"organization_id"`                            // Organization's ID
	OrganizationName             string    `json:"organization_name"`                          // Organization's name
	Tier                         TierType  `json:"tier"`                                       // Tier of the organization
	UpdateTime                   time.Time `json:"update_time"`                                // Time of the organization's latest update
}

type OrganizationUpdateIn

type OrganizationUpdateIn struct {
	Name *string  `json:"name,omitempty"` // New name of the organization
	Tier TierType `json:"tier,omitempty"` // New tier for the organization
}

OrganizationUpdateIn OrganizationUpdateRequestBody

type OrganizationUpdateOut

type OrganizationUpdateOut struct {
	AccountId                    string    `json:"account_id"`                                 // Account ID of the organization's root unit
	CreateTime                   time.Time `json:"create_time"`                                // Time of creating the organization
	DefaultGovernanceUserGroupId *string   `json:"default_governance_user_group_id,omitempty"` // Default governance user group ID
	OrganizationId               string    `json:"organization_id"`                            // Organization's ID
	OrganizationName             string    `json:"organization_name"`                          // Organization's name
	Tier                         TierType  `json:"tier"`                                       // Tier of the organization
	UpdateTime                   time.Time `json:"update_time"`                                // Time of the organization's latest update
}

OrganizationUpdateOut OrganizationUpdateResponse

type PermissionIn added in v0.29.0

type PermissionIn struct {
	Permissions   []string      `json:"permissions"`    // List of roles
	PrincipalId   string        `json:"principal_id"`   // ID of the principal
	PrincipalType PrincipalType `json:"principal_type"` // Type of the principal
}

type PermissionOut added in v0.29.0

type PermissionOut struct {
	CreateTime    time.Time     `json:"create_time"`    // Create Time
	Permissions   []string      `json:"permissions"`    // List of roles
	PrincipalId   string        `json:"principal_id"`   // ID of the principal
	PrincipalType PrincipalType `json:"principal_type"` // Type of the principal
	UpdateTime    time.Time     `json:"update_time"`    // Update Time
}

type PermissionsUpdateIn added in v0.29.0

type PermissionsUpdateIn struct {
	Permissions []PermissionIn `json:"permissions"` // List of roles to set
}

PermissionsUpdateIn PermissionsUpdateRequestBody

type PrincipalType added in v0.29.0

type PrincipalType string
const (
	PrincipalTypeUser      PrincipalType = "user"
	PrincipalTypeUserGroup PrincipalType = "user_group"
)

type ResourceType added in v0.29.0

type ResourceType string
const (
	ResourceTypeProject ResourceType = "project"
)

type TierType

type TierType string
const (
	TierTypeBusiness TierType = "business"
	TierTypePersonal TierType = "personal"
)

type UserOrganizationCreateIn

type UserOrganizationCreateIn struct {
	OrganizationName      string   `json:"organization_name"`                  // Organization's name
	PrimaryBillingGroupId *string  `json:"primary_billing_group_id,omitempty"` // Billing group ID
	Tier                  TierType `json:"tier"`                               // Tier of the organization
}

UserOrganizationCreateIn UserOrganizationCreateRequestBody

type UserOrganizationCreateOut

type UserOrganizationCreateOut struct {
	AccountId                    string    `json:"account_id"`                                 // Account ID of the organization's root unit
	CreateTime                   time.Time `json:"create_time"`                                // Time of creating the organization
	DefaultGovernanceUserGroupId *string   `json:"default_governance_user_group_id,omitempty"` // Default governance user group ID
	OrganizationId               string    `json:"organization_id"`                            // Organization's ID
	OrganizationName             string    `json:"organization_name"`                          // Organization's name
	Tier                         TierType  `json:"tier"`                                       // Tier of the organization
	UpdateTime                   time.Time `json:"update_time"`                                // Time of the organization's latest update
}

UserOrganizationCreateOut UserOrganizationCreateResponse

type VerificationType added in v0.8.0

type VerificationType string
const (
	VerificationTypeDns  VerificationType = "dns"
	VerificationTypeHttp VerificationType = "http"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL