v1alpha1

package
v0.0.0-...-aa4d7d5 Latest Latest
Warning

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

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

Documentation

Overview

v1alpha1 contains API types that extend the Crossplane API. +kubebuilder:object:generate=true +groupName=xdatabase.crossplane.giantswarm.io +versionName=v1alpha1

Index

Constants

View Source
const (
	XRDGroup   = "xdatabase.crossplane.giantswarm.io"
	XRDVersion = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	// GroupVersion is the API Group Version used to register the objects
	GroupVersion = schema.GroupVersion{Group: XRDGroup, Version: XRDVersion}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	RdsLogicalDatabaseKind      = "RdsLogicalDatabase"
	RdsLogicalDatabaseGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  RdsLogicalDatabaseKind,
	}.String()
	RdsLogicalDatabaseKindAPIVersion   = RdsLogicalDatabaseKind + "." + GroupVersion.String()
	RdsLogicalDatabaseGroupVersionKind = GroupVersion.WithKind(RdsLogicalDatabaseKind)
)

Repository type metadata.

View Source
var (
	RdsBaseKind      = "RdsBase"
	RdsBaseGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  RdsBaseKind,
	}.String()
	RdsBaseKindAPIVersion   = RdsBaseKind + "." + GroupVersion.String()
	RdsBaseGroupVersionKind = GroupVersion.WithKind(RdsBaseKind)
)

Repository type metadata.

View Source
var (
	RdsProvisioningKind      = "RdsProvisioning"
	RdsProvisioningGroupKind = schema.GroupKind{
		Group: XRDGroup,
		Kind:  RdsProvisioningKind,
	}.String()
	RdsProvisioningKindAPIVersion   = RdsProvisioningKind + "." + GroupVersion.String()
	RdsProvisioningGroupVersionKind = GroupVersion.WithKind(RdsProvisioningKind)
)

Repository type metadata.

Functions

This section is empty.

Types

type ActivityStream

type ActivityStream struct {
	// Enabled is whether activity stream is enabled.
	//
	// +optional
	// +default=false
	Enabled *bool `json:"enabled,omitempty"`

	// EngineNativeAuditFieldsIncluded is whether engine native audit fields are
	// included. This option only applies to Oracle databases.
	//
	// +optional
	// +default=false
	EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty"`

	// Mode is the mode of the activity stream. Valid values are `sync` and `async`.
	//
	// +optional
	// +default="sync"
	// +kubebuilder:validation:Enum=sync;async
	Mode *string `json:"mode,omitempty"`
}

func (*ActivityStream) DeepCopy

func (in *ActivityStream) DeepCopy() *ActivityStream

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActivityStream.

func (*ActivityStream) DeepCopyInto

func (in *ActivityStream) DeepCopyInto(out *ActivityStream)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Autoscaling

type Autoscaling struct {
	// Autoscaling is whether autoscaling is enabled.
	//
	// +optional
	// +default=false
	Enabled *bool `json:"enabled,omitempty"`

	// MaxCapacity is the maximum capacity for autoscaling.
	//
	// +optional
	// +default=2
	MaxCapacity *int64 `json:"maxCapacity,omitempty"`

	// MinCapacity is the minimum capacity for autoscaling.
	//
	// +optional
	// +default=0
	MinCapacity *int64 `json:"minCapacity,omitempty"`

	// MetricType is the type of metric to use for autoscaling.
	//
	// +optional
	// +default="RDSReaderAverageCPUUtilization"
	// +kubebuilder:validation:Enum=RDSReaderAverageCPUUtilization;RDSReaderAverageDatabaseConnections
	MetricType *string `json:"metricType,omitempty"`

	// PolicyName is the name of the autoscaling policy.
	//
	// +optional
	// +default="target-metric"
	PolicyName *string `json:"policyName,omitempty"`

	// ScaleInCooldown is the amount of time, in seconds, after a scaling in
	// activity completes before another scaling activity can start.
	//
	// +optional
	// +default=300
	ScaleInCooldown *int64 `json:"scaleInCooldown,omitempty"`

	// ScaleOutCooldown is the amount of time, in seconds, after a scaling out
	// activity completes before another scaling activity can start.
	//
	// +optional
	// +default=300
	ScaleOutCooldown *int64 `json:"scaleOutCooldown,omitempty"`

	// TargetCPU is CPU threshold which will initiate autoscaling.
	//
	// +optional
	// +default=70
	TargetCPU *int64 `json:"targetCPU,omitempty"`

	// TargetConnections is the average number of connections threshold which
	// will initiate autoscaling. Default value is 70% of db.r4/r5/r6g.large's
	// default max_connections
	//
	// +optional
	// +default=700
	TargetConnections *int64 `json:"targetConnections,omitempty"`
}

func (*Autoscaling) DeepCopy

func (in *Autoscaling) DeepCopy() *Autoscaling

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Autoscaling.

func (*Autoscaling) DeepCopyInto

func (in *Autoscaling) DeepCopyInto(out *Autoscaling)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudwatchLogGroup

type CloudwatchLogGroup struct {

	// Class is the class of the log group.
	//
	// +optional
	// +kube:validation:Enum=STANDARD;INFREQUENT_ACCESS
	Class *string `json:"class,omitempty"`

	// Create is whether the log group is to be created.
	//
	// +optional
	// +default=false
	Create *bool `json:"create,omitempty"`

	// RetentionInDays is the number of days to retain logs for.
	//
	// +optional
	// +default=0
	RetentionInDays *int64 `json:"retentionInDays,omitempty"`

	// SkipDestroy is whether the log group should be skipped during destroy.
	//
	// +optional
	// +default=false
	SkipDestroy *bool `json:"skipDestroy,omitempty"`
}

func (*CloudwatchLogGroup) DeepCopy

func (in *CloudwatchLogGroup) DeepCopy() *CloudwatchLogGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudwatchLogGroup.

func (*CloudwatchLogGroup) DeepCopyInto

