serviceuser

package
v0.31.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthenticationTypeChoices

func AuthenticationTypeChoices() []string

func DowTypeChoices added in v0.3.0

func DowTypeChoices() []string

func IntegrationStatusTypeChoices added in v0.3.0

func IntegrationStatusTypeChoices() []string

func KafkaAuthenticationMethodTypeChoices added in v0.3.0

func KafkaAuthenticationMethodTypeChoices() []string

func KafkaSslCaTypeChoices added in v0.11.0

func KafkaSslCaTypeChoices() []string

func LevelTypeChoices added in v0.3.0

func LevelTypeChoices() []string

func LikelyErrorCauseTypeChoices added in v0.3.0

func LikelyErrorCauseTypeChoices() []string

func NodeStateTypeChoices added in v0.3.0

func NodeStateTypeChoices() []string

func OperationTypeChoices

func OperationTypeChoices() []string

func PermissionTypeAltChoices added in v0.3.0

func PermissionTypeAltChoices() []string

func PermissionTypeChoices added in v0.3.0

func PermissionTypeChoices() []string

func PhaseTypeChoices added in v0.3.0

func PhaseTypeChoices() []string

func PoolModeTypeChoices added in v0.3.0

func PoolModeTypeChoices() []string

func RoleTypeChoices added in v0.3.0

func RoleTypeChoices() []string

func RouteTypeChoices added in v0.3.0

func RouteTypeChoices() []string

func ServiceNotificationTypeChoices added in v0.3.0

func ServiceNotificationTypeChoices() []string

func ServiceStateTypeChoices added in v0.3.0

func ServiceStateTypeChoices() []string

func TopicStateTypeChoices added in v0.3.0

func TopicStateTypeChoices() []string

func UnitTypeChoices added in v0.3.0

func UnitTypeChoices() []string

func UsageTypeChoices added in v0.3.0

func UsageTypeChoices() []string

Types

type AccessControlIn

type AccessControlIn struct {
	DragonflyAclCategories *[]string `json:"dragonfly_acl_categories,omitempty"` // Command category rules
	DragonflyAclCommands   *[]string `json:"dragonfly_acl_commands,omitempty"`   // Rules for individual commands
	DragonflyAclKeys       *[]string `json:"dragonfly_acl_keys,omitempty"`       // Key access rules
	M3Group                *string   `json:"m3_group,omitempty"`                 // M3 access group to associate users with
	PgAllowReplication     *bool     `json:"pg_allow_replication,omitempty"`     // Enable REPLICATION role option
	RedisAclCategories     *[]string `json:"redis_acl_categories,omitempty"`     // Command category rules
	RedisAclChannels       *[]string `json:"redis_acl_channels,omitempty"`       // Permitted pub/sub channel patterns. Glob-style patterns defining which pub/sub channels can be accessed. If array is not defined, the default policy is used (allchannels).
	RedisAclCommands       *[]string `json:"redis_acl_commands,omitempty"`       // Rules for individual commands
	RedisAclKeys           *[]string `json:"redis_acl_keys,omitempty"`           // Key access rules
	ValkeyAclCategories    *[]string `json:"valkey_acl_categories,omitempty"`    // Command category rules
	ValkeyAclChannels      *[]string `json:"valkey_acl_channels,omitempty"`      // Permitted pub/sub channel patterns. Glob-style patterns defining which pub/sub channels can be accessed. If array is not defined, the default policy is used (allchannels).
	ValkeyAclCommands      *[]string `json:"valkey_acl_commands,omitempty"`      // Rules for individual commands
	ValkeyAclKeys          *[]string `json:"valkey_acl_keys,omitempty"`          // Key access rules
}

AccessControlIn Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.

type AccessControlOut

type AccessControlOut struct {
	DragonflyAclCategories []string `json:"dragonfly_acl_categories,omitempty"` // Command category rules
	DragonflyAclCommands   []string `json:"dragonfly_acl_commands,omitempty"`   // Rules for individual commands
	DragonflyAclKeys       []string `json:"dragonfly_acl_keys,omitempty"`       // Key access rules
	M3Group                *string  `json:"m3_group,omitempty"`                 // M3 access group to associate users with
	PgAllowReplication     *bool    `json:"pg_allow_replication,omitempty"`     // Enable REPLICATION role option
	RedisAclCategories     []string `json:"redis_acl_categories,omitempty"`     // Command category rules
	RedisAclChannels       []string `json:"redis_acl_channels,omitempty"`       // Permitted pub/sub channel patterns. Glob-style patterns defining which pub/sub channels can be accessed. If array is not defined, the default policy is used (allchannels).
	RedisAclCommands       []string `json:"redis_acl_commands,omitempty"`       // Rules for individual commands
	RedisAclKeys           []string `json:"redis_acl_keys,omitempty"`           // Key access rules
	ValkeyAclCategories    []string `json:"valkey_acl_categories,omitempty"`    // Command category rules
	ValkeyAclChannels      []string `json:"valkey_acl_channels,omitempty"`      // Permitted pub/sub channel patterns. Glob-style patterns defining which pub/sub channels can be accessed. If array is not defined, the default policy is used (allchannels).
	ValkeyAclCommands      []string `json:"valkey_acl_commands,omitempty"`      // Rules for individual commands
	ValkeyAclKeys          []string `json:"valkey_acl_keys,omitempty"`          // Key access rules
}

