models

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RunningStatus = "RUNNING"
	Disabled      = "DISABLED"
)
View Source
const (
	NoOperation = "NO_OPERATION"

	DefaultAccountName = "INSTACLUSTR"

	AWSVPC  = "AWS_VPC"
	GCP     = "GCP"
	AZUREAZ = "AZURE_AZ"
)
View Source
const (
	AWSAccessKeyID     = "awsAccessKeyId"
	AWSSecretAccessKey = "awsSecretAccessKey"

	SharedProvisioningType   = "SHARED"
	PackagedProvisioningType = "PACKAGED"
	StandardProvisioningType = "STANDARD"
)
View Source
const (
	ResourceStateAnnotation   = "instaclustr.com/resourceState"
	ClusterDeletionAnnotation = "instaclustr.com/clusterDeletion"
	ExternalChangesAnnotation = "instaclustr.com/externalChanges"
	DeletionFinalizer         = "instaclustr.com/deletionFinalizer"
	DeletionUserFinalizer     = "instaclustr.com/dependsOnCluster_"
	StartTimestampAnnotation  = "instaclustr.com/startTimestamp"
	UpdateQueuedAnnotation    = "instaclustr.com/updateQueued"

	DefaultSecretLabel                = "instaclustr.com/defaultSecret"
	ControlledByLabel                 = "instaclustr.com/controlledBy"
	ClusterIDLabel                    = "instaclustr.com/clusterID"
	ClusterNameLabel                  = "instaclustr.com/clusterName"
	ClustersV1beta1APIVersion         = "clusters.instaclustr.com/v1beta1"
	ClusterresourcesV1beta1APIVersion = "clusterresources.instaclustr.com/v1beta1"
	RedisUserNamespaceLabel           = "instaclustr.com/redisUserNamespace"
	OpenSearchUserNamespaceLabel      = "instaclustr.com/openSearchUserNamespace"

	CassandraKind        = "Cassandra"
	CassandraChildPrefix = "cassandra-"
	CassandraChildDCName = "cassandra-cadence-dc"

	KafkaKind        = "Kafka"
	KafkaChildPrefix = "kafka-"
	KafkaChildDCName = "kafka-cadence-dc"

	OpenSearchKind        = "OpenSearch"
	OpenSearchChildPrefix = "opensearch-"
	OpenSearchChildDCName = "opensearch-cadence-dc"

	K8sAPIVersionV1 = "v1"
	VPCPeered       = "VPC_PEERED"

	True  = "true"
	False = "false"

	Triggered = "triggered"

	ClusterBackupKind             = "ClusterBackup"
	PgClusterKind                 = "PostgreSQL"
	RedisClusterKind              = "Redis"
	OsClusterKind                 = "OpenSearch"
	CassandraClusterKind          = "Cassandra"
	ZookeeperClusterKind          = "Zookeeper"
	SecretKind                    = "Secret"
	PgBackupEventType             = "postgresql-backup"
	SnapshotUploadEventType       = "snapshot-upload"
	PgBackupPrefix                = "postgresql-backup-"
	SnapshotUploadPrefix          = "snapshot-upload-"
	DefaultUserSecretPrefix       = "default-user-password"
	DefaultUserSecretNameTemplate = "%s-%s"

	CassandraConnectionPort    = 9042
	CadenceConnectionPort      = 7933
	KafkaConnectionPort        = 9092
	KafkaConnectConnectionPort = 8083
	OpenSearchConnectionPort   = 9200
	PgConnectionPort           = 5432
	RedisConnectionPort        = 6379
	ZookeeperConnectionPort    = 2181

	KafkaConnectAppKind = "kafka-connect"
	CadenceAppKind      = "cadence"
	CassandraAppKind    = "cassandra"
	KafkaAppKind        = "kafka"
	OpenSearchAppKind   = "opensearch"
	PgAppKind           = "postgresql"
	RedisAppKind        = "redis"
	ZookeeperAppKind    = "zookeeper"

	KafkaAppType        = "KAFKA"
	RedisAppType        = "REDIS"
	CadenceAppType      = "CADENCE"
	ZookeeperAppType    = "APACHE_ZOOKEEPER"
	OpenSearchAppType   = "OPENSEARCH"
	PgAppType           = "POSTGRESQL"
	KafkaConnectAppType = "KAFKA_CONNECT"
	CassandraAppType    = "APACHE_CASSANDRA"
	SparkAppType        = "SPARK"

	DefaultPgUsernameValue = "icpostgresql"
)
View Source
const (
	CreatingEvent        = "creating"
	CreatedEvent         = "created"
	UpdatingEvent        = "updating"
	UpdatedEvent         = "updated"
	DeletingEvent        = "deleting"
	DeletedEvent         = "deleted"
	GenericEvent         = "generic"
	SecretEvent          = "secret"
	ClusterDeletingEvent = "cluster deleting"
)
View Source
const (
	Normal           = "Normal"
	Warning          = "Warning"
	Created          = "Created"
	PatchFailed      = "PatchFailed"
	NotFound         = "NotFound"
	CreationFailed   = "CreationFailed"
	FetchFailed      = "FetchFailed"
	ConvertionFailed = "ConvertionFailed"
	ValidationFailed = "ValidationFailed"
	UpdateFailed     = "UpdateFailed"
	ExternalChanges  = "ExternalChanges"
	DeletionStarted  = "DeletionStarted"
	DeletionFailed   = "DeletionFailed"
	Deleted          = "Deleted"
)
View Source
const (
	ReplaceOperation = "replace"
	AnnotationsPath  = "/metadata/annotations"
	FinalizersPath   = "/metadata/finalizers"

	Username = "username"
	Password = "password"
)
View Source
const Requeue60 = time.Second * 60