func (in *CloudwatchLogGroup) DeepCopyInto(out *CloudwatchLogGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterInstance

type ClusterInstance struct {
	// AllocatedStorage is the size of the database.
	//
	// Only applicable if not running in cluster mode. In cluster mode this value
	// is ignored.
	//
	// Overrides `ClusterParameters.AllocatedStorage`
	//
	// +optional
	// +default=10
	AllocatedStorage *int64 `json:"allocatedStorage,omitempty"`

	// AllowMajorVersionUpgrade is whether major version upgrades are allowed.
	//
	// Only applicable if not running in cluster mode. In cluster mode this value
	// is ignored.
	//
	// Overrides `ClusterParameters.AllowMajorVersionUpgrade`
	//
	// +optional
	// +default=false
	AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty"`

	// ApplyImmediately is whether changes should be applied immediately.
	//
	// Overrides `ClusterParameters.ApplyImmediately`
	//
	// +optional
	// +nullable
	ApplyImmediately *bool `json:"applyImmediately,omitempty"`

	// AutoMinorVersionUpgrade is whether minor version upgrades are applied
	// automatically.
	//
	// Overrides `ClusterParameters.AutoMinorVersionUpgrade`
	//
	// +optional
	// +nullable
	AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"`

	// AvailabilityZone is the availability zone for this instance.
	// Ignored if `multiAz` is true
	//
	// +optional
	// +nullable
	AvailabilityZone *string `json:"availabilityZone,omitempty"`

	// BackupRetentionPeriod is the number of days to retain backups for.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +default=0
	BackupRetentionPeriod *int64 `json:"backupRetentionPeriod,omitempty"`

	// CopyTagsToSnapshot is whether tags should be copied to snapshots.
	//
	// +optional
	// +nullable
	CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty"`

	// DatabaseName is the name of the database to create.
	//
	// +optional
	// +nullable
	DatabaseName *string `json:"databaseName,omitempty"`

	// DeleteAutomatedBackups is whether automated backups should be deleted.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +default=false
	DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty"`

	// DeletionProtection is whether deletion protection is enabled.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	DeletionProtection *bool `json:"deletionProtection,omitempty"`

	// DomainIamRoleName is the name of the IAM role to use.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	DomainIamRoleName *string `json:"domainIamRoleName,omitempty"`

	// EnabledCloudwatchLogsExports is the list of log types to export to CloudWatch Logs.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	EnabledCloudwatchLogsExports []*LogGroup `json:"enabledCloudwatchLogsExports,omitempty"`

	// FinalSnapshotIdentifier is the identifier of the final snapshot.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty"`

	// IamDatabaseAuthenticationEnabled is whether IAM database authentication is enabled.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	IamDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty"`

	// Iops is the amount of provisioned IOPS.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +default=0
	Iops *int64 `json:"iops,omitempty"`

	// InstanceClass is the instance class to use.
	//
	// +optional
	// +nullable
	InstanceClass *string `json:"instanceClass,omitempty"`

	// LicenseModel is the license model to use.
	//
	// Only applicable if not running in cluster mode.
	//
	// +optional
	// +nullable
	LicenseModel *string `json:"licenseModel,omitempty"`

	// MonitoringInterval is the interval, in seconds, between points when
	// Enhanced Monitoring metrics are collected for the DB instance.
	//
	// +optional
	// +nullable
	MonitoringInterval *int64 `json:"monitoringInterval,omitempty"`

	// MultiAZ is whether the DB instance is a Multi-AZ deployment.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	MultiAz *bool `json:"multiAz,omitempty"`

	// NetworkType is the network type to use.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	NetworkType *string `json:"networkType,omitempty"`

	// OptionGroupName is the name of the option group to associate with this DB
	// instance.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	OptionGroupName *string `json:"optionGroupName,omitempty"`

	// ParameterGroupName is the name of the DB parameter group to associate
	// with this DB instance. Must pre-exist in the account. Mutually exclusive
	// with `RdsBaseDbCluster.dbParameterGroup`
	//
	// +optional
	// +nullable
	ParameterGroupName *string `json:"parameterGroupName,omitempty"`

	// PerformanceInsightsEnabled is whether Performance Insights is enabled.
	//
	// +optional
	// +nullable
	PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty"`

	// PerformanceInsightsKmsKeyID is the AWS KMS key identifier for encryption
	// of Performance Insights data.
	//
	// +optional
	// +nullable
	PerformanceInsightsKmsKeyID *string `json:"performanceInsightsKmsKeyID,omitempty"`

	// PerformanceInsightsRetentionPeriod is the amount of time, in days, to
	// retain Performance Insights data.
	//
	// +optional
	// +nullable
	PerformanceInsightsRetentionPeriod *int64 `json:"performanceInsightsRetentionPeriod,omitempty"`

	// PreferredMaintenanceWindow is the preferred maintenance window.
	//
	// +optional
	// +nullable
	PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty"`

	// PromotionTier is the order in which to promote an Aurora replica to the
	// primary instance.
	//
	// +optional
	// +nullable
	PromotionTier *int64 `json:"promotionTier,omitempty"`

	// PubliclyAccessible is whether the DB instance is publicly accessible.
	//
	// +optional
	// +nullable
	PubliclyAccessible *bool `json:"publiclyAccessible,omitempty"`

	// SkipFinalSnapshot is whether to skip the final snapshot.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty"`

	// StorageEncrypted is whether storage is encrypted.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	StorageEncrypted *bool `json:"storageEncrypted,omitempty"`

	// StorageThroughput is the amount of storage throughput. Only applicable if
	// `storageType` is `gp3`
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	StorageThroughput *int64 `json:"storageThroughput,omitempty"`

	// StorageType is the storage type to use.
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	StorageType *string `json:"storageType,omitempty"`

	// Tags is a set of tags to associate with the DB instance.
	//
	// +optional
	// +nullable
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]*string `json:"tags,omitempty"`
}

func (*ClusterInstance) DeepCopy

func (in *ClusterInstance) DeepCopy() *ClusterInstance

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterInstance.

func (*ClusterInstance) DeepCopyInto

func (in *ClusterInstance) DeepCopyInto(out *ClusterInstance)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterParameterGroup

type ClusterParameterGroup struct {
	// ApplyMethod is the apply method for the parameter group. Some engines
	// cannot apply changes immediately, and require a reboot in which case you
	// must set this value to `pending-reboot`.
	//
	// +optional
	// +default="immediate"
	// +kubebuilder:validation:Enum=immediate;pending-reboot
	ApplyMethod *string `json:"applyMethod,omitempty"`

	// Description is the description of the parameter group.
	//
	// +optional
	Description *string `json:"description,omitempty"`

	// Create is whether the parameter group is to be created.
	//
	// +optional
	// +default=false
	Create *bool `json:"create,omitempty"`

	// Family is the family of the parameter group.
	//
	// +optional
	Family *string `json:"family,omitempty"`

	// Name is the name of the parameter group.
	//
	// +optional
	Name *string `json:"name,omitempty"`

	// Parameters is a list of parameters to associate with the parameter group.
	// Note that parameters may differ between families
	//
	// +optional
	Parameters []*Parameter `json:"parameters,omitempty"`

	// Tags is a set of tags to associate with the parameter group.
	//
	// +optional
	// +kubebuilder:mapType=granular
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]*string `json:"tags,omitempty"`
}