AccessControlOut Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.

type AclOut

type AclOut struct {
	Id         *string        `json:"id,omitempty"` // ID
	Permission PermissionType `json:"permission"`   // Kafka permission
	Topic      string         `json:"topic"`        // Topic name pattern
	Username   string         `json:"username"`
}

type AdditionalRegionOut

type AdditionalRegionOut struct {
	Cloud       string  `json:"cloud"`                  // Target cloud
	PauseReason *string `json:"pause_reason,omitempty"` // Reason for pausing the backup synchronization
	Paused      *bool   `json:"paused,omitempty"`       // Indicates additional backup synchronization is paused
	Region      *string `json:"region,omitempty"`       // Cloud storage region name
}

type AuthenticationType

type AuthenticationType string
const (
	AuthenticationTypeNull                AuthenticationType = "null"
	AuthenticationTypeCachingSha2Password AuthenticationType = "caching_sha2_password"
	AuthenticationTypeMysqlNativePassword AuthenticationType = "mysql_native_password"
)

type BackupOut

type BackupOut struct {
	AdditionalRegions []AdditionalRegionOut `json:"additional_regions,omitempty"` // Additional backup regions, if available
	BackupName        string                `json:"backup_name"`                  // Internal name of this backup
	BackupTime        time.Time             `json:"backup_time"`                  // Backup timestamp (ISO 8601)
	DataSize          int                   `json:"data_size"`                    // Backup's original size before compression
	StorageLocation   *string               `json:"storage_location,omitempty"`   // Location where this backup is stored
}

type ComponentOut

type ComponentOut struct {
	Component                 string                        `json:"component"`                             // Service component name
	Host                      string                        `json:"host"`                                  // DNS name for connecting to the service component
	KafkaAuthenticationMethod KafkaAuthenticationMethodType `json:"kafka_authentication_method,omitempty"` // Kafka authentication method. This is a value specific to the 'kafka' service component
	KafkaSslCa                KafkaSslCaType                `json:"kafka_ssl_ca,omitempty"`                // Specifies if this port uses Project CA or Letsencrypt. If not specified, the default is using Project CA.This is a value specific to the 'kafka' service component.
	Path                      *string                       `json:"path,omitempty"`                        // Path component of the service URL (useful only if service component is HTTP or HTTPS endpoint)
	Port                      int                           `json:"port"`                                  // Port number for connecting to the service component
	PrivatelinkConnectionId   *string                       `json:"privatelink_connection_id,omitempty"`   // Privatelink connection ID
	Route                     RouteType                     `json:"route"`                                 // Network access route
	Ssl                       *bool                         `json:"ssl,omitempty"`                         // Whether the endpoint is encrypted or accepts plaintext. By default endpoints are always encrypted andthis property is only included for service components that may disable encryption.
	Usage                     UsageType                     `json:"usage"`                                 // DNS usage name
}

type ConnectionPoolOut

type ConnectionPoolOut struct {
	ConnectionUri string       `json:"connection_uri"`     // Connection URI for the DB pool
	Database      string       `json:"database"`           // Database name
	PoolMode      PoolModeType `json:"pool_mode"`          // PGBouncer pool mode
	PoolName      string       `json:"pool_name"`          // Connection pool name
	PoolSize      int          `json:"pool_size"`          // Size of PGBouncer's PostgreSQL side connection pool
	Username      *string      `json:"username,omitempty"` // Pool username
}

type DowType added in v0.3.0

type DowType string
const (
	DowTypeMonday    DowType = "monday"
	DowTypeTuesday   DowType = "tuesday"
	DowTypeWednesday DowType = "wednesday"
	DowTypeThursday  DowType = "thursday"
	DowTypeFriday    DowType = "friday"
	DowTypeSaturday  DowType = "saturday"
	DowTypeSunday    DowType = "sunday"
	DowTypeNever     DowType = "never"
)