Variables

View Source
var (
	ErrZeroDataCentres                       = errors.New("cluster spec doesn't have data centres")
	ErrNetworkOverlaps                       = errors.New("cluster network overlaps")
	ErrImmutableTwoFactorDelete              = errors.New("twoFactorDelete field is immutable")
	ErrImmutableCloudProviderSettings        = errors.New("cloudProviderSettings are immutable")
	ErrImmutableIntraDataCentreReplication   = errors.New("intraDataCentreReplication fields are immutable")
	ErrImmutableInterDataCentreReplication   = errors.New("interDataCentreReplication fields are immutable")
	ErrNotValidPassword                      = errors.New("password must include at least 3 out of 4 of the following: (Uppercase, Lowercase, Number, Special Characters)")
	ErrImmutableDataCentresNumber            = errors.New("data centres number is immutable")
	ErrImmutableSpark                        = errors.New("spark field is immutable")
	ErrImmutableAWSSecurityGroupFirewallRule = errors.New("awsSecurityGroupFirewallRule is immutable")
	ErrImmutableTags                         = errors.New("tags field is immutable")
	ErrTypeAssertion                         = errors.New("unable to assert type")
	ErrImmutableSchemaRegistry               = errors.New("schema registry is immutable")
	ErrImmutableRestProxy                    = errors.New("rest proxy is immutable")
	ErrImmutableKarapaceSchemaRegistry       = errors.New("karapace schema registry is immutable")
	ErrImmutableKarapaceRestProxy            = errors.New("karapace rest proxy is immutable")
	ErrImmutableDedicatedZookeeper           = errors.New("dedicated zookeeper nodes cannot be changed")
	ErrDecreasedDataCentresNumber            = errors.New("data centres number cannot be decreased")
	ErrImmutableDataCentres                  = errors.New("data centres are immutable")
	ErrImmutableTargetCluster                = errors.New("TargetCluster field is immutable")
	ErrImmutableExternalCluster              = errors.New("ExternalCluster field is immutable")
	ErrImmutableManagedCluster               = errors.New("ManagedCluster field is immutable")
	ErrIncorrectStartHour                    = errors.New("startHour must be between 0 and 23 inclusive")
	ErrIncorrectDayOfWeek                    = errors.New("dayOfWeek is invalid")
	ErrTooManyExclusionHours                 = errors.New("cannot add more than 20 hours of exclusion times per week")
	ErrImmutableAWSArchival                  = errors.New("AWSArchival array is immutable")
	ErrImmutableStandardProvisioning         = errors.New("StandardProvisioning array is immutable")
	ErrImmutableSharedProvisioning           = errors.New("SharedProvisioning array is immutable")
	ErrImmutablePackagedProvisioning         = errors.New("PackagedProvisioning array is immutable")
	ErrImmutableAdvancedVisibility           = errors.New("AdvancedVisibility array is immutable")
	ErrImmutablePrivateLink                  = errors.New("PrivateLink array is immutable")
	ErrImmutableNodesNumber                  = errors.New("nodes number is immutable")
	ErrMissingSecretKeys                     = errors.New("the secret is missing the correct keys for the user")
	ErrUserStillExist                        = errors.New("the user is still attached to cluster")
)
View Source
var (
	ReconcileRequeue = reconcile.Result{RequeueAfter: Requeue60}
	ExitReconcile    = reconcile.Result{}
)
View Source
var (
	PGBouncerVersions    = []string{"1.17.0"}
	KafkaConnectVPCTypes = []string{"KAFKA_VPC", "VPC_PEERED", "SEPARATE_VPC"}
	PoolModes            = []string{"TRANSACTION", "SESSION", "STATEMENT"}
	ReplicationModes     = []string{"ASYNCHRONOUS", "SYNCHRONOUS"}
	CloudProviders       = []string{"AWS_VPC", "GCP", "AZURE_AZ"}
	SLATiers             = []string{"PRODUCTION", "NON_PRODUCTION"}
	ClusterNameRegExp    = "^[a-zA-Z0-9][a-zA-Z0-9_-]{2,31}$"
	BundleTypes          = []string{"APACHE_ZOOKEEPER", "CADENCE", "CADENCE_GRPC",
		"CADENCE_WEB", "CASSANDRA", "CASSANDRA_CQL",
		"ELASTICSEARCH", "KAFKA", "KAFKA_CONNECT",
		"KAFKA_ENCRYPTION", "KAFKA_MTLS", "KAFKA_NO_ENCRYPTION",
		"KAFKA_REST_PROXY", "KAFKA_SCHEMA_REGISTRY", "KARAPACE_REST_PROXY",
		"KARAPACE_SCHEMA_REGISTRY", "OPENSEARCH", "OPENSEARCH_DASHBOARDS",
		"PGBOUNCER", "POSTGRESQL", "REDIS",
		"SEARCH_DASHBOARDS", "SECURE_APACHE_ZOOKEEPER", "SPARK",
		"SPARK_JOBSERVER", "SHOTOVER_PROXY"}
	PeerAWSAccountIDRegExp = "^[0-9]{12}$"
	PeerVPCIDRegExp        = "^vpc-[0-9a-f]{8}$"
	PeerSubnetsRegExp      = "" /* 171-byte string literal not displayed */
	UUIDStringRegExp       = "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
	AWSRegions             = []string{"AF_SOUTH_1", "AP_EAST_1", "AP_NORTHEAST_1", "AP_NORTHEAST_2", "AP_SOUTHEAST_1",
		"AP_SOUTHEAST_2", "AP_SOUTH_1", "CA_CENTRAL_1", "CN_NORTHWEST_1", "CN_NORTH_1", "EU_CENTRAL_1", "EU_NORTH_1",
		"EU_SOUTH_1", "EU_WEST_1", "EU_WEST_2", "EU_WEST_3", "ME_SOUTH_1", "SA_EAST_1", "US_EAST_1", "US_EAST_2",
		"US_WEST_1", "US_WEST_2"}
	AzureRegions = []string{"AUSTRALIA_EAST", "CANADA_CENTRAL", "CENTRAL_US", "EAST_US", "EAST_US_2", "NORTH_EUROPE",
		"SOUTHEAST_ASIA", "SOUTH_CENTRAL_US", "WEST_EUROPE", "WEST_US_2"}
	GCPRegions = []string{"asia-east1", "asia-northeast1", "asia-south1", "asia-southeast1", "australia-southeast1",
		"europe-north1", "europe-west1", "europe-west2", "europe-west3", "europe-west4", "europe-west6",
		"northamerica-northeast1", "southamerica-east1", "us-central1", "us-east1", "us-east4", "us-west1", "us-west2"}
	DaysOfWeek          = []string{"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"}
	ISODateFormatRegExp = "" /* 258-byte string literal not displayed */
	ACLPermissionType   = []string{"ALLOW", "DENY"}
	ACLPatternType      = []string{"LITERAL", "PREFIXED"}
	ACLOperation        = []string{"ALL", "READ", "WRITE", "CREATE", "DELETE", "ALTER", "DESCRIBE", "CLUSTER_ACTION",
		"DESCRIBE_CONFIGS", "ALTER_CONFIGS", "IDEMPOTENT_WRITE"}
	ACLResourceType          = []string{"CLUSTER", "TOPIC", "GROUP", "DELEGATION_TOKEN", "TRANSACTIONAL_ID"}
	ACLUserPrefix            = "User:"
	ACLPrincipalRegExp       = "^User:.*$"
	S3URIRegExp              = "^s3:\\/\\/[a-zA-Z0-9_-]+[^\\/]$"
	DependencyVPCs           = []string{"TARGET_VPC", "VPC_PEERED", "SEPARATE_VPC"}
	EncryptionKeyAliasRegExp = "^[a-zA-Z0-9_-]{1}[a-zA-Z0-9 _-]*$"

	CassandraReplicationFactors    = []int{2, 3, 5}
	KafkaReplicationFactors        = []int{3, 5}
	KafkaConnectReplicationFactors = []int{3}
	OpenSearchReplicationFactors   = []int{3}
)