func (*ClusterParameterGroup) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterParameterGroup.

func (*ClusterParameterGroup) DeepCopyInto

func (in *ClusterParameterGroup) DeepCopyInto(out *ClusterParameterGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterParameters

type ClusterParameters struct {
	// ActivityStream is the activity stream configuration.
	//
	// +optional
	ActivityStream *ActivityStream `json:"activityStream,omitempty"`

	// AllocatedStorage is the size of the database.
	//
	// +optional
	// +default=10
	AllocatedStorage *int64 `json:"allocatedStorage,omitempty"`

	// AllowMajorVersionUpgrade is whether major version upgrades are allowed.
	//
	// +optional
	// +default=false
	AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty"`

	// ApplyImmediately is whether changes should be applied immediately.
	//
	// +optional
	// +default=false
	ApplyImmediately *bool `json:"applyImmediately,omitempty"`

	// AutoMinorVersionUpgrade is whether minor version upgrades are applied
	// automatically. This value can be overridden on a per instance basis.
	//
	// +optional
	// +default=true
	AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"`

	// Autoscaling is the autoscaling configuration.
	//
	// +optional
	Autoscaling *Autoscaling `json:"autoscaling,omitempty"`

	// BackupRetentionPeriod is the number of days to retain backups for.
	//
	// +optional
	// +default=0
	BackupRetentionPeriod *int64 `json:"backupRetentionPeriod,omitempty"`

	// BacktrackWindow is the target backtrack window, in seconds.
	// Only available for Aurora engine. To disable backtracking, set this value to 0.
	//
	// +optional
	// +default=0
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=259200
	BacktrackWindow *int64 `json:"backtrackWindow,omitempty"`

	// CopyTagsToSnapshot is whether tags should be copied to snapshots.
	//
	// +optional
	// +default=false
	CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty"`

	// CreateCluster is whether the cluster should be created.
	// By default this is true but for non-aurora clusters, the DB Cluster
	// resource is optional and can be omitted. In this case, the DB instances
	// will be created as `instance.rds` types.
	//
	// +optional
	// +default=true
	CreateCluster *bool `json:"createCluster,omitempty"`

	// DatabaseName is the name of the database to create.
	//
	// +optional
	DatabaseName *string `json:"databaseName,omitempty"`

	// DbClusterInstanceClass is the instance class to use.
	//
	// +optional
	// +default="db.t4g.medium"
	DbClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty"`

	// DbClusterParameterGroup defines the parameters for the DB cluster.
	//
	// +optional
	DbClusterParameterGroup *ClusterParameterGroup `json:"dbClusterParameterGroup"`

	// DbParameterGroup defines the parameters for the DB instance.
	//
	// +optional
	DbParameterGroup *DbParameterGroup `json:"dbParameterGroup,omitempty"`

	// DeleteAutomatedBackups is whether automated backups should be deleted.
	//
	// +optional
	// +default=false
	DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty"`

	// DeletionProtection is whether deletion protection is enabled.
	//
	// +optional
	// +default=false
	DeletionProtection *bool `json:"deletionProtection,omitempty"`

	// Domain is the domain to use.
	//
	// +optional
	Domain *string `json:"domain,omitempty"`

	// DomainIAMRoleName is the name of the IAM role to use.
	//
	// +optional
	DomainIAMRoleName *string `json:"domainIAMRoleName,omitempty"`

	// EnableGlobalWriteForwarding is whether global write forwarding is enabled.
	//
	// +optional
	// +default=false
	EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty"`

	// EnableHttpEndpoint is whether the HTTP endpoint is enabled.
	//
	// +optional
	// +default=false
	EnableHttpEndpoint *bool `json:"enableHttpEndpoint,omitempty"`

	// EnableLocalWriteForwarding is whether local write forwarding is enabled.
	//
	// +optional
	// +default=false
	EnableLocalWriteForwarding *bool `json:"enableLocalWriteForwarding,omitempty"`

	// EnabledCloudwatchLogsExports is the list of log types to export to CloudWatch Logs.
	//
	// +optional
	EnabledCloudwatchLogsExports []*LogGroup `json:"enabledCloudwatchLogsExports,omitempty"`

	// EnhancedMonitoring is the enhanced monitoring configuration.
	//
	// +optional
	EnhancedMonitoring *EnhancedMonitoring `json:"enhancedMonitoring,omitempty"`

	// Endpoints is a list of custom endpoints to create.
	//
	// +optional
	Endpoints []*Endpoint `json:"endpoints,omitempty"`

	// Engine is the database engine to use.
	//
	// +required
	// +kube:validation:Enum=mariadb:mysql;postgres;aurora-mysql;aurora-postgresql
	Engine *string `json:"engine,omitempty"`

	// EngineMode is the database engine mode to use.
	//
	// +optional
	// +default="provisioned"
	// +kubebuilder:validation:Enum=parallelquery;provisioned;serverless
	EngineMode *string `json:"engineMode,omitempty"`

	// EngineVersion is the version of the database engine to use.
	//
	// +required
	EngineVersion *string `json:"engineVersion,omitempty"`

	// GlobalClusterIdentifier is the global cluster identifier for an Aurora global database.
	//
	// +optional
	GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty"`

	// IAMDatabaseAuthenticationEnabled is whether IAM database authentication is enabled.
	//
	// +optional
	// +default=false
	IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty"`

	// IamRoles is a list of IAM roles to associate with the DB cluster.
	//
	// +optional
	IamRoles []*RdsBaseRole `json:"iamRoles,omitempty"`

	// Iops is the amount of provisioned IOPS.
	//
	// +optional
	// +default=0
	Iops *int64 `json:"iops,omitempty"`

	// InstanceCount is the number of instances to create.
	//
	// If set, this value will create the requested number of instances using
	// defaults from the cluster configuration. If `instances` are specified,
	// this value is ignored.
	//
	// +optional
	InstanceCount *int64 `json:"instanceCount,omitempty"`

	// Instances is a list of instances to create.
	//
	// +optional
	Instances []*ClusterInstance `json:"instances,omitempty"`

	// CloudwatchLogGroup defines the parameters for the log groups
	//
	// +optional
	CloudwatchLogGroupParameters *CloudwatchLogGroup `json:"cloudwatchLogGroupParameters,omitempty"`

	// MasterUsername is the master username to use.
	//
	// +required
	MasterUsername *string `json:"masterUsername,omitempty"`

	// MultiAZ is whether the DB instance is a Multi-AZ deployment.
	//
	// +optional
	// +default=false
	MultiAz *bool `json:"multiAz,omitempty"`

	// Partition is the AWS partition to use.
	//
	// +optional
	// +default="aws"
	// +kubebuilder:validation:Enum=aws;aws-cn;aws-us-gov
	Partition *string `json:"partition,omitempty"`

	// PerformanceInsightsEnabled is whether Performance Insights is enabled.
	//
	// +optional
	PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty"`

	// PerformanceInsightsKmsKeyID is the AWS KMS key identifier for encryption of Performance Insights data.
	//
	// +optional
	PerformanceInsightsKmsKeyID *string `json:"performanceInsightsKmsKeyID,omitempty"`

	// PerformanceInsightsRetentionPeriod is the amount of time, in days, to retain Performance Insights data.
	//
	// +optional
	PerformanceInsightsRetentionPeriod *int64 `json:"performanceInsightsRetentionPeriod,omitempty"`

	// PreferredBackupWindow is the preferred backup window.
	//
	// +optional
	PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty"`

	// PreferredMaintenanceWindow is the preferred maintenance window.
	//
	// +optional
	PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty"`

	// ProvisionSql determines whether or not to provision databases inside the
	// RDS cluster.
	//
	// +optional
	ProvisionSql *RdsProvisioningParameters `json:"provisionSql,omitempty"`

	// PubliclyAccessible is whether the DB instance is publicly accessible.
	//
	// +optional
	// +default=false
	PubliclyAccessible *bool `json:"publiclyAccessible,omitempty"`

	// ReplicationSourceIdentifier ARN of a source DB cluster or DB instance if
	// this DB cluster is to be created as a Read Replica
	//
	// +optional
	ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty"`

	// RestoreToPointInTime is the point in time to restore to.
	//
	// +optional
	RestoreToPointInTime *RestoreToPointInTime `json:"restoreToPointInTime,omitempty"`

	// S3Import is the S3 import configuration.
	//
	// +optional
	S3Import *S3Import `json:"s3Import,omitempty"`

	// ScalingConfiguration is the scaling configuration.
	//
	// +optional
	ScalingConfiguration *ScalingConfiguration `json:"scalingConfiguration,omitempty"`

	// SecretRotation is the secret rotation configuration.
	//
	// +optional
	SecretRotation *SecretRotation `json:"secretRotation,omitempty"`

	// ServerlessV2ScalingConfiguration is the serverless v2 scaling configuration.
	//
	// +optional
	ServerlessV2ScalingConfiguration *ServerlessV2ScalingConfiguration `json:"serverlessV2ScalingConfiguration,omitempty"`

	// StorageThroughput is the amount of storage throughput. Only applicable if
	// `storageType` is `gp3`
	//
	// Only applicable if not running in cluster mode
	//
	// +optional
	// +nullable
	StorageThroughput *int64 `json:"storageThroughput,omitempty"`

	// StorageType specifies the storage type to be associated with the cluster
	//
	// +optional
	StorageType *string `json:"storageType,omitempty"`

	// Tags is a set of tags to associate with the DB cluster.
	//
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]*string `json:"tags,omitempty"`
}