type Handler

type Handler interface {
	// ServiceUserCreate create a new (sub) user for service
	// POST /v1/project/{project}/service/{service_name}/user
	// https://api.aiven.io/doc/#tag/Service/operation/ServiceUserCreate
	ServiceUserCreate(ctx context.Context, project string, serviceName string, in *ServiceUserCreateIn) (*ServiceUserCreateOut, error)

	// ServiceUserCredentialsModify modify service user credentials
	// PUT /v1/project/{project}/service/{service_name}/user/{service_username}
	// https://api.aiven.io/doc/#tag/Service/operation/ServiceUserCredentialsModify
	ServiceUserCredentialsModify(ctx context.Context, project string, serviceName string, serviceUsername string, in *ServiceUserCredentialsModifyIn) (*ServiceUserCredentialsModifyOut, error)

	// ServiceUserCredentialsReset reset service user credentials
	// PUT /v1/project/{project}/service/{service_name}/user/{service_username}/credentials/reset
	// https://api.aiven.io/doc/#tag/Service/operation/ServiceUserCredentialsReset
	ServiceUserCredentialsReset(ctx context.Context, project string, serviceName string, serviceUsername string) (*ServiceUserCredentialsResetOut, error)

	// ServiceUserDelete delete a service user
	// DELETE /v1/project/{project}/service/{service_name}/user/{service_username}
	// https://api.aiven.io/doc/#tag/Service/operation/ServiceUserDelete
	ServiceUserDelete(ctx context.Context, project string, serviceName string, serviceUsername string) error

	// ServiceUserGet get details for a single user
	// GET /v1/project/{project}/service/{service_name}/user/{service_username}
	// https://api.aiven.io/doc/#tag/Service/operation/ServiceUserGet
	ServiceUserGet(ctx context.Context, project string, serviceName string, serviceUsername string) (*ServiceUserGetOut, error)
}

type IntegrationStatusOut

type IntegrationStatusOut struct {
	State          StateOut `json:"state"`            // Service integration state
	StatusUserDesc string   `json:"status_user_desc"` // Integration status description
}

IntegrationStatusOut Integration status

type IntegrationStatusType added in v0.3.0

type IntegrationStatusType string
const (
	IntegrationStatusTypeFailed   IntegrationStatusType = "failed"
	IntegrationStatusTypeInactive IntegrationStatusType = "inactive"
	IntegrationStatusTypeRunning  IntegrationStatusType = "running"
	IntegrationStatusTypeStarting IntegrationStatusType = "starting"
	IntegrationStatusTypeUnknown  IntegrationStatusType = "unknown"
)

type KafkaAuthenticationMethodType added in v0.3.0

type KafkaAuthenticationMethodType string
const (
	KafkaAuthenticationMethodTypeCertificate KafkaAuthenticationMethodType = "certificate"
	KafkaAuthenticationMethodTypeSasl        KafkaAuthenticationMethodType = "sasl"
)

type KafkaSslCaType added in v0.11.0

type KafkaSslCaType string
const (
	KafkaSslCaTypeProjectCa   KafkaSslCaType = "project_ca"
	KafkaSslCaTypeLetsencrypt KafkaSslCaType = "letsencrypt"
)

type LevelType added in v0.3.0

type LevelType string
const (
	LevelTypeNotice  LevelType = "notice"
	LevelTypeWarning LevelType = "warning"
)

type LikelyErrorCauseType added in v0.3.0

type LikelyErrorCauseType string
const (
	LikelyErrorCauseTypeNull        LikelyErrorCauseType = "null"
	LikelyErrorCauseTypeDestination LikelyErrorCauseType = "destination"
	LikelyErrorCauseTypeIntegration LikelyErrorCauseType = "integration"
	LikelyErrorCauseTypeSource      LikelyErrorCauseType = "source"
	LikelyErrorCauseTypeUnknown     LikelyErrorCauseType = "unknown"
)

type MaintenanceOut

type MaintenanceOut struct {
	Dow     DowType     `json:"dow"`     // Day of week for installing updates
	Time    string      `json:"time"`    // Time for installing updates, UTC
	Updates []UpdateOut `json:"updates"` // List of updates waiting to be installed
}

MaintenanceOut Automatic maintenance settings

type MetadataOut

