account

package
v0.72.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AccessSourceTypeChoices added in v0.3.0

func AccessSourceTypeChoices() []string

func BillingCurrencyTypeChoices added in v0.3.0

func BillingCurrencyTypeChoices() []string

func MemberTypeChoices added in v0.3.0

func MemberTypeChoices() []string

func OrderByTypeChoices

func OrderByTypeChoices() []string

func PaymentMethodTypeChoices added in v0.3.0

func PaymentMethodTypeChoices() []string

func TeamTypeChoices added in v0.15.0

func TeamTypeChoices() []string

Types

type AccessSourceType added in v0.3.0

type AccessSourceType string
const (
	AccessSourceTypeDescendantMembership   AccessSourceType = "descendant_membership"
	AccessSourceTypeOrganizationMembership AccessSourceType = "organization_membership"
	AccessSourceTypeProjectMembership      AccessSourceType = "project_membership"
	AccessSourceTypeTeamMembership         AccessSourceType = "team_membership"
)

type AccountAttachPaymentMethodIn

type AccountAttachPaymentMethodIn struct {
	PaymentMethodId string `json:"payment_method_id"` // Unique identifier for a Stripe payment method
}

AccountAttachPaymentMethodIn AccountAttachPaymentMethodRequestBody

type AccountAttachPaymentMethodOut

type AccountAttachPaymentMethodOut struct {
	Brand          string   `json:"brand"`
	CardId         string   `json:"card_id"` // Credit card ID
	Country        string   `json:"country"`
	CountryCode    string   `json:"country_code"`              // Two letter ISO country code
	ExpMonth       int      `json:"exp_month"`                 // Expiration month
	ExpYear        int      `json:"exp_year"`                  // Expiration year
	Last4          string   `json:"last4"`                     // Credit card last four digits
	Name           string   `json:"name"`                      // Name on the credit card
	OrganizationId *string  `json:"organization_id,omitempty"` // Organization ID
	Projects       []string `json:"projects"`                  // List of projects the card is assigned to
}

AccountAttachPaymentMethodOut User credit card information

type AccountBillingGroupOut

type AccountBillingGroupOut struct {
	AccountId             string                   `json:"account_id"`                    // Account ID
	AccountName           string                   `json:"account_name"`                  // Account name
	AddressLines          []string                 `json:"address_lines"`                 // Address lines
	BillingAddress        *string                  `json:"billing_address,omitempty"`     // DEPRECATED: use split address fields like company, address_lines, zip_code, city and state instead
	BillingAddressId      *string                  `json:"billing_address_id,omitempty"`  // Address ID
	BillingContactEmails  []BillingContactEmailOut `json:"billing_contact_emails"`        // List of billing groups contact email addresses
	BillingCurrency       BillingCurrencyType      `json:"billing_currency"`              // Billing currency
	BillingEmails         []BillingEmailOut        `json:"billing_emails"`                // List of project billing email addresses
	BillingExtraText      string                   `json:"billing_extra_text"`            // Extra text to be included in all project invoices, e.g. purchase order or cost center number
	BillingGroupId        string                   `json:"billing_group_id"`              // Billing group ID
	BillingGroupName      string                   `json:"billing_group_name"`            // Billing group name
	BillingType           string                   `json:"billing_type"`                  // Method of charging/invoicing this project
	CardInfo              CardInfoOut              `json:"card_info"`                     // Credit card assigned to the project
	City                  string                   `json:"city"`                          // Address city
	Company               string                   `json:"company"`                       // Name of a company
	Country               string                   `json:"country"`                       // Billing country
	CountryCode           string                   `json:"country_code"`                  // Two letter ISO country code
	CreateTime            time.Time                `json:"create_time"`                   // Timestamp in ISO 8601 format, always in UTC
	EstimatedBalanceLocal string                   `json:"estimated_balance_local"`       // Estimated balance in billing currency, before tax
	EstimatedBalanceUsd   string                   `json:"estimated_balance_usd"`         // Estimated balance in USD, before tax
	PaymentMethod         PaymentMethodType        `json:"payment_method"`                // Payment method
	ShippingAddressId     *string                  `json:"shipping_address_id,omitempty"` // Address ID
	State                 string                   `json:"state"`                         // Address state or province
	VatId                 string                   `json:"vat_id"`                        // EU VAT Identification Number
	ZipCode               string                   `json:"zip_code"`                      // Address zip code
}