func (*ClusterParameters) DeepCopy

func (in *ClusterParameters) DeepCopy() *ClusterParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterParameters.

func (*ClusterParameters) DeepCopyInto

func (in *ClusterParameters) DeepCopyInto(out *ClusterParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatabaseConfig

type DatabaseConfig struct {
	// A map of users to create for the database
	//
	// +optional
	Users map[DatabaseUserName]SqlUser `json:"users"`
}

func (*DatabaseConfig) DeepCopy

func (in *DatabaseConfig) DeepCopy() *DatabaseConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseConfig.

func (*DatabaseConfig) DeepCopyInto

func (in *DatabaseConfig) DeepCopyInto(out *DatabaseConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatabaseName

type DatabaseName string

The name of the database to create

type DatabaseUserName

type DatabaseUserName string

The name of a user to create

type DbParameterGroup

type DbParameterGroup struct {
	// Description is the description of the parameter group.
	//
	// +optional
	Description *string `json:"description,omitempty"`

	// Create is whether the parameter group is created.
	//
	// +optional
	// +default=false
	Create *bool `json:"create,omitempty"`

	// Family is the family of the parameter group.
	//
	// +optional
	Family *string `json:"family,omitempty"`

	// Name is the name of the parameter group.
	//
	// +required
	Name *string `json:"name,omitempty"`

	// Parameters is a list of parameters to associate with the parameter group.
	// Note that parameters may differ between families
	//
	// +optional
	Parameters []*Parameter `json:"parameters,omitempty"`

	// Tags is a set of tags to associate with the parameter group.
	//
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]*string `json:"tags,omitempty"`
}

func (*DbParameterGroup) DeepCopy

func (in *DbParameterGroup) DeepCopy() *DbParameterGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DbParameterGroup.

func (*DbParameterGroup) DeepCopyInto

func (in *DbParameterGroup) DeepCopyInto(out *DbParameterGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Endpoint

type Endpoint struct {
	// CustomEndpointType is the type of the custom endpoint.
	//
	// +optional
	// +kubebuilder:validation:Enum=READER;ANY
	// +default=ANY
	CustomEndpointType *string `json:"customEndpointType,omitempty"`

	// ExcludedMembers is a list of DB instances that aren't part of the custom
	// endpoint group.
	//
	// +optional
	ExcludedMembers []*string `json:"excludedMembers,omitempty"`

	// StaticMembers is a list of DB instances that are part of the custom
	// endpoint group.
	//
	// +optional
	StaticMembers []*string `json:"staticMembers,omitempty"`

	// Tags is a set of tags to associate with the custom endpoint.
	//
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]*string `json:"tags,omitempty"`
}

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnhancedMonitoring

type EnhancedMonitoring struct {

	// Description is the description of the monitoring role.
	//
	// +optional
	Description *string `json:"description,omitempty"`

	// Enabled is whether enhanced monitoring is enabled.
	//
	// +optional
	// +default=false
	Enabled *bool `json:"enabled,omitempty"`

	// ForceDetachPolicies Whether to force detaching any policies the monitoring role has before destroying it
	//
	// +optional
	// +default=false
	ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty"`

	// ManagedPolicyArns is a list of ARNs for managed policies to attach to the monitoring role.
	//
	// +optional
	ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty"`

	// PermissionsBoundary is the ARN of the policy that is used to set the permissions boundary for the monitoring role.
	//
	// +optional
	PermissionsBoundary *string `json:"permissionsBoundary,omitempty"`

	// MaxSessionDuration is the maximum session duration (in seconds) that you want to set for the monitoring role.
	//
	// +optional
	MaxSessionDuration *int64 `json:"maxSessionDuration,omitempty"`

	// MonitoringInterval is the interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance.
	//
	// +optional
	MonitoringInterval *int64 `json:"monitoringInterval,omitempty"`

	// Path is the path of the monitoring role.
	//
	// +optional
	Path *string `json:"path,omitempty"`
}

func (*EnhancedMonitoring) DeepCopy

func (in *EnhancedMonitoring) DeepCopy() *EnhancedMonitoring

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnhancedMonitoring.

func (*EnhancedMonitoring) DeepCopyInto

func (in *EnhancedMonitoring) DeepCopyInto(out *EnhancedMonitoring)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LogGroup

type LogGroup string

LogGroup is the name of a log group.

+kubebuilder:validation:Enum=audit;error;general;slowquery;postgresql

type OptionGroup

type OptionGroup struct {
	// Description is the description of the option group.
	//
	// +optional
	Description *string `json:"description,omitempty"`

	// Enabled is whether the option group is enabled.
	//
	// +optional
	// +default=false
	Enabled *bool `json:"enabled,omitempty"`

	// EngineName is the name of the engine.
	//
	// +optional
	EngineName *string `json:"engineName,omitempty"`

	// MajorEngineVersion is the major engine version.
	//
	// +optional
	MajorEngineVersion *string `json:"majorEngineVersion,omitempty"`

	// Name is the name of the option group.
	//
	// +optional
	Name *string `json:"name,omitempty"`

	// Options is a list of options to associate with the option group.
	//
	// +optional
	Options map[string]*string `json:"options,omitempty"`

	// Tags is a set of tags to associate with the option group.
	//
	// +optional
	// +kubebuilder:validation:MaxProperties=50
	Tags map[string]*string `json:"tags,omitempty"`

	// Version is the version of the option group.
	//
	// +optional
	Version *string `json:"version,omitempty"`
}

OptionGroup defines the parameters for the option group.

func (*OptionGroup) DeepCopy

func (in *OptionGroup) DeepCopy() *OptionGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionGroup.

func (*OptionGroup) DeepCopyInto

func (in *OptionGroup) DeepCopyInto(out *OptionGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Parameter

type Parameter string

Parameter is a parameter to associate with a parameter group.

+kubebuilder:validation:Pattern=^[a-zA-Z0-9_]*$

type RdsBase

type RdsBase struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RdsBaseSpec   `json:"spec"`
	Status RdsBaseStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=rdb +crossbuilder:generate:xrd:claimNames:kind=RdsBaseClaim,plural=rdsbaseclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=rds-base +crossbuilder:generate:xrd:enforcedCompositionRef:name=rds-base

func (*RdsBase) DeepCopy

func (in *RdsBase) DeepCopy() *RdsBase

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsBase.

func (*RdsBase) DeepCopyInto

func (in *RdsBase) DeepCopyInto(out *RdsBase)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RdsBase) DeepCopyObject

func (in *RdsBase) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RdsBaseList

type RdsBaseList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RdsBase `json:"items"`
}