type MetadataOut struct {
	EndOfLifeHelpArticleUrl *string    `json:"end_of_life_help_article_url,omitempty"` // Link to the help article
	EndOfLifePolicyUrl      *string    `json:"end_of_life_policy_url,omitempty"`       // Link to the help article
	ServiceEndOfLifeTime    *time.Time `json:"service_end_of_life_time,omitempty"`     // Timestamp in ISO 8601 format, always in UTC
	UpgradeToServiceType    *string    `json:"upgrade_to_service_type,omitempty"`      // If the customer takes no action, the service is updated to this service type when end of life is reached on the Aiven platform. If it is the same as the service type, the platform only upgrades the version.
	UpgradeToVersion        *string    `json:"upgrade_to_version,omitempty"`           // The version to which the service will be updated at the end of life on the Aiven platform if the user does not take any action
}

MetadataOut Notification metadata

type NodeStateOut

type NodeStateOut struct {
	Name            string              `json:"name"`                       // Name of the service node
	ProgressUpdates []ProgressUpdateOut `json:"progress_updates,omitempty"` // Extra information regarding the progress for current state
	Role            RoleType            `json:"role,omitempty"`             // Role of this node. Only returned for a subset of service types
	Shard           *ShardOut           `json:"shard,omitempty"`            // Shard of this node. Only returned for a subset of service types
	State           NodeStateType       `json:"state"`                      // Current state of the service node
}

type NodeStateType added in v0.3.0

type NodeStateType string
const (
	NodeStateTypeLeaving     NodeStateType = "leaving"
	NodeStateTypeRunning     NodeStateType = "running"
	NodeStateTypeSettingUpVm NodeStateType = "setting_up_vm"
	NodeStateTypeSyncingData NodeStateType = "syncing_data"
	NodeStateTypeTimingOut   NodeStateType = "timing_out"
	NodeStateTypeUnknown     NodeStateType = "unknown"
)

type OperationType

type OperationType string
const (
	OperationTypeAcknowledgeRenewal OperationType = "acknowledge-renewal"
	OperationTypeResetCredentials   OperationType = "reset-credentials"
	OperationTypeSetAccessControl   OperationType = "set-access-control"
)

type PermissionType added in v0.3.0

type PermissionType string
const (
	PermissionTypeAdmin     PermissionType = "admin"
	PermissionTypeRead      PermissionType = "read"
	PermissionTypeReadwrite PermissionType = "readwrite"
	PermissionTypeWrite     PermissionType = "write"
)

type PermissionTypeAlt added in v0.3.0

type PermissionTypeAlt string
const (
	PermissionTypeAltSchemaRegistryRead  PermissionTypeAlt = "schema_registry_read"
	PermissionTypeAltSchemaRegistryWrite PermissionTypeAlt = "schema_registry_write"
)

type PhaseType added in v0.3.0

type PhaseType string
const (
	PhaseTypePrepare    PhaseType = "prepare"
	PhaseTypeBasebackup PhaseType = "basebackup"
	PhaseTypeStream     PhaseType = "stream"
	PhaseTypeFinalize   PhaseType = "finalize"
)

type PoolModeType added in v0.3.0

type PoolModeType string
const (
	PoolModeTypeSession     PoolModeType = "session"
	PoolModeTypeTransaction PoolModeType = "transaction"
	PoolModeTypeStatement   PoolModeType = "statement"
)

type ProgressUpdateOut

type ProgressUpdateOut struct {
	Completed bool      `json:"completed"`         // Indicates whether this phase has been completed or not
	Current   *int      `json:"current,omitempty"` // Current progress for this phase. May be missing or null.
	Max       *int      `json:"max,omitempty"`     // Maximum progress value for this phase. May be missing or null. May change.
	Min       *int      `json:"min,omitempty"`     // Minimum progress value for this phase. May be missing or null.
	Phase     PhaseType `json:"phase"`             // Key identifying this phase
	Unit      UnitType  `json:"unit,omitempty"`    // Unit for current/min/max values. New units may be added. If null should be treated as generic unit
}

type RoleType added in v0.3.0

type RoleType string
const (
	RoleTypeMaster      RoleType = "master"
	RoleTypeStandby     RoleType = "standby"
	RoleTypeReadReplica RoleType = "read-replica"
)

type RouteType added in v0.3.0

type RouteType string
const (
	RouteTypeDynamic     RouteType = "dynamic"
	RouteTypePublic      RouteType = "public"
	RouteTypePrivate     RouteType = "private"
	RouteTypePrivatelink RouteType = "privatelink"
)

type SchemaRegistryAclOut

type SchemaRegistryAclOut struct {
	Id         *string           `json:"id,omitempty"` // ID
	Permission PermissionTypeAlt `json:"permission"`   // ACL entry for Schema Registry
	Resource   string            `json:"resource"`     // Schema Registry ACL entry resource name pattern
	Username   string            `json:"username"`
}