type AccountCreateIn

type AccountCreateIn struct {
	AccountName           string  `json:"account_name"`                       // Account name
	ParentAccountId       *string `json:"parent_account_id,omitempty"`        // Account ID
	PrimaryBillingGroupId *string `json:"primary_billing_group_id,omitempty"` // Billing group ID
}

AccountCreateIn AccountCreateRequestBody

type AccountCreateOut

type AccountCreateOut struct {
	AccessSource          AccessSourceType `json:"access_source,omitempty"`     // Describe the source of the account
	AccountId             string           `json:"account_id"`                  // Account ID
	AccountName           string           `json:"account_name"`                // Account name
	AccountOwnerTeamId    string           `json:"account_owner_team_id"`       // Team ID
	CreateTime            time.Time        `json:"create_time"`                 // Timestamp in ISO 8601 format, always in UTC
	Features              map[string]any   `json:"features,omitempty"`          // Feature flags
	IsAccountMember       *bool            `json:"is_account_member,omitempty"` // If true, user is part of a team of this or a parent account
	IsAccountOwner        bool             `json:"is_account_owner"`            // If true, user is part of the owners team for this account
	OrganizationId        string           `json:"organization_id"`             // Organization ID
	ParentAccountId       *string          `json:"parent_account_id,omitempty"` // Account ID
	PrimaryBillingGroupId string           `json:"primary_billing_group_id"`    // Billing group ID
	RootAccountId         string           `json:"root_account_id"`             // Account ID
	TenantId              *string          `json:"tenant_id,omitempty"`         // Tenant identifier
	UpdateTime            time.Time        `json:"update_time"`                 // Timestamp in ISO 8601 format, always in UTC
}

AccountCreateOut Account details

type AccountGetOut

type AccountGetOut struct {
	AccessSource          AccessSourceType `json:"access_source,omitempty"`     // Describe the source of the account
	AccountId             string           `json:"account_id"`                  // Account ID
	AccountName           string           `json:"account_name"`                // Account name
	AccountOwnerTeamId    string           `json:"account_owner_team_id"`       // Team ID
	CreateTime            time.Time        `json:"create_time"`                 // Timestamp in ISO 8601 format, always in UTC
	Features              map[string]any   `json:"features,omitempty"`          // Feature flags
	IsAccountMember       *bool            `json:"is_account_member,omitempty"` // If true, user is part of a team of this or a parent account
	IsAccountOwner        bool             `json:"is_account_owner"`            // If true, user is part of the owners team for this account
	OrganizationId        string           `json:"organization_id"`             // Organization ID
	ParentAccountId       *string          `json:"parent_account_id,omitempty"` // Account ID
	PrimaryBillingGroupId string           `json:"primary_billing_group_id"`    // Billing group ID
	RootAccountId         string           `json:"root_account_id"`             // Account ID
	TenantId              *string          `json:"tenant_id,omitempty"`         // Tenant identifier
	UpdateTime            time.Time        `json:"update_time"`                 // Timestamp in ISO 8601 format, always in UTC
}

AccountGetOut Account details

type AccountHandler

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

func NewHandler

func NewHandler(doer doer) AccountHandler

func (*AccountHandler) AccountAttachPaymentMethod

func (h *AccountHandler) AccountAttachPaymentMethod(ctx context.Context, accountId string, in *AccountAttachPaymentMethodIn) (*AccountAttachPaymentMethodOut, error)

func (*AccountHandler) AccountBillingGroupList

func (h *AccountHandler) AccountBillingGroupList(ctx context.Context, accountId string) ([]AccountBillingGroupOut, error)

func (*AccountHandler) AccountCreate

func (h *AccountHandler) AccountCreate(ctx context.Context, in *AccountCreateIn) (*AccountCreateOut, error)

func (*AccountHandler) AccountDelete

func (h *AccountHandler) AccountDelete(ctx context.Context, accountId string) error

func (*AccountHandler) AccountEventList

func (h *AccountHandler) AccountEventList(ctx context.Context, accountId string) ([]EventOut, error)

func (*AccountHandler) AccountGet