+kubebuilder:object:root=true

func (*RdsBaseList) DeepCopy

func (in *RdsBaseList) DeepCopy() *RdsBaseList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsBaseList.

func (*RdsBaseList) DeepCopyInto

func (in *RdsBaseList) DeepCopyInto(out *RdsBaseList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RdsBaseList) DeepCopyObject

func (in *RdsBaseList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RdsBaseRole

type RdsBaseRole struct {
	// FeatureName is the name of the feature.
	//
	// +optional
	FeatureName *string `json:"featureName,omitempty"`

	// RoleArn is the ARN of the role.
	//
	// +optional
	RoleArn *string `json:"roleArn,omitempty"`
}

func (*RdsBaseRole) DeepCopy

func (in *RdsBaseRole) DeepCopy() *RdsBaseRole

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsBaseRole.

func (*RdsBaseRole) DeepCopyInto

func (in *RdsBaseRole) DeepCopyInto(out *RdsBaseRole)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsBaseSpec

type RdsBaseSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	// AvailabilityZones is a list of availability zone to use.
	//
	// +optional
	AvailabilityZones []*string `json:"availabilityZones,omitempty"`

	// ClusterParameters is the parameters for the RDS cluster.
	ClusterParameters `json:",inline"`

	// CidrBlocks is a list of CIDRs that are allowed to connect to the DB.
	//
	// +optional
	CidrBlocks []*string `json:"cidrBlocks"`

	// Eso is the ESO configuration.
	//
	// This field is used to sync secrets using `external-secrets-operator`.
	// External Secrets Operator must be installed if this value is set to true
	//
	// +optional
	Eso *eso.Eso `json:"eso,omitempty"`

	// KubernetesProviderConfig is the provider config for the Kubernetes provider.
	//
	// +required
	KubernetesProviderConfig *xpv1.Reference `json:"kubernetesProviderConfig,omitempty"`

	// Region is the region to use.
	//
	// +required
	Region *string `json:"region"`

	// SubnetIds is a list of subnet IDs to use for the subnet group.
	//
	// +optional
	SubnetIds []*string `json:"subnetIds"`

	// VpcId is the VPC ID to use.
	//
	// +required
	VpcId *string `json:"vpcId"`
}

Defines the spec of a RDS cluster

func (*RdsBaseSpec) DeepCopy

func (in *RdsBaseSpec) DeepCopy() *RdsBaseSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsBaseSpec.

func (*RdsBaseSpec) DeepCopyInto