type ServiceIntegrationOut

type ServiceIntegrationOut struct {
	Active               bool                  `json:"active"`                       // True when integration is active
	Description          string                `json:"description"`                  // Description of the integration
	DestEndpoint         *string               `json:"dest_endpoint,omitempty"`      // Destination endpoint name
	DestEndpointId       *string               `json:"dest_endpoint_id,omitempty"`   // Destination endpoint id
	DestProject          string                `json:"dest_project"`                 // Project name
	DestService          *string               `json:"dest_service,omitempty"`       // Destination service name
	DestServiceType      string                `json:"dest_service_type"`            // Service type code
	Enabled              bool                  `json:"enabled"`                      // True when integration is enabled
	IntegrationStatus    *IntegrationStatusOut `json:"integration_status,omitempty"` // Integration status
	IntegrationType      string                `json:"integration_type"`             // Type of the integration
	ServiceIntegrationId string                `json:"service_integration_id"`       // Integration ID
	SourceEndpoint       *string               `json:"source_endpoint,omitempty"`    // Source endpoint name
	SourceEndpointId     *string               `json:"source_endpoint_id,omitempty"` // Source endpoint ID
	SourceProject        string                `json:"source_project"`               // Project name
	SourceService        string                `json:"source_service"`               // Source service name
	SourceServiceType    string                `json:"source_service_type"`          // Service type code
	UserConfig           map[string]any        `json:"user_config,omitempty"`        // Service integration settings
}

type ServiceNotificationOut

type ServiceNotificationOut struct {
	Level    LevelType               `json:"level"`    // Notification level
	Message  string                  `json:"message"`  // Human notification message
	Metadata MetadataOut             `json:"metadata"` // Notification metadata
	Type     ServiceNotificationType `json:"type"`     // Notification type
}

type ServiceNotificationType added in v0.3.0

type ServiceNotificationType string
const (
	ServiceNotificationTypeServiceEndOfLife         ServiceNotificationType = "service_end_of_life"
	ServiceNotificationTypeServicePoweredOffRemoval ServiceNotificationType = "service_powered_off_removal"
)

type ServiceStateType added in v0.3.0

type ServiceStateType string
const (
	ServiceStateTypePoweroff    ServiceStateType = "POWEROFF"
	ServiceStateTypeRebalancing ServiceStateType = "REBALANCING"
	ServiceStateTypeRebuilding  ServiceStateType = "REBUILDING"
	ServiceStateTypeRunning     ServiceStateType = "RUNNING"
)

type ServiceUserCreateIn

type ServiceUserCreateIn struct {
	AccessControl  *AccessControlIn   `json:"access_control,omitempty"` // Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.
	Authentication AuthenticationType `json:"authentication,omitempty"` // Authentication details
	Username       string             `json:"username"`                 // Service username
}

ServiceUserCreateIn ServiceUserCreateRequestBody

type ServiceUserCreateOut

type ServiceUserCreateOut struct {
	AccessCert                    *string            `json:"access_cert,omitempty"`                        // Access certificate for TLS client authentication
	AccessCertNotValidAfterTime   *time.Time         `json:"access_cert_not_valid_after_time,omitempty"`   // Validity end time (ISO8601) for the current access certificate
	AccessControl                 *AccessControlOut  `json:"access_control,omitempty"`                     // Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.
	AccessKey                     *string            `json:"access_key,omitempty"`                         // Access key for TLS client authentication
	Authentication                AuthenticationType `json:"authentication,omitempty"`                     // Authentication details
	ExpiringCertNotValidAfterTime *time.Time         `json:"expiring_cert_not_valid_after_time,omitempty"` // Validity end time (ISO8601) for the expiring access certificate
	Password                      string             `json:"password"`                                     // Account password. A null value indicates a user overridden password.
	Type                          string             `json:"type"`                                         // Account type
	Username                      string             `json:"username"`                                     // Account username
}

ServiceUserCreateOut Service user account

type ServiceUserCredentialsModifyIn

type ServiceUserCredentialsModifyIn struct {
	AccessControl  *AccessControlIn   `json:"access_control,omitempty"` // Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.
	Authentication AuthenticationType `json:"authentication,omitempty"` // Authentication details
	NewPassword    *string            `json:"new_password,omitempty"`   // New password
	Operation      OperationType      `json:"operation"`                // Operation type
}

ServiceUserCredentialsModifyIn ServiceUserCredentialsModifyRequestBody

type ServiceUserCredentialsModifyOut