func (h *AccountHandler) AccountGet(ctx context.Context, accountId string) (*AccountGetOut, error)

func (*AccountHandler) AccountList

func (h *AccountHandler) AccountList(ctx context.Context) ([]AccountOut, error)

func (*AccountHandler) AccountMove

func (h *AccountHandler) AccountMove(ctx context.Context, accountId string, in *AccountMoveIn) (*AccountMoveOut, error)

func (*AccountHandler) AccountPaymentMethodDelete

func (h *AccountHandler) AccountPaymentMethodDelete(ctx context.Context, accountId string, cardId string) error

func (*AccountHandler) AccountPaymentMethodsList

func (h *AccountHandler) AccountPaymentMethodsList(ctx context.Context, accountId string) ([]CardOut, error)

func (*AccountHandler) AccountProjectsList

func (h *AccountHandler) AccountProjectsList(ctx context.Context, accountId string) (*AccountProjectsListOut, error)

func (*AccountHandler) AccountProjectsTeamsList added in v0.15.0

func (h *AccountHandler) AccountProjectsTeamsList(ctx context.Context, accountId string, projectName string) ([]TeamOut, error)

func (*AccountHandler) AccountUpdate

func (h *AccountHandler) AccountUpdate(ctx context.Context, accountId string, in *AccountUpdateIn) (*AccountUpdateOut, error)

func (*AccountHandler) AccountUserProjectsList

func (h *AccountHandler) AccountUserProjectsList(ctx context.Context, accountId string, userId string) ([]UserProjectOut, error)

func (*AccountHandler) AccountUserTeamsList added in v0.15.0

func (h *AccountHandler) AccountUserTeamsList(ctx context.Context, accountId string, userId string) ([]AccountUserTeamsListOut, error)

func (*AccountHandler) AccountUsersSearch

func (h *AccountHandler) AccountUsersSearch(ctx context.Context, accountId string, in *AccountUsersSearchIn) ([]UserOut, error)

type AccountMoveIn

type AccountMoveIn struct {
	ParentAccountId string `json:"parent_account_id"` // Account ID
}

AccountMoveIn AccountMoveRequestBody

type AccountMoveOut

type AccountMoveOut struct {
	AccessSource          AccessSourceType `json:"access_source,omitempty"`     // Describe the source of the account
	AccountId             string           `json:"account_id"`                  // Account ID
	AccountName           string           `json:"account_name"`                // Account name
	AccountOwnerTeamId    string           `json:"account_owner_team_id"`       // Team ID
	CreateTime            time.Time        `json:"create_time"`                 // Timestamp in ISO 8601 format, always in UTC
	Features              map[string]any   `json:"features,omitempty"`          // Feature flags
	IsAccountMember       *bool            `json:"is_account_member,omitempty"` // If true, user is part of a team of this or a parent account
	IsAccountOwner        bool             `json:"is_account_owner"`            // If true, user is part of the owners team for this account
	OrganizationId        string           `json:"organization_id"`             // Organization ID
	ParentAccountId       *string          `json:"parent_account_id,omitempty"` // Account ID
	PrimaryBillingGroupId string           `json:"primary_billing_group_id"`    // Billing group ID
	RootAccountId         string           `json:"root_account_id"`             // Account ID
	TenantId              *string          `json:"tenant_id,omitempty"`         // Tenant identifier
	UpdateTime            time.Time        `json:"update_time"`                 // Timestamp in ISO 8601 format, always in UTC
}

AccountMoveOut Account details

type AccountOut

type AccountOut struct {
	AccessSource          AccessSourceType `json:"access_source,omitempty"`     // Describe the source of the account
	AccountId             string           `json:"account_id"`                  // Account ID
	AccountName           string           `json:"account_name"`                // Account name
	AccountOwnerTeamId    string           `json:"account_owner_team_id"`       // Team ID
	CreateTime            time.Time        `json:"create_time"`                 // Timestamp in ISO 8601 format, always in UTC
	Features              map[string]any   `json:"features,omitempty"`          // Feature flags
	IsAccountMember       *bool            `json:"is_account_member,omitempty"` // If true, user is part of a team of this or a parent account
	IsAccountOwner        bool             `json:"is_account_owner"`            // If true, user is part of the owners team for this account
	OrganizationId        string           `json:"organization_id"`             // Organization ID
	ParentAccountId       *string          `json:"parent_account_id,omitempty"` // Account ID
	PrimaryBillingGroupId string           `json:"primary_billing_group_id"`    // Billing group ID
	RootAccountId         string           `json:"root_account_id"`             // Account ID
	TenantId              *string          `json:"tenant_id,omitempty"`         // Tenant identifier
	UpdateTime            time.Time        `json:"update_time"`                 // Timestamp in ISO 8601 format, always in UTC
}