Functions

This section is empty.

Types

type AWSArchival

type AWSArchival struct {
	ArchivalS3Region   string `json:"archivalS3Region,omitempty"`
	AWSAccessKeyID     string `json:"awsAccessKeyId,omitempty"`
	ArchivalS3URI      string `json:"archivalS3Uri,omitempty"`
	AWSSecretAccessKey string `json:"awsSecretAccessKey,omitempty"`
}

type AWSConnectorSettings added in v0.0.2

type AWSConnectorSettings struct {
	S3RoleArn    string `json:"s3RoleArn"`
	SecretKey    string `json:"secretKey"`
	AccessKey    string `json:"accessKey"`
	S3BucketName string `json:"s3BucketName"`
}

type AWSSetting added in v0.0.2

type AWSSetting struct {
	EBSEncryptionKey       string `json:"ebsEncryptionKey,omitempty"`
	CustomVirtualNetworkID string `json:"customVirtualNetworkId,omitempty"`
}

type ActiveCluster added in v0.0.2

type ActiveCluster struct {
	Application string `json:"application,omitempty"`
	ID          string `json:"id,omitempty"`
}

type ActiveClusters added in v0.0.2

type ActiveClusters struct {
	AccountID string           `json:"accountId,omitempty"`
	Clusters  []*ActiveCluster `json:"clusters,omitempty"`
}

type AddonBundle

type AddonBundle struct {
	Bundle  string         `json:"bundle"`
	Version string         `json:"version"`
	Options *BundleOptions `json:"options"`
}

type AdvancedVisibility

type AdvancedVisibility struct {
	TargetKafka      *TargetKafka      `json:"targetKafka"`
	TargetOpenSearch *TargetOpenSearch `json:"targetOpenSearch"`
}

type AppVersions added in v0.0.5

type AppVersions struct {
	Application string   `json:"application"`
	Versions    []string `json:"versions"`
}

type AzureConnectorSettings added in v0.0.2

type AzureConnectorSettings struct {
	StorageContainerName string `json:"storageContainerName"`
	StorageAccountName   string `json:"storageAccountName"`
	StorageAccountKey    string `json:"storageAccountKey"`
}

type AzureSetting added in v0.0.2

type AzureSetting struct {
	ResourceGroup string `json:"resourceGroup,omitempty"`
}

type BackupDataCentre

type BackupDataCentre struct {
	Nodes []*BackupNode `json:"nodes"`
}

type BackupEvent

type BackupEvent struct {
	Type     string  `json:"type"`
	State    string  `json:"state"`
	Progress float32 `json:"progress"`
	Start    int     `json:"start"`
	End      int     `json:"end"`
}

type BackupNode

type BackupNode struct {
	Events []*BackupEvent `json:"events"`
}

type Bundle

type Bundle struct {
	Bundle  string `json:"bundle"`
	Version string `json:"version"`
}

type BundleOptions

type BundleOptions struct {
	DataNodeSize                 string `json:"dataNodeSize,omitempty"`
	MasterNodeSize               string `json:"masterNodeSize,omitempty"`
	OpenSearchDashboardsNodeSize string `json:"openSearchDashboardsNodeSize,omitempty"`
	IndexManagementPlugin        bool   `json:"indexManagementPlugin,omitempty"`
	AlertingPlugin               bool   `json:"alertingPlugin,omitempty"`
	ICUPlugin                    bool   `json:"icuPlugin,omitempty"`
	KNNPlugin                    bool   `json:"knnPlugin,omitempty"`
	NotificationsPlugin          bool   `json:"notificationsPlugin,omitempty"`
	ReportsPlugin                bool   `json:"reportsPlugin,omitempty"`
	DedicatedMasterNodes         bool   `json:"dedicatedMasterNodes,omitempty"`
}