type ServiceUserCredentialsModifyOut struct {
	Acl                    []AclOut                 `json:"acl,omitempty"`                      // List of Kafka ACL entries
	Backups                []BackupOut              `json:"backups,omitempty"`                  // List of backups for the service
	CloudDescription       *string                  `json:"cloud_description,omitempty"`        // Cloud provider and location
	CloudName              string                   `json:"cloud_name"`                         // Target cloud
	Components             []ComponentOut           `json:"components,omitempty"`               // Service component information objects
	ConnectionInfo         map[string]any           `json:"connection_info,omitempty"`          // Service-specific connection information properties
	ConnectionPools        []ConnectionPoolOut      `json:"connection_pools,omitempty"`         // PostgreSQL PGBouncer connection pools
	CreateTime             time.Time                `json:"create_time"`                        // Service creation timestamp (ISO 8601)
	Databases              []string                 `json:"databases,omitempty"`                // List of service's user database names
	DiskSpaceMb            *float64                 `json:"disk_space_mb,omitempty"`            // Megabytes of disk space for data storage
	Features               map[string]any           `json:"features,omitempty"`                 // Feature flags
	GroupList              []string                 `json:"group_list"`                         // List of service groups the service belongs to. This field is deprecated. It is always set to single element with value 'default'
	Maintenance            *MaintenanceOut          `json:"maintenance,omitempty"`              // Automatic maintenance settings
	Metadata               map[string]any           `json:"metadata,omitempty"`                 // Service type specific metadata
	NodeCount              *int                     `json:"node_count,omitempty"`               // Number of service nodes in the active plan
	NodeCpuCount           *int                     `json:"node_cpu_count,omitempty"`           // Number of CPUs for each node
	NodeMemoryMb           *float64                 `json:"node_memory_mb,omitempty"`           // Megabytes of memory for each node
	NodeStates             []NodeStateOut           `json:"node_states,omitempty"`              // State of individual service nodes
	Plan                   string                   `json:"plan"`                               // Subscription plan
	ProjectVpcId           string                   `json:"project_vpc_id"`                     // Project VPC ID
	SchemaRegistryAcl      []SchemaRegistryAclOut   `json:"schema_registry_acl,omitempty"`      // List of Schema Registry ACL entries
	ServiceIntegrations    []ServiceIntegrationOut  `json:"service_integrations"`               // Integrations with other services
	ServiceName            string                   `json:"service_name"`                       // Service name
	ServiceNotifications   []ServiceNotificationOut `json:"service_notifications,omitempty"`    // Service notifications
	ServiceType            string                   `json:"service_type"`                       // Service type code
	ServiceTypeDescription *string                  `json:"service_type_description,omitempty"` // Single line description of the service
	ServiceUri             string                   `json:"service_uri"`                        // URI for connecting to the service (may be null)
	ServiceUriParams       map[string]any           `json:"service_uri_params,omitempty"`       // service_uri parameterized into key-value pairs
	State                  ServiceStateType         `json:"state"`                              // State of the service
	Tags                   map[string]string        `json:"tags,omitempty"`                     // Set of resource tags
	TechEmails             []TechEmailOut           `json:"tech_emails,omitempty"`              // List of service technical email addresses
	TerminationProtection  bool                     `json:"termination_protection"`             // Service is protected against termination and powering off
	Topics                 []TopicOut               `json:"topics,omitempty"`                   // Kafka topics. DEPRECATED: Use /project/$project/service/$service/topic instead
	UpdateTime             time.Time                `json:"update_time"`                        // Service last update timestamp (ISO 8601)
	UserConfig             map[string]any           `json:"user_config"`                        // Service type-specific settings
	Users                  []UserOut                `json:"users,omitempty"`                    // List of service users
}

ServiceUserCredentialsModifyOut Service information

type ServiceUserCredentialsResetOut