type AccountProjectsListOut

type AccountProjectsListOut struct {
	Projects          []ProjectOut `json:"projects"`                      // List of projects
	TotalProjectCount *int         `json:"total_project_count,omitempty"` // Total count of projects associated to account.
}

AccountProjectsListOut AccountProjectsListResponse

type AccountUpdateIn

type AccountUpdateIn struct {
	AccountName           *string `json:"account_name,omitempty"`             // Account name
	PrimaryBillingGroupId *string `json:"primary_billing_group_id,omitempty"` // Billing group ID
}

AccountUpdateIn AccountUpdateRequestBody

type AccountUpdateOut

type AccountUpdateOut struct {
	AccessSource          AccessSourceType `json:"access_source,omitempty"`     // Describe the source of the account
	AccountId             string           `json:"account_id"`                  // Account ID
	AccountName           string           `json:"account_name"`                // Account name
	AccountOwnerTeamId    string           `json:"account_owner_team_id"`       // Team ID
	CreateTime            time.Time        `json:"create_time"`                 // Timestamp in ISO 8601 format, always in UTC
	Features              map[string]any   `json:"features,omitempty"`          // Feature flags
	IsAccountMember       *bool            `json:"is_account_member,omitempty"` // If true, user is part of a team of this or a parent account
	IsAccountOwner        bool             `json:"is_account_owner"`            // If true, user is part of the owners team for this account
	OrganizationId        string           `json:"organization_id"`             // Organization ID
	ParentAccountId       *string          `json:"parent_account_id,omitempty"` // Account ID
	PrimaryBillingGroupId string           `json:"primary_billing_group_id"`    // Billing group ID
	RootAccountId         string           `json:"root_account_id"`             // Account ID
	TenantId              *string          `json:"tenant_id,omitempty"`         // Tenant identifier
	UpdateTime            time.Time        `json:"update_time"`                 // Timestamp in ISO 8601 format, always in UTC
}

AccountUpdateOut Account details

type AccountUserTeamsListOut added in v0.36.0

type AccountUserTeamsListOut struct {
	AccountId   string `json:"account_id"`   // Account ID
	AccountName string `json:"account_name"` // Account name
	TeamId      string `json:"team_id"`      // Team ID
	TeamName    string `json:"team_name"`    // Team name
}

type AccountUsersSearchIn

type AccountUsersSearchIn struct {
	Limit   *int        `json:"limit,omitempty"`    // Maximum number of results to return
	OrderBy OrderByType `json:"order_by,omitempty"` // Sorting criteria; desc is descending order and asc ascending
	Query   *string     `json:"query,omitempty"`    // Filter keyword
}

AccountUsersSearchIn AccountUsersSearchRequestBody

type BillingContactEmailOut added in v0.71.0

type BillingContactEmailOut struct {
	Email string `json:"email"` // User email address
}

type BillingCurrencyType added in v0.3.0

type BillingCurrencyType string
const (
	BillingCurrencyTypeAud BillingCurrencyType = "AUD"
	BillingCurrencyTypeCad BillingCurrencyType = "CAD"
	BillingCurrencyTypeChf BillingCurrencyType = "CHF"
	BillingCurrencyTypeDkk BillingCurrencyType = "DKK"
	BillingCurrencyTypeEur BillingCurrencyType = "EUR"
	BillingCurrencyTypeGbp BillingCurrencyType = "GBP"
	BillingCurrencyTypeJpy BillingCurrencyType = "JPY"
	BillingCurrencyTypeNok BillingCurrencyType = "NOK"
	BillingCurrencyTypeNzd BillingCurrencyType = "NZD"
	BillingCurrencyTypeSek BillingCurrencyType = "SEK"
	BillingCurrencyTypeSgd BillingCurrencyType = "SGD"
	BillingCurrencyTypeUsd BillingCurrencyType = "USD"
)