type CadenceCluster added in v0.0.2

type CadenceCluster struct {
	ClusterStatus         `json:",inline"`
	Name                  string                         `json:"name"`
	CadenceVersion        string                         `json:"cadenceVersion"`
	DataCentres           []*CadenceDataCentre           `json:"dataCentres"`
	SharedProvisioning    []*CadenceSharedProvisioning   `json:"sharedProvisioning,omitempty"`
	StandardProvisioning  []*CadenceStandardProvisioning `json:"standardProvisioning,omitempty"`
	PCIComplianceMode     bool                           `json:"pciComplianceMode"`
	TwoFactorDelete       []*TwoFactorDelete             `json:"twoFactorDelete,omitempty"`
	UseCadenceWebAuth     bool                           `json:"useCadenceWebAuth"`
	PrivateNetworkCluster bool                           `json:"privateNetworkCluster"`
	SLATier               string                         `json:"slaTier"`
	AWSArchival           []*AWSArchival                 `json:"awsArchival,omitempty"`
}

type CadenceClusterAPIUpdate added in v0.0.2

type CadenceClusterAPIUpdate struct {
	DataCentres []*CadenceDataCentre `json:"dataCentres"`
}

type CadenceDataCentre

type CadenceDataCentre struct {
	DataCentre                `json:",inline"`
	ClientToClusterEncryption bool           `json:"clientToClusterEncryption"`
	PrivateLink               []*PrivateLink `json:"privateLink,omitempty"`
}

type CadenceSharedProvisioning

type CadenceSharedProvisioning struct {
	UseAdvancedVisibility bool `json:"useAdvancedVisibility"`
}

type CadenceStandardProvisioning

type CadenceStandardProvisioning struct {
	AdvancedVisibility []*AdvancedVisibility `json:"advancedVisibility,omitempty"`
	TargetCassandra    *TargetCassandra      `json:"targetCassandra"`
}

type CassandraCluster added in v0.0.2

type CassandraCluster struct {
	ClusterStatus
	CassandraVersion      string                 `json:"cassandraVersion"`
	LuceneEnabled         bool                   `json:"luceneEnabled"`
	PasswordAndUserAuth   bool                   `json:"passwordAndUserAuth"`
	Spark                 []*Spark               `json:"spark,omitempty"`
	DataCentres           []*CassandraDataCentre `json:"dataCentres"`
	Name                  string                 `json:"name"`
	SLATier               string                 `json:"slaTier"`
	PrivateNetworkCluster bool                   `json:"privateNetworkCluster"`
	PCIComplianceMode     bool                   `json:"pciComplianceMode"`
	TwoFactorDelete       []*TwoFactorDelete     `json:"twoFactorDelete,omitempty"`
	BundledUseOnly        bool                   `json:"bundledUseOnly,omitempty"`
}

type CassandraClusterAPIUpdate added in v0.0.2

type CassandraClusterAPIUpdate struct {
	DataCentres []*CassandraDataCentre `json:"dataCentres"`
}

type CassandraDataCentre added in v0.0.2

type CassandraDataCentre struct {
	DataCentre                     `json:",inline"`
	ReplicationFactor              int  `json:"replicationFactor"`
	ContinuousBackup               bool `json:"continuousBackup"`
	PrivateIPBroadcastForDiscovery bool `json:"privateIpBroadcastForDiscovery"`
	ClientToClusterEncryption      bool `json:"clientToClusterEncryption"`
}

type CloudProviderSettings added in v0.0.2

type CloudProviderSettings struct {
	AWSSettings   []*AWSSetting   `json:"awsSettings,omitempty"`
	GCPSettings   []*GCPSetting   `json:"gcpSettings,omitempty"`
	AzureSettings []*AzureSetting `json:"azureSettings,omitempty"`
}

type ClusterBackup

type ClusterBackup struct {
	ClusterDataCentres []*BackupDataCentre `json:"clusterDataCentres"`
}

func (*ClusterBackup) GetBackupEvents

func (cb *ClusterBackup) GetBackupEvents(clusterKind string) map[int]*BackupEvent

type ClusterConfigurations

type ClusterConfigurations struct {
	ParameterName  string `json:"parameterName"`
	ParameterValue string `json:"parameterValue"`
}

type ClusterManagerNodes added in v0.0.6

type ClusterManagerNodes struct {
	NodeSize         string `json:"nodeSize"`
	DedicatedManager bool   `json:"dedicatedManager"`
}

type ClusterModifyRequest

type ClusterModifyRequest struct {
	TwoFactorDelete *TwoFactorDeleteV1 `json:"twoFactorDelete,omitempty"`
	Description     string             `json:"description,omitempty"`
}

type ClusterProviderV1 added in v0.0.2

type ClusterProviderV1 struct {
	Name                   string            `json:"name"`
	AccountName            string            `json:"accountName,omitempty"`
	CustomVirtualNetworkID string            `json:"customVirtualNetworkId,omitempty"`
	Tags                   map[string]string `json:"tags,omitempty"`
	ResourceGroup          string            `json:"resourceGroup,omitempty"`
	DiskEncryptionKey      string            `json:"diskEncryptionKey,omitempty"`
	ResourceName           string            `json:"resourceName,omitempty"`
}

type ClusterStatus