type ServiceUserCredentialsResetOut struct {
	Acl                    []AclOut                 `json:"acl,omitempty"`                      // List of Kafka ACL entries
	Backups                []BackupOut              `json:"backups,omitempty"`                  // List of backups for the service
	CloudDescription       *string                  `json:"cloud_description,omitempty"`        // Cloud provider and location
	CloudName              string                   `json:"cloud_name"`                         // Target cloud
	Components             []ComponentOut           `json:"components,omitempty"`               // Service component information objects
	ConnectionInfo         map[string]any           `json:"connection_info,omitempty"`          // Service-specific connection information properties
	ConnectionPools        []ConnectionPoolOut      `json:"connection_pools,omitempty"`         // PostgreSQL PGBouncer connection pools
	CreateTime             time.Time                `json:"create_time"`                        // Service creation timestamp (ISO 8601)
	Databases              []string                 `json:"databases,omitempty"`                // List of service's user database names
	DiskSpaceMb            *float64                 `json:"disk_space_mb,omitempty"`            // Megabytes of disk space for data storage
	Features               map[string]any           `json:"features,omitempty"`                 // Feature flags
	GroupList              []string                 `json:"group_list"`                         // List of service groups the service belongs to. This field is deprecated. It is always set to single element with value 'default'
	Maintenance            *MaintenanceOut          `json:"maintenance,omitempty"`              // Automatic maintenance settings
	Metadata               map[string]any           `json:"metadata,omitempty"`                 // Service type specific metadata
	NodeCount              *int                     `json:"node_count,omitempty"`               // Number of service nodes in the active plan
	NodeCpuCount           *int                     `json:"node_cpu_count,omitempty"`           // Number of CPUs for each node
	NodeMemoryMb           *float64                 `json:"node_memory_mb,omitempty"`           // Megabytes of memory for each node
	NodeStates             []NodeStateOut           `json:"node_states,omitempty"`              // State of individual service nodes
	Plan                   string                   `json:"plan"`                               // Subscription plan
	ProjectVpcId           string                   `json:"project_vpc_id"`                     // Project VPC ID
	SchemaRegistryAcl      []SchemaRegistryAclOut   `json:"schema_registry_acl,omitempty"`      // List of Schema Registry ACL entries
	ServiceIntegrations    []ServiceIntegrationOut  `json:"service_integrations"`               // Integrations with other services
	ServiceName            string                   `json:"service_name"`                       // Service name
	ServiceNotifications   []ServiceNotificationOut `json:"service_notifications,omitempty"`    // Service notifications
	ServiceType            string                   `json:"service_type"`                       // Service type code
	ServiceTypeDescription *string                  `json:"service_type_description,omitempty"` // Single line description of the service
	ServiceUri             string                   `json:"service_uri"`                        // URI for connecting to the service (may be null)
	ServiceUriParams       map[string]any           `json:"service_uri_params,omitempty"`       // service_uri parameterized into key-value pairs
	State                  ServiceStateType         `json:"state"`                              // State of the service
	Tags                   map[string]string        `json:"tags,omitempty"`                     // Set of resource tags
	TechEmails             []TechEmailOut           `json:"tech_emails,omitempty"`              // List of service technical email addresses
	TerminationProtection  bool                     `json:"termination_protection"`             // Service is protected against termination and powering off
	Topics                 []TopicOut               `json:"topics,omitempty"`                   // Kafka topics. DEPRECATED: Use /project/$project/service/$service/topic instead
	UpdateTime             time.Time                `json:"update_time"`                        // Service last update timestamp (ISO 8601)
	UserConfig             map[string]any           `json:"user_config"`                        // Service type-specific settings
	Users                  []UserOut                `json:"users,omitempty"`                    // List of service users
}

ServiceUserCredentialsResetOut Service information

type ServiceUserGetOut

type ServiceUserGetOut struct {
	AccessCert                    *string            `json:"access_cert,omitempty"`                        // Access certificate for TLS client authentication
	AccessCertNotValidAfterTime   *time.Time         `json:"access_cert_not_valid_after_time,omitempty"`   // Validity end time (ISO8601) for the current access certificate
	AccessControl                 *AccessControlOut  `json:"access_control,omitempty"`                     // Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.
	AccessKey                     *string            `json:"access_key,omitempty"`                         // Access key for TLS client authentication
	Authentication                AuthenticationType `json:"authentication,omitempty"`                     // Authentication details
	ExpiringCertNotValidAfterTime *time.Time         `json:"expiring_cert_not_valid_after_time,omitempty"` // Validity end time (ISO8601) for the expiring access certificate
	Password                      string             `json:"password"`                                     // Account password. A null value indicates a user overridden password.
	Type                          string             `json:"type"`                                         // Account type
	Username                      string             `json:"username"`                                     // Account username
}

ServiceUserGetOut Service user account

type ServiceUserHandler

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

func NewHandler

func NewHandler(doer doer) ServiceUserHandler

func (*ServiceUserHandler) ServiceUserCreate

func (h *ServiceUserHandler) ServiceUserCreate(ctx context.Context, project string, serviceName string, in *ServiceUserCreateIn) (*ServiceUserCreateOut, error)

func (*ServiceUserHandler) ServiceUserCredentialsModify

func (h *ServiceUserHandler) ServiceUserCredentialsModify(ctx context.Context, project string, serviceName string, serviceUsername string, in *ServiceUserCredentialsModifyIn) (*ServiceUserCredentialsModifyOut, error)