type BillingEmailOut

type BillingEmailOut struct {
	Email string `json:"email"` // User email address
}

type CardInfoOut

type CardInfoOut struct {
	Brand       string `json:"brand"`
	CardId      string `json:"card_id"` // Credit card ID
	Country     string `json:"country"`
	CountryCode string `json:"country_code"` // Two letter ISO country code
	ExpMonth    int    `json:"exp_month"`    // Expiration month
	ExpYear     int    `json:"exp_year"`     // Expiration year
	Last4       string `json:"last4"`        // Credit card last four digits
	Name        string `json:"name"`         // Name on the credit card
	UserEmail   string `json:"user_email"`   // User email address
}

CardInfoOut Credit card assigned to the project

type CardOut

type CardOut struct {
	Brand       string `json:"brand"`
	CardId      string `json:"card_id"` // Credit card ID
	Country     string `json:"country"`
	CountryCode string `json:"country_code"` // Two letter ISO country code
	ExpMonth    int    `json:"exp_month"`    // Expiration month
	ExpYear     int    `json:"exp_year"`     // Expiration year
	Last4       string `json:"last4"`        // Credit card last four digits
	Name        string `json:"name"`         // Name on the credit card
}

type ElasticsearchOut

type ElasticsearchOut struct {
	EolDate string `json:"eol_date"` // Extended EOL date
	Version string `json:"version"`  // Service version
}

ElasticsearchOut Service EOL extension

type EndOfLifeExtensionOut

type EndOfLifeExtensionOut struct {
	Elasticsearch *ElasticsearchOut `json:"elasticsearch,omitempty"` // Service EOL extension
}

EndOfLifeExtensionOut End of life extension information

type EventOut

type EventOut struct {
	AccountId         string    `json:"account_id"`         // Account ID
	ActionDescription string    `json:"action_description"` // Event description
	ActionType        string    `json:"action_type"`        // Event type
	Actor             string    `json:"actor"`              // Actor details
	ActorUserId       string    `json:"actor_user_id"`      // User ID
	CreateTime        time.Time `json:"create_time"`        // Timestamp in ISO 8601 format, always in UTC
	LogEntryId        int       `json:"log_entry_id"`       // Entry ID
	TeamId            string    `json:"team_id"`            // Team ID
}

type Handler