func (in *RdsBaseSpec) DeepCopyInto(out *RdsBaseSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsBaseStatus

type RdsBaseStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// AccountId is the account ID of the DB cluster.
	//
	// +optional
	AccountId *string `json:"accountId,omitempty"`

	// ConnectionSecret is the name of the connection secret used for the DB.
	//
	// +optional
	ConnectionSecret *string `json:"connectionSecret,omitempty"`

	// ProvisionedSecrets is the connection secrets created by the SQL provider
	//
	// +optional
	ProvisionedSecrets RdsProvisioningConnectionSecrets `json:"provisionedSecrets,omitempty"`

	// ClusterIdentifier is the identifier of the DB cluster.
	//
	// +optional
	ClusterIdentifier *string `json:"clusterIdentifier,omitempty"`

	// ClusterArn is the ARN of the DB cluster.
	//
	// +optional
	ClusterArn *string `json:"clusterArn,omitempty"`

	// ClusterResourceId is the resource ID of the DB cluster.
	//
	// +optional
	ClusterResourceId *string `json:"clusterResourceId,omitempty"`

	// DbParameterGroupName is the name of the DB parameter group to associate
	// with this DB instance.
	//
	// +optional
	DbParameterGroupName *string `json:"dbParameterGroupName,omitempty"`

	// DbSubnetGroupName is the name of the DB subnet group to associate with
	// this DB instance.
	//
	// +optional
	DbSubnetGroupName *string `json:"dbSubnetGroupName,omitempty"`

	// Endpoint is the endpoint of the DB cluster.
	//
	// +optional
	Endpoint *string `json:"endpoint,omitempty"`

	// EsoConnectionSecret is the name of the connection secret created by ESO
	// for use with provider-sql.
	//
	// +optional
	EsoConnectionSecret *string `json:"esoConnectionSecret,omitempty"`

	// KmsKeyId is the ID of the KMS key.
	//
	// +optional
	KmsKeyId *string `json:"kmsKeyId,omitempty"`

	// MonitoringRoleArn is the ARN of the monitoring role.
	//
	// +optional
	MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty"`

	// port is the port of the database.
	//
	// +optional
	Port *int64 `json:"port,omitempty"`

	// ReaderEndpoint is the reader endpoint of the DB cluster.
	//
	// If this is a cluster mode, this is the reader endpoint of the cluster.
	// When working with instances, this is a comma separated list of the reader
	// instances.
	//
	// +optional
	ReaderEndpoint *string `json:"readerEndpoint,omitempty"`

	// Ready is whether all children are ready.
	//
	// +optional
	Ready *bool `json:"ready,omitempty"`

	// SecurityGroupId The security group ID of the DB cluster.
	//
	// +optional
	SecurityGroupId *string `json:"securityGroupId,omitempty"`
}

Defines the status of a RDS cluster

func (*RdsBaseStatus) DeepCopy

func (in *RdsBaseStatus) DeepCopy() *RdsBaseStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsBaseStatus.

func (*RdsBaseStatus) DeepCopyInto

func (in *RdsBaseStatus) DeepCopyInto(out *RdsBaseStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsLogicalDatabase

type RdsLogicalDatabase struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RdsLogicalDatabaseSpec   `json:"spec"`
	Status RdsLogicalDatabaseStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=ld +crossbuilder:generate:xrd:claimNames:kind=LogicalDatabaseClaim,plural=logicaldatabaseclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=logical-database +crossbuilder:generate:xrd:enforcedCompositionRef:name=logical-database

func (*RdsLogicalDatabase) DeepCopy

func (in *RdsLogicalDatabase) DeepCopy() *RdsLogicalDatabase

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsLogicalDatabase.

func (*RdsLogicalDatabase) DeepCopyInto

func (in *RdsLogicalDatabase) DeepCopyInto(out *RdsLogicalDatabase)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RdsLogicalDatabase) DeepCopyObject

func (in *RdsLogicalDatabase) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RdsLogicalDatabaseConnectionSecrets

type RdsLogicalDatabaseConnectionSecrets struct {
	// The name of the secret created specifically for the app
	//
	// +optional
	App string `json:"app,omitempty"`

	// A map of secret names created for users
	//
	// +optional
	Users map[string]string `json:"users,omitempty"`
}

func (*RdsLogicalDatabaseConnectionSecrets) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsLogicalDatabaseConnectionSecrets.

func (*RdsLogicalDatabaseConnectionSecrets) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsLogicalDatabaseList

type RdsLogicalDatabaseList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RdsLogicalDatabase `json:"items"`
}

+kubebuilder:object:root=true