type ClusterStatus struct {
	ID                            string `json:"id,omitempty"`
	Status                        string `json:"status,omitempty"`
	CurrentClusterOperationStatus string `json:"currentClusterOperationStatus,omitempty"`
}

type ConfigurationProperties

type ConfigurationProperties struct {
	Name      string `json:"name"`
	ClusterID string `json:"clusterId"`
	ID        string `json:"id,omitempty"`
	Value     string `json:"value"`
}

type CustomConnectors added in v0.0.2

type CustomConnectors struct {
	AzureConnectorSettings []*AzureConnectorSettings `json:"azureConnectorSettings,omitempty"`
	AWSConnectorSettings   []*AWSConnectorSettings   `json:"awsConnectorSettings,omitempty"`
	GCPConnectorSettings   []*GCPConnectorSettings   `json:"gcpConnectorSettings,omitempty"`
}

type DataCentre

type DataCentre struct {
	DataCentreStatus    `json:",inline"`
	Name                string          `json:"name"`
	Network             string          `json:"network"`
	NodeSize            string          `json:"nodeSize,omitempty"`
	NumberOfNodes       int             `json:"numberOfNodes,omitempty"`
	AWSSettings         []*AWSSetting   `json:"awsSettings,omitempty"`
	GCPSettings         []*GCPSetting   `json:"gcpSettings,omitempty"`
	AzureSettings       []*AzureSetting `json:"azureSettings,omitempty"`
	Tags                []*Tag          `json:"tags,omitempty"`
	CloudProvider       string          `json:"cloudProvider"`
	Region              string          `json:"region"`
	ProviderAccountName string          `json:"providerAccountName,omitempty"`
}

type DataCentreResizeOperations

type DataCentreResizeOperations struct {
	CDCID  string `json:"cdc"`
	Status string `json:"completedStatus"`
}

type DataCentreStatus

type DataCentreStatus struct {
	ID     string  `json:"id,omitempty"`
	Status string  `json:"status,omitempty"`
	Nodes  []*Node `json:"nodes,omitempty"`
}

type DataCentreV1 added in v0.0.2

type DataCentreV1 struct {
	ID                            string          `json:"id,omitempty"`
	Name                          string          `json:"name"`
	CDCName                       string          `json:"cdcName"`
	Provider                      string          `json:"provider"`
	CDCNetwork                    string          `json:"cdcNetwork"`
	ClientEncryption              bool            `json:"clientEncryption"`
	PasswordAuthentication        bool            `json:"passwordAuthentication"`
	UserAuthorization             bool            `json:"userAuthorization"`
	UsePrivateBroadcastRPCAddress bool            `json:"usePrivateBroadcastRPCAddress"`
	PrivateIPOnly                 bool            `json:"privateIPOnly"`
	EncryptionKeyID               string          `json:"encryptionKeyId,omitempty"`
	NodeCount                     int             `json:"nodeCount,omitempty"`
	Nodes                         []*NodeStatusV1 `json:"nodes"`
	PrivateLink                   *PrivateLinkV1  `json:"privateLink,omitempty"`
	CDCStatus                     string          `json:"cdcStatus,omitempty"`
}

type DedicatedZookeeper added in v0.0.2

type DedicatedZookeeper struct {
	ZookeeperNodeSize  string `json:"zookeeperNodeSize"`
	ZookeeperNodeCount int32  `json:"zookeeperNodeCount"`
}

type DedicatedZookeeperUpdate added in v0.0.2

type DedicatedZookeeperUpdate struct {
	ZookeeperNodeSize string `json:"zookeeperNodeSize"`
}

type ExternalCluster added in v0.0.2

type ExternalCluster struct {
	SecurityProtocol      string `json:"securityProtocol,omitempty"`
	SSLTruststorePassword string `json:"sslTruststorePassword,omitempty"`
	BootstrapServers      string `json:"bootstrapServers,omitempty"`
	SASLJAASConfig        string `json:"saslJaasConfig,omitempty"`
	SASLMechanism         string `json:"saslMechanism,omitempty"`
	SSLProtocol           string `json:"sslProtocol,omitempty"`
	SSLEnabledProtocols   string `json:"sslEnabledProtocols,omitempty"`
	Truststore            string `json:"truststore,omitempty"`
}

type FirewallRule

type FirewallRule struct {
	Network         string      `json:"network,omitempty"`
	SecurityGroupId string      `json:"securityGroupId,omitempty"`
	Rules           []*RuleType `json:"rules"`
}

type GCPConnectorSettings added in v0.0.2

type GCPConnectorSettings struct {
	PrivateKey        string `json:"privateKey"`
	ClientID          string `json:"clientId"`
	ClientEmail       string `json:"clientEmail"`
	ProjectID         string `json:"projectId"`
	StorageBucketName string `json:"storageBucketName"`
	PrivateKeyID      string `json:"privateKeyId"`
}

type GCPSetting added in v0.0.2

type GCPSetting struct {
	CustomVirtualNetworkID string `json:"customVirtualNetworkId,omitempty"`
}

type InstaOpenSearchUser added in v0.0.6

type InstaOpenSearchUser struct {
	*InstaUser `json:",inline"`
	Options    Options `json:"options"`
}

type InstaUser added in v0.0.6

type InstaUser struct {
	Username          string `json:"username"`
	Password          string `json:"password"`
	InitialPermission string `json:"initial-permissions"`
}

type KafkaCluster added in v0.0.2