type Handler interface {
	// AccountAttachPaymentMethod attach payment method for account
	// POST /v1/account/{account_id}/payment_methods
	// https://api.aiven.io/doc/#tag/Account/operation/AccountAttachPaymentMethod
	AccountAttachPaymentMethod(ctx context.Context, accountId string, in *AccountAttachPaymentMethodIn) (*AccountAttachPaymentMethodOut, error)

	// AccountBillingGroupList list account billing groups
	// GET /v1/account/{account_id}/billing-group
	// https://api.aiven.io/doc/#tag/Account/operation/AccountBillingGroupList
	AccountBillingGroupList(ctx context.Context, accountId string) ([]AccountBillingGroupOut, error)

	// AccountCreate create a new account
	// POST /v1/account
	// https://api.aiven.io/doc/#tag/Account/operation/AccountCreate
	AccountCreate(ctx context.Context, in *AccountCreateIn) (*AccountCreateOut, error)

	// AccountDelete delete empty account
	// DELETE /v1/account/{account_id}
	// https://api.aiven.io/doc/#tag/Account/operation/AccountDelete
	AccountDelete(ctx context.Context, accountId string) error

	// AccountEventList list account events
	// GET /v1/account/{account_id}/events
	// https://api.aiven.io/doc/#tag/Account/operation/AccountEventList
	AccountEventList(ctx context.Context, accountId string) ([]EventOut, error)

	// AccountGet get account details
	// GET /v1/account/{account_id}
	// https://api.aiven.io/doc/#tag/Account/operation/AccountGet
	AccountGet(ctx context.Context, accountId string) (*AccountGetOut, error)

	// AccountList list accounts you have access to
	// GET /v1/account
	// https://api.aiven.io/doc/#tag/Account/operation/AccountList
	AccountList(ctx context.Context) ([]AccountOut, error)

	// AccountMove move an existing organization unitself
	// PUT /v1/account/{account_id}/parent_account
	// https://api.aiven.io/doc/#tag/Account/operation/AccountMove
	AccountMove(ctx context.Context, accountId string, in *AccountMoveIn) (*AccountMoveOut, error)

	// AccountPaymentMethodDelete delete credit card attached to the account as a payment method
	// DELETE /v1/account/{account_id}/payment_method/{card_id}
	// https://api.aiven.io/doc/#tag/Account/operation/AccountPaymentMethodDelete
	AccountPaymentMethodDelete(ctx context.Context, accountId string, cardId string) error

	// AccountPaymentMethodsList list credit cards attached as a payment method to the account
	// GET /v1/account/{account_id}/payment_methods
	// https://api.aiven.io/doc/#tag/Account/operation/AccountPaymentMethodsList
	AccountPaymentMethodsList(ctx context.Context, accountId string) ([]CardOut, error)

	// AccountProjectsList list projects belonging to account
	// GET /v1/account/{account_id}/projects
	// https://api.aiven.io/doc/#tag/Account/operation/AccountProjectsList
	AccountProjectsList(ctx context.Context, accountId string) (*AccountProjectsListOut, error)

	// Deprecated: AccountProjectsTeamsList list account teams associated to a project
	// GET /v1/account/{account_id}/project/{project_name}/teams
	// https://api.aiven.io/doc/#tag/Account/operation/AccountProjectsTeamsList
	AccountProjectsTeamsList(ctx context.Context, accountId string, projectName string) ([]TeamOut, error)

	// AccountUpdate update existing account
	// PUT /v1/account/{account_id}
	// https://api.aiven.io/doc/#tag/Account/operation/AccountUpdate
	AccountUpdate(ctx context.Context, accountId string, in *AccountUpdateIn) (*AccountUpdateOut, error)

	// AccountUserProjectsList list projects associated with this account that user has access to
	// GET /v1/account/{account_id}/user/{user_id}/projects
	// https://api.aiven.io/doc/#tag/Account/operation/AccountUserProjectsList
	AccountUserProjectsList(ctx context.Context, accountId string, userId string) ([]UserProjectOut, error)

	// Deprecated: AccountUserTeamsList list all teams for user
	// GET /v1/account/{account_id}/user/{user_id}/teams
	// https://api.aiven.io/doc/#tag/Account/operation/AccountUserTeamsList
	AccountUserTeamsList(ctx context.Context, accountId string, userId string) ([]AccountUserTeamsListOut, error)

	// AccountUsersSearch list/search users who are members of any team on this account
	// POST /v1/account/{account_id}/users/search
	// https://api.aiven.io/doc/#tag/Account/operation/AccountUsersSearch
	AccountUsersSearch(ctx context.Context, accountId string, in *AccountUsersSearchIn) ([]UserOut, error)
}

type MemberType added in v0.3.0

type MemberType string
const (
	MemberTypeAdmin                     MemberType = "admin"
	MemberTypeDeveloper                 MemberType = "developer"
	MemberTypeOperator                  MemberType = "operator"
	MemberTypeOrganizationAppUsersWrite MemberType = "organization:app_users:write"
	MemberTypeOrganizationAuditLogsRead MemberType = "organization:audit_logs:read"
	MemberTypeOrganizationDomainsWrite  MemberType = "organization:domains:write"
	MemberTypeOrganizationGroupsWrite   MemberType = "organization:groups:write"
	MemberTypeOrganizationIdpsWrite     MemberType = "organization:idps:write"
	MemberTypeOrganizationUsersWrite    MemberType = "organization:users:write"
	MemberTypeProjectAuditLogsRead      MemberType = "project:audit_logs:read"
	MemberTypeProjectIntegrationsRead   MemberType = "project:integrations:read"
	MemberTypeProjectIntegrationsWrite  MemberType = "project:integrations:write"
	MemberTypeProjectNetworkingRead     MemberType = "project:networking:read"
	MemberTypeProjectNetworkingWrite    MemberType = "project:networking:write"
	MemberTypeProjectPermissionsRead    MemberType = "project:permissions:read"
	MemberTypeProjectServicesRead       MemberType = "project:services:read"
	MemberTypeProjectServicesWrite      MemberType = "project:services:write"
	MemberTypeReadOnly                  MemberType = "read_only"
	MemberTypeRoleOrganizationAdmin     MemberType = "role:organization:admin"
	MemberTypeRoleServicesMaintenance   MemberType = "role:services:maintenance"
	MemberTypeRoleServicesRecover       MemberType = "role:services:recover"
	MemberTypeServiceConfigurationWrite MemberType = "service:configuration:write"
	MemberTypeServiceDataWrite          MemberType = "service:data:write"
	MemberTypeServiceLogsRead           MemberType = "service:logs:read"
	MemberTypeServiceSecretsRead        MemberType = "service:secrets:read"
	MemberTypeServiceUsersWrite         MemberType = "service:users:write"
)