func (*RdsLogicalDatabaseList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsLogicalDatabaseList.

func (*RdsLogicalDatabaseList) DeepCopyInto

func (in *RdsLogicalDatabaseList) DeepCopyInto(out *RdsLogicalDatabaseList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RdsLogicalDatabaseList) DeepCopyObject

func (in *RdsLogicalDatabaseList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RdsLogicalDatabaseParameters

type RdsLogicalDatabaseParameters struct {
	// Databases is a map of databases to create.
	//
	// +optional
	Databases map[DatabaseName]DatabaseConfig `json:"databases,omitempty"`

	// The type of database engine being provisioned
	//
	// +optional
	// +default="postgres"
	// +kubebuilder:validation:Enum=postgres;mysql;aurora-postgresql;aurora-mysql
	Engine *string `json:"engine,omitempty"`
}

Defines the parameters for the RDS provisioning

func (*RdsLogicalDatabaseParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsLogicalDatabaseParameters.

func (*RdsLogicalDatabaseParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsLogicalDatabaseSpec

type RdsLogicalDatabaseSpec struct {
	xpv1.ResourceSpec `json:",inline"`

	// Sets the parameters for the provisioning
	RdsLogicalDatabaseParameters `json:",inline"`

	// Eso is the configuration for the external secrets operator
	//
	// +optional
	Eso *eso.Eso `json:"eso,omitempty"`

	// KubernetesProviderConfig is the provider config for the Kubernetes provider.
	//
	// +required
	KubernetesProviderConfig *xpv1.Reference `json:"kubernetesProviderConfig,omitempty"`
}

RdsLogicalDatabaseSpec defines the desired state of RdsLogicalDatabase

func (*RdsLogicalDatabaseSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsLogicalDatabaseSpec.

func (*RdsLogicalDatabaseSpec) DeepCopyInto

func (in *RdsLogicalDatabaseSpec) DeepCopyInto(out *RdsLogicalDatabaseSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsLogicalDatabaseStatus

type RdsLogicalDatabaseStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// Is the provisioning ready
	//
	// +optional
	Ready bool `json:"ready,omitempty"`

	// Connection secrets created for the databases
	//
	// +optional
	ConnectionSecrets RdsLogicalDatabaseConnectionSecrets `json:"connectionSecrets,omitempty"`
}

RdsLogicalDatabaseStatus defines the observed state of RdsLogicalDatabase

func (*RdsLogicalDatabaseStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsLogicalDatabaseStatus.

func (*RdsLogicalDatabaseStatus) DeepCopyInto

func (in *RdsLogicalDatabaseStatus) DeepCopyInto(out *RdsLogicalDatabaseStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsProvisioning

type RdsProvisioning struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RdsProvisioningSpec   `json:"spec"`
	Status RdsProvisioningStatus `json:"status,omitempty"`
}

+kubebuilder:object:root=true +kubebuilder:storageversion +genclient +genclient:nonNamespaced

+kubebuilder:resource:scope=Cluster,categories=crossplane +kubebuilder:subresource:status +kubebuilder:resource:shortName=rdsprv +crossbuilder:generate:xrd:claimNames:kind=RdsProvisioningClaim,plural=rdsprovisioningclaims +crossbuilder:generate:xrd:defaultCompositionRef:name=rds-provisioning +crossbuilder:generate:xrd:enforcedCompositionRef:name=rds-provisioning

func (*RdsProvisioning) DeepCopy

func (in *RdsProvisioning) DeepCopy() *RdsProvisioning

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsProvisioning.

func (*RdsProvisioning) DeepCopyInto

func (in *RdsProvisioning) DeepCopyInto(out *RdsProvisioning)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RdsProvisioning) DeepCopyObject

func (in *RdsProvisioning) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RdsProvisioningConnectionSecrets

type RdsProvisioningConnectionSecrets struct {
	// The name of the secret created specifically for the app
	//
	// +optional
	App string `json:"app,omitempty"`

	// A map of secret names created for users
	//
	// +optional
	Users map[string]string `json:"users,omitempty"`
}

func (*RdsProvisioningConnectionSecrets) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsProvisioningConnectionSecrets.

func (*RdsProvisioningConnectionSecrets) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsProvisioningList

type RdsProvisioningList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RdsProvisioning `json:"items"`
}

+kubebuilder:object:root=true

func (*RdsProvisioningList) DeepCopy

func (in *RdsProvisioningList) DeepCopy() *RdsProvisioningList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsProvisioningList.

func (*RdsProvisioningList) DeepCopyInto

func (in *RdsProvisioningList) DeepCopyInto(out *RdsProvisioningList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RdsProvisioningList) DeepCopyObject

func (in *RdsProvisioningList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RdsProvisioningParameters

type RdsProvisioningParameters struct {
	// Determines if the RDS provisioning should be enabled
	//
	// +optional
	// +default=true
	Enabled bool `json:"enabled"`

	// The name of the connection secret to use for the RDS instance
	//
	// Required if `providerConfigRef` is not provided, ignored otherwise
	// Must exist in the same namespace as the provisioning claim
	//
	// If this value is provided, the composition will attempt to create a
	// provider config using the engine specific providerconfig spec
	//
	// +optional
	ConnectionSecretName *string `json:"connectionSecretName,omitempty"`

	// Reader Endpoint is the endpoint to use for read operations
	//
	// +optional
	ReaderEndpoint *string `json:"readerEndpoint,omitempty"`

	// Databases is a map of databases to create.
	//
	// +optional
	// +mapType=atomic
	Databases map[DatabaseName]SqlUsers `json:"databases,omitempty"`

	// The type of database engine being provisioned
	//
	// +optional
	// +default="postgres"
	// +kubebuilder:validation:Enum=postgres;mysql;aurora-mysql;aurora-postgresql;mariadb
	Engine *string `json:"engine,omitempty"`
}

Defines the parameters for the RDS provisioning

func (*RdsProvisioningParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsProvisioningParameters.

func (*RdsProvisioningParameters) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsProvisioningSpec

type RdsProvisioningSpec struct {
	xpv1.ResourceSpec `json:",inline"`

	// Sets the parameters for the provisioning
	RdsProvisioningParameters `json:",inline"`

	// ESO configuration
	//
	// +optional
	ESO *eso.Eso `json:"eso,omitempty"`

	// KubernetesProviderConfig is the provider config for the Kubernetes provider.
	//
	// +required
	KubernetesProviderConfig *xpv1.Reference `json:"kubernetesProviderConfig,omitempty"`
}

RdsProvisioningSpec defines the desired state of RdsProvisioning

One of `providerConfigRef` or `connectionSecretName` must be provided.

If `providerConfigRef` is not provided, the composition will create a provider config using the connectionSecretName.

+kubebuilder:validation:XValitation:rule="self.providerConfigRef != null || self.connectionSecretName != null",message="One of providerConfigRef or connectionSecretName must be provided"

func (*RdsProvisioningSpec) DeepCopy

func (in *RdsProvisioningSpec) DeepCopy() *RdsProvisioningSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsProvisioningSpec.

func (*RdsProvisioningSpec) DeepCopyInto

func (in *RdsProvisioningSpec) DeepCopyInto(out *RdsProvisioningSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RdsProvisioningStatus

type RdsProvisioningStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// Is the provisioning ready
	//
	// +optional
	Ready bool `json:"ready,omitempty"`

	// Connection secrets created for the databases
	//
	// +optional
	ConnectionSecrets RdsProvisioningConnectionSecrets `json:"connectionSecrets,omitempty"`
}

RdsProvisioningStatus defines the observed state of RdsProvisioning

func (*RdsProvisioningStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RdsProvisioningStatus.

func (*RdsProvisioningStatus) DeepCopyInto

func (in *RdsProvisioningStatus) DeepCopyInto(out *RdsProvisioningStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RestoreToPointInTime

type RestoreToPointInTime struct {
	// Identifier is the identifier of the source DB cluster snapshot or DB
	// instance snapshot to restore from. Only valid if not running in cluster
	// mode.
	//
	// +optional
	Identifier *string `json:"identifier,omitempty"`

	// RestoreToTime is the time to restore to.
	//
	// +optional
	RestoreToTime *metav1.Time `json:"restoreToTime,omitempty"`

	// UseLatestRestorableTime is whether to use the latest restorable time.
	//
	// +optional
	// +default=false
	UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty"`

	// RestoreType is the type of restore to perform. This option is ignored if
	// not running in cluster mode.
	//
	// +optional
	// +default="full-copy"
	// +kubebuilder:validation:Enum=full-copy;copy-on-write
	RestoreType *string `json:"restoreType,omitempty"`

	// SourceDbClusterIdentifier is the identifier of the source DB cluster.
	// This option is ignored if not running in cluster mode.
	//
	// +optional
	SourceDbClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty"`

	// SourceDbInstanceIdentifier is the identifier of the source DB instance.
	// Only valid if not running in cluster mode. If running in cluster mode, use
	// `SourceDbClusterIdentifier` instead.
	//
	// +optional
	SourceDbInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty"`

	// sourceDbInstanceAutomatedBackupsArn is the ARN of the source DB instance
	// automated backup to restore from. Only valid if not running in cluster mode.
	//
	// +optional
	SourceDbInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty"`

	// SourceDbiResourceId is the resource ID of the source DB instance. Only
	// valid if not running in cluster mode.
	//
	// +optional
	SourceDbiResourceId *string `json:"sourceDbiResourceId,omitempty"`
}

RestoreToPointInTime contains details of a point in time restoration

func (*RestoreToPointInTime) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestoreToPointInTime.

func (*RestoreToPointInTime) DeepCopyInto

func (in *RestoreToPointInTime) DeepCopyInto(out *RestoreToPointInTime)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type S3Import

type S3Import struct {
	// BucketName is the name of the S3 bucket.
	//
	// +optional
	BucketName *string `json:"bucketName,omitempty"`

	// BucketPrefix is the prefix of the S3 bucket. Can be blank but is the path
	// within the bucket where the data is located.
	//
	// +optional
	BucketPrefix *string `json:"bucketPrefix,omitempty"`

	// IngestionRole is the role to use for ingestion.
	//
	// +optional
	IngestionRole *string `json:"ingestionRole,omitempty"`

	// SourceEngine is the source engine to use.
	//
	// +optional
	SourceEngine *string `json:"sourceEngine,omitempty"`

	// SourceEngineVersion is the source engine version to use.
	//
	// +optional
	SourceEngineVersion *string `json:"sourceEngineVersion,omitempty"`
}

S3Import is the S3 import configuration.

func (*S3Import) DeepCopy

func (in *S3Import) DeepCopy() *S3Import

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Import.

func (*S3Import) DeepCopyInto

func (in *S3Import) DeepCopyInto(out *S3Import)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ScalingConfiguration

type ScalingConfiguration struct {
	// AutoPause is whether the database should automatically pause.
	//
	// +optional
	AutoPause *bool `json:"autoPause,omitempty"`

	// MaxCapacity is the maximum capacity for the database.
	//
	// +optional
	MaxCapacity *int64 `json:"maxCapacity,omitempty"`

	// MinCapacity is the minimum capacity for the database.
	//
	// +optional
	MinCapacity *int64 `json:"minCapacity,omitempty"`

	// SecondsUntilAutoPause is the number of seconds until the database
	// automatically pauses.
	//
	// +optional
	SecondsUntilAutoPause *int64 `json:"secondsUntilAutoPause,omitempty"`
}

ScalingConfiguration is the scaling configuration for serverless databases.

func (*ScalingConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScalingConfiguration.

func (*ScalingConfiguration) DeepCopyInto

func (in *ScalingConfiguration) DeepCopyInto(out *ScalingConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretReference

type SecretReference struct {
	// Name of the secret
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Namespace of the secret
	// +kubebuilder:validation:Required
	Namespace string `json:"namespace"`
}

SecretReference is a reference to a Secret

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretRotation

type SecretRotation struct {
	// Enabled is whether secret rotation is enabled.
	//
	// +optional
	// +default=false
	Enabled *bool `json:"enabled,omitempty"`

	// AutomaticallyAfterDays is the number of days after which the secret is
	// rotated automatically.
	//
	// +optional
	AutomaticallyAfterDays *int64 `json:"automaticallyAfterDays,omitempty"`

	// RotateImmediately is whether the secret should be rotated immediately.
	//
	// +optional
	// +default=true
	RotateImmediately *bool `json:"rotateImmediately,omitempty"`

	// ScheduleExpression is the schedule expression for secret rotation.
	//
	// +optional
	ScheduleExpression *string `json:"scheduleExpression,omitempty"`
}

SecretRotation is the secret rotation configuration.

func (*SecretRotation) DeepCopy

func (in *SecretRotation) DeepCopy() *SecretRotation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRotation.

func (*SecretRotation) DeepCopyInto

func (in *SecretRotation) DeepCopyInto(out *SecretRotation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerlessV2ScalingConfiguration

type ServerlessV2ScalingConfiguration struct {
	// MaxCapacity is the maximum capacity for the database.
	//
	// +optional
	MaxCapacity *int64 `json:"maxCapacity,omitempty"`

	// MinCapacity is the minimum capacity for the database.
	//
	// +optional
	MinCapacity *int64 `json:"minCapacity,omitempty"`
}

ServerlessV2ScalingConfiguration is the scaling configuration for serverless databases.

func (*ServerlessV2ScalingConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerlessV2ScalingConfiguration.

func (*ServerlessV2ScalingConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SqlUser

type SqlUser struct {
	// ConfigurationParameters is the configuration parameters for the user.
	//
	// Only applicable for postgresql databases
	//
	// See https://www.postgresql.org/docs/current/runtime-config-client.html for
	// a list of available parameters.
	//
	// +optional
	ConfigurationParameters map[string]*string `json:"configurationParameters,omitempty"`

	// Privileges is a list of privileges to grant to the user.
	//
	// +optional
	Privileges []string `json:"privileges,omitempty"`
}

Defines a user to create in the database

See the provider specific documentation for the available configuration parameters.

postgresql: https://www.postgresql.org/docs/current/sql-createrole.html mysql: https://dev.mysql.com/doc/refman/8.0/en/user-resources.html

For MySQL and MariaDB the following fields are supported: - `binlog` (boolean) - `maxConnectionsPerHour` (int) Default 100 - The maximum number of connections the user can make per hour (0 for unlimited) - `maxQueriesPerHour` (int) Default 1000 - The maximum number of queries the user can make per hour (0 for unlimited) - `maxUpdatesPerHour` (int) Default 1000 - The maximum number of updates the user can make per hour (0 for unlimited) - `maxUserConnections` (int) Default 10 - The maximum number of connections the user can have open at one time (0 for unlimited) - `privileges` ([]string) - A list of privileges to grant to the user

For PostgreSQL the following fields are supported: - `configurationParameters` (map[string]*string) - A map of configuration parameters to set for the user - `privileges` ([]string) - A list of privileges to grant to the user - `connectionLimit` (int) Default 10 - The maximum number of connections the user can have open at one time - `bypassRLS` (boolean) Default false - Whether the user should bypass row level security - `createDb` (boolean) Default false - Whether the user should be able to create databases - `createRole` (boolean) Default false - Whether the user should be able to create roles - `inherit` (boolean) Default true - Whether the user should inherit privileges from roles it is a member of - `login` (boolean) Default true - Whether the user should be able to log in - `replication` (boolean) Default false - Whether the user should be able to initiate streaming replication - `superuser` (boolean) Default false - Whether the user should be a superuser

With the exception of `configurationParameters`, all fields should be created as elements directly on the user object and not as nested objects.

+kubebuilder:pruning:PreserveUnknownFields

func (*SqlUser) DeepCopy

func (in *SqlUser) DeepCopy() *SqlUser

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SqlUser.

func (*SqlUser) DeepCopyInto

func (in *SqlUser) DeepCopyInto(out *SqlUser)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SqlUsers

type SqlUsers map[string]SqlUser

A list of SqlUser objects to use for the database

+mapType=atomic

func (SqlUsers) DeepCopy

func (in SqlUsers) DeepCopy() SqlUsers

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SqlUsers.

func (SqlUsers) DeepCopyInto

func (in SqlUsers) DeepCopyInto(out *SqlUsers)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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