type KafkaCluster struct {
	ClusterStatus                     `json:",inline"`
	Name                              string                    `json:"name"`
	KafkaVersion                      string                    `json:"kafkaVersion"`
	PrivateNetworkCluster             bool                      `json:"privateNetworkCluster"`
	SLATier                           string                    `json:"slaTier"`
	TwoFactorDelete                   []*TwoFactorDelete        `json:"twoFactorDelete"`
	AllowDeleteTopics                 bool                      `json:"allowDeleteTopics"`
	AutoCreateTopics                  bool                      `json:"autoCreateTopics"`
	BundledUseOnly                    bool                      `json:"bundledUseOnly"`
	ClientAuthBrokerWithEncryption    bool                      `json:"clientAuthBrokerWithEncryption"`
	ClientAuthBrokerWithoutEncryption bool                      `json:"clientAuthBrokerWithoutEncryption"`
	ClientBrokerAuthWithMtls          bool                      `json:"clientBrokerAuthWithMtls"`
	ClientToClusterEncryption         bool                      `json:"clientToClusterEncryption"`
	DataCentres                       []*KafkaDataCentre        `json:"dataCentres"`
	DedicatedZookeeper                []*DedicatedZookeeper     `json:"dedicatedZookeeper"`
	DefaultNumberOfPartitions         int                       `json:"defaultNumberOfPartitions"`
	DefaultReplicationFactor          int                       `json:"defaultReplicationFactor"`
	KarapaceRestProxy                 []*KarapaceRestProxy      `json:"karapaceRestProxy"`
	KarapaceSchemaRegistry            []*KarapaceSchemaRegistry `json:"karapaceSchemaRegistry"`
	PCIComplianceMode                 bool                      `json:"pciComplianceMode"`
	RestProxy                         []*RestProxy              `json:"restProxy"`
	SchemaRegistry                    []*SchemaRegistry         `json:"schemaRegistry"`
}

type KafkaConnectAPIUpdate added in v0.0.2

type KafkaConnectAPIUpdate struct {
	DataCentres []*KafkaConnectDataCentre `json:"dataCentres,omitempty"`
}

type KafkaConnectCluster added in v0.0.2

type KafkaConnectCluster struct {
	ClusterStatus         `json:",inline"`
	Name                  string                    `json:"name,omitempty"`
	KafkaConnectVersion   string                    `json:"kafkaConnectVersion,omitempty"`
	PrivateNetworkCluster bool                      `json:"privateNetworkCluster"`
	SLATier               string                    `json:"slaTier,omitempty"`
	TwoFactorDelete       []*TwoFactorDelete        `json:"twoFactorDelete,omitempty"`
	CustomConnectors      []*CustomConnectors       `json:"customConnectors,omitempty"`
	TargetCluster         []*TargetCluster          `json:"targetCluster,omitempty"`
	DataCentres           []*KafkaConnectDataCentre `json:"dataCentres,omitempty"`
}

type KafkaConnectDataCentre added in v0.0.2

type KafkaConnectDataCentre struct {
	DataCentre        `json:",inline"`
	ReplicationFactor int `json:"replicationFactor"`
}

type KafkaDataCentre added in v0.0.2

type KafkaDataCentre struct {
	DataCentre  `json:",inline"`
	PrivateLink []*KafkaPrivateLink `json:"privateLink,omitempty"`
}

type KafkaInstAPIUpdateRequest added in v0.0.2

type KafkaInstAPIUpdateRequest struct {
	DataCentre         []*KafkaDataCentre          `json:"dataCentres"`
	DedicatedZookeeper []*DedicatedZookeeperUpdate `json:"dedicatedZookeeper,omitempty"`
}
type KafkaPrivateLink struct {
	AdvertisedHostname string `json:"advertisedHostname"`
}

type KafkaUser added in v0.0.2

type KafkaUser struct {
	Username           string            `json:"username,omitempty"`
	Password           string            `json:"password,omitempty"`
	Options            *KafkaUserOptions `json:"options"`
	ClusterID          string            `json:"clusterId"`
	InitialPermissions string            `json:"initialPermissions"`
}

type KafkaUserOptions added in v0.0.2

type KafkaUserOptions struct {
	OverrideExistingUser bool   `json:"overrideExistingUser,omitempty"`
	SASLSCRAMMechanism   string `json:"saslScramMechanism"`
}

type KarapaceRestProxy added in v0.0.2

type KarapaceRestProxy struct {
	IntegrateRestProxyWithSchemaRegistry bool   `json:"integrateRestProxyWithSchemaRegistry"`
	Version                              string `json:"version"`
}

type KarapaceSchemaRegistry added in v0.0.2

type KarapaceSchemaRegistry struct {
	Version string `json:"version"`
}

type ManagedCluster added in v0.0.2

type ManagedCluster struct {
	TargetKafkaClusterID string `json:"targetKafkaClusterId"`
	KafkaConnectVPCType  string `json:"kafkaConnectVpcType"`
}

type Node added in v0.0.2

type Node struct {
	ID             string   `json:"id,omitempty"`
	Size           string   `json:"nodeSize,omitempty"`
	Status         string   `json:"status,omitempty"`
	Roles          []string `json:"nodeRoles,omitempty"`
	PublicAddress  string   `json:"publicAddress,omitempty"`
	PrivateAddress string   `json:"privateAddress,omitempty"`
	Rack           string   `json:"rack,omitempty"`
}

type NodeReloadStatus added in v0.0.2

type NodeReloadStatus struct {
	NodeID       string `json:"nodeId,omitempty"`
	OperationID  string `json:"operationId,omitempty"`
	TimeCreated  string `json:"timeCreated,omitempty"`
	TimeModified string `json:"timeModified,omitempty"`
	Status       string `json:"status,omitempty"`
	Message      string `json:"message,omitempty"`
}

type NodeStatusV1 added in v0.0.2

type NodeStatusV1 struct {
	ID             string `json:"id"`
	Rack           string `json:"rack"`
	Size           string `json:"size"`
	PublicAddress  string `json:"publicAddress"`
	PrivateAddress string `json:"privateAddress"`
	NodeStatus     string `json:"nodeStatus"`
}