type OrderByType

type OrderByType string
const (
	OrderByTypeUserEmailAsc  OrderByType = "user_email:asc"
	OrderByTypeUserEmailDesc OrderByType = "user_email:desc"
	OrderByTypeUserIdAsc     OrderByType = "user_id:asc"
	OrderByTypeUserIdDesc    OrderByType = "user_id:desc"
	OrderByTypeRealNameAsc   OrderByType = "real_name:asc"
	OrderByTypeRealNameDesc  OrderByType = "real_name:desc"
)

type PaymentMethodType added in v0.3.0

type PaymentMethodType string
const (
	PaymentMethodTypeAccrual           PaymentMethodType = "accrual"
	PaymentMethodTypeCard              PaymentMethodType = "card"
	PaymentMethodTypeDisabled          PaymentMethodType = "disabled"
	PaymentMethodTypeEmail             PaymentMethodType = "email"
	PaymentMethodTypeNoPaymentExpected PaymentMethodType = "no_payment_expected"
	PaymentMethodTypePartner           PaymentMethodType = "partner"
)

type ProjectOut

type ProjectOut struct {
	AccountId             string                 `json:"account_id"`                        // Account ID
	AccountName           *string                `json:"account_name,omitempty"`            // Account name
	AddressLines          []string               `json:"address_lines,omitempty"`           // Address lines
	AvailableCredits      *string                `json:"available_credits,omitempty"`       // Available credits, in USD
	BillingAddress        string                 `json:"billing_address"`                   // DEPRECATED: use split address fields like company, address_lines, zip_code, city and state instead
	BillingCurrency       BillingCurrencyType    `json:"billing_currency,omitempty"`        // Billing currency
	BillingEmails         []BillingEmailOut      `json:"billing_emails"`                    // List of project billing email addresses
	BillingExtraText      *string                `json:"billing_extra_text,omitempty"`      // Extra text to be included in all project invoices, e.g. purchase order or cost center number
	BillingGroupId        string                 `json:"billing_group_id"`                  // Billing group ID
	BillingGroupName      string                 `json:"billing_group_name"`                // Billing group name
	CardInfo              *CardInfoOut           `json:"card_info,omitempty"`               // Credit card assigned to the project
	City                  *string                `json:"city,omitempty"`                    // Address city
	Company               *string                `json:"company,omitempty"`                 // Name of a company
	Country               string                 `json:"country"`                           // Billing country
	CountryCode           string                 `json:"country_code"`                      // Two letter ISO country code
	DefaultCloud          string                 `json:"default_cloud"`                     // Default cloud to use when launching services
	EndOfLifeExtension    *EndOfLifeExtensionOut `json:"end_of_life_extension,omitempty"`   // End of life extension information
	EstimatedBalance      string                 `json:"estimated_balance"`                 // Estimated balance, in USD
	EstimatedBalanceLocal *string                `json:"estimated_balance_local,omitempty"` // Estimated balance, in billing currency
	Features              map[string]any         `json:"features,omitempty"`                // Feature flags
	OrganizationId        string                 `json:"organization_id"`                   // Organization ID
	PaymentMethod         string                 `json:"payment_method"`                    // Payment method
	ProjectName           string                 `json:"project_name"`                      // Project name
	State                 *string                `json:"state,omitempty"`                   // Address state or province
	Tags                  map[string]string      `json:"tags,omitempty"`                    // Set of resource tags
	TechEmails            []TechEmailOut         `json:"tech_emails,omitempty"`             // List of project tech email addresses
	TenantId              *string                `json:"tenant_id,omitempty"`               // Tenant ID
	TrialExpirationTime   *time.Time             `json:"trial_expiration_time,omitempty"`   // Trial expiration time (ISO 8601)
	VatId                 string                 `json:"vat_id"`                            // EU VAT Identification Number
	ZipCode               *string                `json:"zip_code,omitempty"`                // Address zip code
}