func (*ServiceUserHandler) ServiceUserCredentialsReset

func (h *ServiceUserHandler) ServiceUserCredentialsReset(ctx context.Context, project string, serviceName string, serviceUsername string) (*ServiceUserCredentialsResetOut, error)

func (*ServiceUserHandler) ServiceUserDelete

func (h *ServiceUserHandler) ServiceUserDelete(ctx context.Context, project string, serviceName string, serviceUsername string) error

func (*ServiceUserHandler) ServiceUserGet

func (h *ServiceUserHandler) ServiceUserGet(ctx context.Context, project string, serviceName string, serviceUsername string) (*ServiceUserGetOut, error)

type ShardOut

type ShardOut struct {
	Name     *string `json:"name,omitempty"`     // Name of the shard.
	Position *int    `json:"position,omitempty"` // Position of this shard within the service
}

ShardOut Shard of this node. Only returned for a subset of service types

type StateOut

type StateOut struct {
	Errors           []string              `json:"errors"`
	LikelyErrorCause LikelyErrorCauseType  `json:"likely_error_cause,omitempty"` // Most likely cause of the errors
	Nodes            map[string]any        `json:"nodes"`
	Status           IntegrationStatusType `json:"status"` // Service integration status
}

StateOut Service integration state

type TechEmailOut

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

type TopicOut

type TopicOut struct {
	CleanupPolicy     string         `json:"cleanup_policy"`      // cleanup.policy
	MinInsyncReplicas int            `json:"min_insync_replicas"` // min.insync.replicas
	Partitions        int            `json:"partitions"`          // Number of partitions
	Replication       int            `json:"replication"`         // Number of replicas
	RetentionBytes    int            `json:"retention_bytes"`     // retention.bytes
	RetentionHours    int            `json:"retention_hours"`     // Retention period (hours)
	State             TopicStateType `json:"state,omitempty"`     // Topic state
	TopicName         string         `json:"topic_name"`          // Topic name
}

type TopicStateType added in v0.3.0

type TopicStateType string
const (
	TopicStateTypeActive      TopicStateType = "ACTIVE"
	TopicStateTypeConfiguring TopicStateType = "CONFIGURING"
	TopicStateTypeDeleting    TopicStateType = "DELETING"
)

type UnitType added in v0.3.0

type UnitType string
const (
	UnitTypeBinlogs           UnitType = "binlogs"
	UnitTypeBytesCompressed   UnitType = "bytes_compressed"
	UnitTypeBytesUncompressed UnitType = "bytes_uncompressed"
	UnitTypeWalLsn            UnitType = "wal_lsn"
)

type UpdateOut

type UpdateOut struct {
	Deadline           *string    `json:"deadline,omitempty"`             // Deadline for installing the update
	Description        *string    `json:"description,omitempty"`          // Description of the update
	DocumentationLink  *string    `json:"documentation_link,omitempty"`   // Optional link
	Impact             *string    `json:"impact,omitempty"`               // Impact statement of the update
	ImpactPortableText *string    `json:"impact_portable_text,omitempty"` // Impact statement in portable text format
	StartAfter         *string    `json:"start_after,omitempty"`          // The earliest time the update will be automatically applied
	StartAt            *time.Time `json:"start_at,omitempty"`             // The time when the update will be automatically applied
}

type UsageType added in v0.3.0

type UsageType string
const (
	UsageTypePrimary UsageType = "primary"
	UsageTypeReplica UsageType = "replica"
)

type UserOut

type UserOut struct {
	AccessCert                    *string            `json:"access_cert,omitempty"`                        // Access certificate for TLS client authentication
	AccessCertNotValidAfterTime   *time.Time         `json:"access_cert_not_valid_after_time,omitempty"`   // Validity end time (ISO8601) for the current access certificate
	AccessControl                 *AccessControlOut  `json:"access_control,omitempty"`                     // Service specific access controls for user. Service type specific access control rules for user. Currently only used for configuring user ACLs for Redis version 6 and above.
	AccessKey                     *string            `json:"access_key,omitempty"`                         // Access key for TLS client authentication
	Authentication                AuthenticationType `json:"authentication,omitempty"`                     // Authentication details
	ExpiringCertNotValidAfterTime *time.Time         `json:"expiring_cert_not_valid_after_time,omitempty"` // Validity end time (ISO8601) for the expiring access certificate
	Password                      string             `json:"password"`                                     // Account password. A null value indicates a user overridden password.
	Type                          string             `json:"type"`                                         // Account type
	Username                      string             `json:"username"`                                     // Account username
}

Jump to

Keyboard shortcuts

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