type OpenSearchCluster added in v0.0.6

type OpenSearchCluster struct {
	ClusterStatus            `json:",inline"`
	DataNodes                []*OpenSearchDataNodes  `json:"dataNodes,omitempty"`
	PCIComplianceMode        bool                    `json:"pciComplianceMode"`
	ICUPlugin                bool                    `json:"icuPlugin"`
	OpenSearchVersion        string                  `json:"opensearchVersion"`
	AsynchronousSearchPlugin bool                    `json:"asynchronousSearchPlugin"`
	TwoFactorDelete          []*TwoFactorDelete      `json:"twoFactorDelete,omitempty"`
	KNNPlugin                bool                    `json:"knnPlugin"`
	OpenSearchDashboards     []*OpenSearchDashboards `json:"opensearchDashboards,omitempty"`
	ReportingPlugin          bool                    `json:"reportingPlugin"`
	SQLPlugin                bool                    `json:"sqlPlugin"`
	NotificationsPlugin      bool                    `json:"notificationsPlugin"`
	DataCentres              []*OpenSearchDataCentre `json:"dataCentres"`
	AnomalyDetectionPlugin   bool                    `json:"anomalyDetectionPlugin"`
	LoadBalancer             bool                    `json:"loadBalancer"`
	PrivateNetworkCluster    bool                    `json:"privateNetworkCluster"`
	Name                     string                  `json:"name"`
	BundledUseOnly           bool                    `json:"bundledUseOnly"`
	ClusterManagerNodes      []*ClusterManagerNodes  `json:"clusterManagerNodes"`
	IndexManagementPlugin    bool                    `json:"indexManagementPlugin"`
	SLATier                  string                  `json:"slaTier,omitempty"`
	AlertingPlugin           bool                    `json:"alertingPlugin"`
}

type OpenSearchDashboards added in v0.0.6

type OpenSearchDashboards struct {
	NodeSize     string `json:"nodeSize"`
	OIDCProvider string `json:"oidcProvider,omitempty"`
	Version      string `json:"version"`
}

type OpenSearchDataCentre added in v0.0.6

type OpenSearchDataCentre struct {
	DataCentre    `json:",inline"`
	PrivateLink   bool `json:"privateLink"`
	NumberOfRacks int  `json:"numberOfRacks"`
}

type OpenSearchDataNodes added in v0.0.6

type OpenSearchDataNodes struct {
	NodeSize  string `json:"nodeSize"`
	NodeCount int    `json:"nodeCount"`
}

type OpenSearchInstAPIUpdateRequest added in v0.0.6

type OpenSearchInstAPIUpdateRequest struct {
	DataNodes            []*OpenSearchDataNodes  `json:"dataNodes,omitempty"`
	OpenSearchDashboards []*OpenSearchDashboards `json:"opensearchDashboards,omitempty"`
	ClusterManagerNodes  []*ClusterManagerNodes  `json:"clusterManagerNodes"`
}

type Options added in v0.0.6

type Options struct {
	IndexPattern string `json:"indexPattern"`
	Role         string `json:"role"`
}

type PGBouncer

type PGBouncer struct {
	PGBouncerVersion string `json:"pgBouncerVersion"`
	PoolMode         string `json:"poolMode"`
}

type PGCluster

type PGCluster struct {
	ID                            string             `json:"id,omitempty"`
	Name                          string             `json:"name"`
	PostgreSQLVersion             string             `json:"postgresqlVersion"`
	DataCentres                   []*PGDataCentre    `json:"dataCentres"`
	SynchronousModeStrict         bool               `json:"synchronousModeStrict"`
	PrivateNetworkCluster         bool               `json:"privateNetworkCluster"`
	SLATier                       string             `json:"slaTier"`
	TwoFactorDelete               []*TwoFactorDelete `json:"twoFactorDelete,omitempty"`
	PCIComplianceMode             bool               `json:"pciComplianceMode,omitempty"`
	CurrentClusterOperationStatus string             `json:"currentClusterOperationStatus,omitempty"`
	Status                        string             `json:"status,omitempty"`
}

type PGConfigs

type PGConfigs struct {
	ClusterID               string                     `json:"clusterId,omitempty"`
	ConfigurationProperties []*ConfigurationProperties `json:"configurationProperties"`
}

type PGDataCentre

type PGDataCentre struct {
	DataCentre                 `json:",inline"`
	ClientToClusterEncryption  bool                    `json:"clientToClusterEncryption"`
	InterDataCentreReplication []*PGInterDCReplication `json:"interDataCentreReplication,omitempty"`
	IntraDataCentreReplication []*PGIntraDCReplication `json:"intraDataCentreReplication"`
	PGBouncer                  []*PGBouncer            `json:"pgBouncer,omitempty"`
}

type PGInterDCReplication

type PGInterDCReplication struct {
	IsPrimaryDataCentre bool `json:"isPrimaryDataCentre"`
}

type PGIntraDCReplication

type PGIntraDCReplication struct {
	ReplicationMode string `json:"replicationMode"`
}
type PrivateLink struct {
	AdvertisedHostname string `json:"advertisedHostname"`
}

type PrivateLinkV1 added in v0.1.1

type PrivateLinkV1 struct {
	IAMPrincipalARNs []string `json:"iamPrincipalARNs"`
}

type RackAllocationV1 added in v0.0.2

type RackAllocationV1 struct {
	NumberOfRacks int `json:"numberOfRacks"`
	NodesPerRack  int `json:"nodesPerRack"`
}

type RedisCluster