type TeamOut added in v0.15.0

type TeamOut struct {
	AccountId  *string    `json:"account_id,omitempty"`  // Account ID
	CreateTime *time.Time `json:"create_time,omitempty"` // Timestamp in ISO 8601 format, always in UTC
	TeamId     string     `json:"team_id"`               // Team ID
	TeamName   string     `json:"team_name"`             // Team name
	TeamType   TeamType   `json:"team_type,omitempty"`   // Team type (permission level)
	UpdateTime *time.Time `json:"update_time,omitempty"` // Timestamp in ISO 8601 format, always in UTC
}

type TeamType added in v0.15.0

type TeamType string
const (
	TeamTypeAdmin                     TeamType = "admin"
	TeamTypeOperator                  TeamType = "operator"
	TeamTypeDeveloper                 TeamType = "developer"
	TeamTypeReadOnly                  TeamType = "read_only"
	TeamTypeProjectIntegrationsRead   TeamType = "project:integrations:read"
	TeamTypeProjectIntegrationsWrite  TeamType = "project:integrations:write"
	TeamTypeProjectNetworkingRead     TeamType = "project:networking:read"
	TeamTypeProjectNetworkingWrite    TeamType = "project:networking:write"
	TeamTypeProjectPermissionsRead    TeamType = "project:permissions:read"
	TeamTypeServiceConfigurationWrite TeamType = "service:configuration:write"
	TeamTypeServiceLogsRead           TeamType = "service:logs:read"
	TeamTypeProjectServicesRead       TeamType = "project:services:read"
	TeamTypeProjectServicesWrite      TeamType = "project:services:write"
	TeamTypeProjectAuditLogsRead      TeamType = "project:audit_logs:read"
	TeamTypeServiceDataWrite          TeamType = "service:data:write"
	TeamTypeServiceSecretsRead        TeamType = "service:secrets:read"
	TeamTypeServiceUsersWrite         TeamType = "service:users:write"
	TeamTypeRoleServicesMaintenance   TeamType = "role:services:maintenance"
	TeamTypeRoleServicesRecover       TeamType = "role:services:recover"
	TeamTypeOrganizationAuditLogsRead TeamType = "organization:audit_logs:read"
	TeamTypeOrganizationUsersWrite    TeamType = "organization:users:write"
	TeamTypeOrganizationAppUsersWrite TeamType = "organization:app_users:write"
	TeamTypeOrganizationGroupsWrite   TeamType = "organization:groups:write"
	TeamTypeOrganizationIdpsWrite     TeamType = "organization:idps:write"
	TeamTypeOrganizationDomainsWrite  TeamType = "organization:domains:write"
	TeamTypeRoleOrganizationAdmin     TeamType = "role:organization:admin"
)

type TechEmailOut

type TechEmailOut struct {
	Email string `json:"email"` // User email address
}

type UserOut

type UserOut struct {
	RealName  string `json:"real_name"`  // User real name
	UserEmail string `json:"user_email"` // User email address
	UserId    string `json:"user_id"`    // User ID
}

type UserProjectOut

type UserProjectOut struct {
	AccessType  *string    `json:"access_type,omitempty"` // Access type
	AccountId   string     `json:"account_id"`            // Account ID
	CreateTime  time.Time  `json:"create_time"`           // Timestamp in ISO 8601 format, always in UTC
	MemberType  MemberType `json:"member_type"`           // Project member type
	ProjectName string     `json:"project_name"`          // Project name
	RealName    string     `json:"real_name"`             // User real name
	TeamId      string     `json:"team_id"`               // Team ID
	TeamName    string     `json:"team_name"`             // Team name
	UserEmail   string     `json:"user_email"`            // User email address
}

Jump to

Keyboard shortcuts

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