type RedisCluster struct {
	ClusterStatus          `json:",inline"`
	Name                   string             `json:"name"`
	RedisVersion           string             `json:"redisVersion"`
	ClientToNodeEncryption bool               `json:"clientToNodeEncryption"`
	PCIComplianceMode      bool               `json:"pciComplianceMode"`
	DataCentres            []*RedisDataCentre `json:"dataCentres,omitempty"`
	PrivateNetworkCluster  bool               `json:"privateNetworkCluster"`
	PasswordAndUserAuth    bool               `json:"passwordAndUserAuth"`
	TwoFactorDelete        []*TwoFactorDelete `json:"twoFactorDelete,omitempty"`
	SLATier                string             `json:"slaTier"`
}

type RedisDataCentre

type RedisDataCentre struct {
	DataCentre   `json:",inline"`
	MasterNodes  int `json:"masterNodes"`
	ReplicaNodes int `json:"replicaNodes"`
}

type RedisDataCentreUpdate added in v0.0.2

type RedisDataCentreUpdate struct {
	DataCentres []*RedisDataCentre `json:"dataCentres"`
}

type RedisUser added in v0.0.2

type RedisUser struct {
	ID                 string `json:"ID,omitempty"`
	ClusterID          string `json:"clusterId"`
	Username           string `json:"username"`
	Password           string `json:"password"`
	InitialPermissions string `json:"initialPermissions"`
}

type RedisUserUpdate added in v0.0.2

type RedisUserUpdate struct {
	ID       string
	Password string `json:"password"`
}

type ResizeRequest

type ResizeRequest struct {
	NewNodeSize           string `json:"newNodeSize"`
	ConcurrentResizes     int    `json:"concurrentResizes"`
	NotifySupportContacts bool   `json:"notifySupportContacts"`
	NodePurpose           string `json:"nodePurpose"`
	ClusterID             string `json:"-"`
	DataCentreID          string `json:"-"`
}

type RestProxy added in v0.0.2

type RestProxy struct {
	IntegrateRestProxyWithSchemaRegistry bool   `json:"integrateRestProxyWithSchemaRegistry"`
	UseLocalSchemaRegistry               bool   `json:"useLocalSchemaRegistry,omitempty"`
	SchemaRegistryServerURL              string `json:"schemaRegistryServerUrl,omitempty"`
	SchemaRegistryUsername               string `json:"schemaRegistryUsername,omitempty"`
	SchemaRegistryPassword               string `json:"schemaRegistryPassword,omitempty"`
	Version                              string `json:"version"`
}

type RuleType

type RuleType struct {
	Type string `json:"type"`
}

type SchemaRegistry added in v0.0.2

type SchemaRegistry struct {
	Version string `json:"version"`
}

type Spark added in v0.0.2

type Spark struct {
	Version string `json:"version"`
}

type Tag added in v0.0.2

type Tag struct {
	Value string `json:"value"`
	Key   string `json:"key"`
}

type TargetCassandra

type TargetCassandra struct {
	DependencyCDCID   string `json:"dependencyCdcId"`
	DependencyVPCType string `json:"dependencyVpcType"`
}

type TargetCluster added in v0.0.2

type TargetCluster struct {
	ExternalCluster []*ExternalCluster `json:"externalCluster,omitempty"`
	ManagedCluster  []*ManagedCluster  `json:"managedCluster,omitempty"`
}

type TargetKafka

type TargetKafka struct {
	DependencyCDCID   string `json:"dependencyCdcId"`
	DependencyVPCType string `json:"dependencyVpcType"`
}

type TargetOpenSearch

type TargetOpenSearch struct {
	DependencyCDCID   string `json:"dependencyCdcId"`
	DependencyVPCType string `json:"dependencyVpcType"`
}

type TopicConfigs added in v0.0.2

type TopicConfigs struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

type TopicStatus added in v0.0.2

type TopicStatus struct {
	ID           string          `json:"id"`
	TopicConfigs []*TopicConfigs `json:"configs"`
}

type TwoFactorDelete

type TwoFactorDelete struct {
	ConfirmationPhoneNumber string `json:"confirmationPhoneNumber,omitempty"`
	ConfirmationEmail       string `json:"confirmationEmail"`
}

type TwoFactorDeleteV1 added in v0.0.2

type TwoFactorDeleteV1 struct {
	DeleteVerifyEmail string `json:"deleteVerifyEmail,omitempty"`
	DeleteVerifyPhone string `json:"deleteVerifyPhone,omitempty"`
}

type UpdateTopicConfigs added in v0.0.2

type UpdateTopicConfigs struct {
	TopicConfigs []*TopicConfigs `json:"configs"`
}

type ZookeeperCluster added in v0.0.2

type ZookeeperCluster struct {
	ID                            string                 `json:"id,omitempty"`
	Name                          string                 `json:"name"`
	ZookeeperVersion              string                 `json:"zookeeperVersion,omitempty"`
	CurrentClusterOperationStatus string                 `json:"currentClusterOperationStatus,omitempty"`
	Status                        string                 `json:"status,omitempty"`
	PrivateNetworkCluster         bool                   `json:"privateNetworkCluster"`
	SLATier                       string                 `json:"slaTier"`
	TwoFactorDelete               []*TwoFactorDelete     `json:"twoFactorDelete,omitempty"`
	DataCentres                   []*ZookeeperDataCentre `json:"dataCentres"`
}

type ZookeeperDataCentre added in v0.0.2

type ZookeeperDataCentre struct {
	DataCentre               `json:",inline"`
	ClientToServerEncryption bool     `json:"clientToServerEncryption"`
	EnforceAuthSchemes       []string `json:"enforceAuthSchemes,omitempty"`
	EnforceAuthEnabled       bool     `json:"enforceAuthEnabled"`
}

Jump to

Keyboard shortcuts

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