diff --git a/apis/docdb/v1alpha1/zz_cluster_types.go b/apis/docdb/v1alpha1/zz_cluster_types.go index b5e5b18..be5eb77 100755 --- a/apis/docdb/v1alpha1/zz_cluster_types.go +++ b/apis/docdb/v1alpha1/zz_cluster_types.go @@ -15,309 +15,318 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterInitParameters struct { - // Specifies whether any cluster modifications - // are applied immediately, or during the next maintenance window. Default is - // false. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // A list of EC2 Availability Zones that - // instances in the DB cluster can be created in. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` +// Specifies whether any cluster modifications +// are applied immediately, or during the next maintenance window. Default is +// false. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// A list of EC2 Availability Zones that +// instances in the DB cluster can be created in. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // The days to retain backups for. Default 1 - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// The days to retain backups for. Default 1 +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // A cluster parameter group to associate with the cluster. - DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` +// A cluster parameter group to associate with the cluster. +DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` - // A DB subnet group to associate with this DB instance. - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// A DB subnet group to associate with this DB instance. +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // List of log types to export to cloudwatch. If omitted, no logs will be exported. - // The following log types are supported: audit, profiler. - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// List of log types to export to cloudwatch. If omitted, no logs will be exported. +// The following log types are supported: audit, profiler. +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // The name of the database engine to be used for this DB cluster. Defaults to docdb. Valid Values: docdb - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The name of the database engine to be used for this DB cluster. Defaults to docdb. Valid Values: docdb +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The database engine version. Updating this argument results in an outage. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// The database engine version. Updating this argument results in an outage. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The name of your final DB snapshot - // when this DB cluster is deleted. If omitted, no final snapshot will be - // made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// The name of your final DB snapshot +// when this DB cluster is deleted. If omitted, no final snapshot will be +// made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // The global cluster identifier specified on aws_docdb_global_cluster. - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// The global cluster identifier specified on aws_docdb_global_cluster. +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // Username for the master DB user. - MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` +// Username for the master DB user. +MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` - // The port on which the DB accepts connections - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The port on which the DB accepts connections +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC - // Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC +// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` +// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots should not be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced. - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` +// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots should not be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced. +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. The default is false. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterObservation struct { - // Specifies whether any cluster modifications - // are applied immediately, or during the next maintenance window. Default is - // false. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Amazon Resource Name (ARN) of cluster - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Specifies whether any cluster modifications +// are applied immediately, or during the next maintenance window. Default is +// false. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// Amazon Resource Name (ARN) of cluster +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // A list of EC2 Availability Zones that - // instances in the DB cluster can be created in. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` +// A list of EC2 Availability Zones that +// instances in the DB cluster can be created in. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // The days to retain backups for. Default 1 - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// The days to retain backups for. Default 1 +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // – List of DocumentDB Instances that are a part of this cluster - ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` +// – List of DocumentDB Instances that are a part of this cluster +ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` - // The DocumentDB Cluster Resource ID - ClusterResourceID *string `json:"clusterResourceId,omitempty" tf:"cluster_resource_id,omitempty"` +// The DocumentDB Cluster Resource ID +ClusterResourceID *string `json:"clusterResourceId,omitempty" tf:"cluster_resource_id,omitempty"` - // A cluster parameter group to associate with the cluster. - DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` +// A cluster parameter group to associate with the cluster. +DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` - // A DB subnet group to associate with this DB instance. - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// A DB subnet group to associate with this DB instance. +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // List of log types to export to cloudwatch. If omitted, no logs will be exported. - // The following log types are supported: audit, profiler. - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// List of log types to export to cloudwatch. If omitted, no logs will be exported. +// The following log types are supported: audit, profiler. +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // The DNS address of the DocumentDB instance - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// The DNS address of the DocumentDB instance +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // The name of the database engine to be used for this DB cluster. Defaults to docdb. Valid Values: docdb - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The name of the database engine to be used for this DB cluster. Defaults to docdb. Valid Values: docdb +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The database engine version. Updating this argument results in an outage. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// The database engine version. Updating this argument results in an outage. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The name of your final DB snapshot - // when this DB cluster is deleted. If omitted, no final snapshot will be - // made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// The name of your final DB snapshot +// when this DB cluster is deleted. If omitted, no final snapshot will be +// made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // The global cluster identifier specified on aws_docdb_global_cluster. - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// The global cluster identifier specified on aws_docdb_global_cluster. +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // The Route53 Hosted Zone ID of the endpoint - HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` +// The Route53 Hosted Zone ID of the endpoint +HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` - // The DocumentDB Cluster Identifier - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The DocumentDB Cluster Identifier +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Username for the master DB user. - MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` +// Username for the master DB user. +MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` - // The port on which the DB accepts connections - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The port on which the DB accepts connections +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC - // Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC +// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // A read-only endpoint for the DocumentDB cluster, automatically load-balanced across replicas - ReaderEndpoint *string `json:"readerEndpoint,omitempty" tf:"reader_endpoint,omitempty"` +// A read-only endpoint for the DocumentDB cluster, automatically load-balanced across replicas +ReaderEndpoint *string `json:"readerEndpoint,omitempty" tf:"reader_endpoint,omitempty"` - // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` +// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots should not be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced. - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` +// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots should not be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced. +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. The default is false. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // List of VPC security groups to associate - // with the Cluster - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` +// List of VPC security groups to associate +// with the Cluster +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` } + type ClusterParameters struct { - // Specifies whether any cluster modifications - // are applied immediately, or during the next maintenance window. Default is - // false. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - - // A list of EC2 Availability Zones that - // instances in the DB cluster can be created in. - // +kubebuilder:validation:Optional - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - - // The days to retain backups for. Default 1 - // +kubebuilder:validation:Optional - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - - // A cluster parameter group to associate with the cluster. - // +kubebuilder:validation:Optional - DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` - - // A DB subnet group to associate with this DB instance. - // +kubebuilder:validation:Optional - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - - // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. - // +kubebuilder:validation:Optional - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - - // List of log types to export to cloudwatch. If omitted, no logs will be exported. - // The following log types are supported: audit, profiler. - // +kubebuilder:validation:Optional - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - - // The name of the database engine to be used for this DB cluster. Defaults to docdb. Valid Values: docdb - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // The database engine version. Updating this argument results in an outage. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - - // The name of your final DB snapshot - // when this DB cluster is deleted. If omitted, no final snapshot will be - // made. - // +kubebuilder:validation:Optional - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - - // The global cluster identifier specified on aws_docdb_global_cluster. - // +kubebuilder:validation:Optional - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - - // The ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // Password for the master DB user. Note that this may - // show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints. - // +kubebuilder:validation:Optional - MasterPasswordSecretRef *v1.SecretKeySelector `json:"masterPasswordSecretRef,omitempty" tf:"-"` - - // Username for the master DB user. - // +kubebuilder:validation:Optional - MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` - - // The port on which the DB accepts connections - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC - // Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 - // +kubebuilder:validation:Optional - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - - // The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 - // +kubebuilder:validation:Optional - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. - // +kubebuilder:validation:Optional - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - - // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots should not be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced. - // +kubebuilder:validation:Optional - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - - // Specifies whether the DB cluster is encrypted. The default is false. - // +kubebuilder:validation:Optional - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` - - // List of VPC security groups to associate - // with the Cluster - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector - // +kubebuilder:validation:Optional - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` + +// Specifies whether any cluster modifications +// are applied immediately, or during the next maintenance window. Default is +// false. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// A list of EC2 Availability Zones that +// instances in the DB cluster can be created in. +// +kubebuilder:validation:Optional +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + +// The days to retain backups for. Default 1 +// +kubebuilder:validation:Optional +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` + +// A cluster parameter group to associate with the cluster. +// +kubebuilder:validation:Optional +DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` + +// A DB subnet group to associate with this DB instance. +// +kubebuilder:validation:Optional +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` + +// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. +// +kubebuilder:validation:Optional +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` + +// List of log types to export to cloudwatch. If omitted, no logs will be exported. +// The following log types are supported: audit, profiler. +// +kubebuilder:validation:Optional +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` + +// The name of the database engine to be used for this DB cluster. Defaults to docdb. Valid Values: docdb +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// The database engine version. Updating this argument results in an outage. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + +// The name of your final DB snapshot +// when this DB cluster is deleted. If omitted, no final snapshot will be +// made. +// +kubebuilder:validation:Optional +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` + +// The global cluster identifier specified on aws_docdb_global_cluster. +// +kubebuilder:validation:Optional +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` + +// The ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// Password for the master DB user. Note that this may +// show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints. +// +kubebuilder:validation:Optional +MasterPasswordSecretRef *v1.SecretKeySelector `json:"masterPasswordSecretRef,omitempty" tf:"-"` + +// Username for the master DB user. +// +kubebuilder:validation:Optional +MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` + +// The port on which the DB accepts connections +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC +// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 +// +kubebuilder:validation:Optional +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` + +// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 +// +kubebuilder:validation:Optional +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. +// +kubebuilder:validation:Optional +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` + +// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots should not be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced. +// +kubebuilder:validation:Optional +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` + +// Specifies whether the DB cluster is encrypted. The default is false. +// +kubebuilder:validation:Optional +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` + +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` + +// List of VPC security groups to associate +// with the Cluster +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector +// +kubebuilder:validation:Optional +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` } // ClusterSpec defines the desired state of Cluster type ClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameters `json:"forProvider"` + ForProvider ClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -328,13 +337,13 @@ type ClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInitParameters `json:"initProvider,omitempty"` } // ClusterStatus defines the observed state of Cluster. type ClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterObservation `json:"atProvider,omitempty"` + AtProvider ClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -349,9 +358,9 @@ type ClusterStatus struct { type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSpec `json:"spec"` - Status ClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSpec `json:"spec"` + Status ClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/docdb/v1alpha1/zz_clusterinstance_types.go b/apis/docdb/v1alpha1/zz_clusterinstance_types.go index 5e31fd6..c81de3d 100755 --- a/apis/docdb/v1alpha1/zz_clusterinstance_types.go +++ b/apis/docdb/v1alpha1/zz_clusterinstance_types.go @@ -15,208 +15,217 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterInstanceInitParameters struct { - // Specifies whether any database modifications - // are applied immediately, or during the next maintenance window. Default isfalse. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set (see docs). Default true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Specifies whether any database modifications +// are applied immediately, or during the next maintenance window. Default isfalse. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set (see docs). Default true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // The EC2 Availability Zone that the DB instance is created in. See docs about the details. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// The EC2 Availability Zone that the DB instance is created in. See docs about the details. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The identifier of the CA certificate for the DB instance. - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` +// The identifier of the CA certificate for the DB instance. +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - // A value that indicates whether to enable Performance Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) about the details. - EnablePerformanceInsights *bool `json:"enablePerformanceInsights,omitempty" tf:"enable_performance_insights,omitempty"` +// A value that indicates whether to enable Performance Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) about the details. +EnablePerformanceInsights *bool `json:"enablePerformanceInsights,omitempty" tf:"enable_performance_insights,omitempty"` - // The name of the database engine to be used for the DocumentDB instance. Defaults to docdb. Valid Values: docdb. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The name of the database engine to be used for the DocumentDB instance. Defaults to docdb. Valid Values: docdb. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The instance class to use. For details on CPU and memory, see Scaling for DocumentDB Instances. - // DocumentDB currently supports the below instance classes. - // Please see AWS Documentation for complete details. - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` +// The instance class to use. For details on CPU and memory, see Scaling for DocumentDB Instances. +// DocumentDB currently supports the below instance classes. +// Please see AWS Documentation for complete details. +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - // The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB uses your default KMS key. - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` +// The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB uses your default KMS key. +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - // The window to perform maintenance in. - // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// The window to perform maintenance in. +// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. - PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` +// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. +PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` - // A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterInstanceObservation struct { - // Specifies whether any database modifications - // are applied immediately, or during the next maintenance window. Default isfalse. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Amazon Resource Name (ARN) of cluster instance - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Specifies whether any database modifications +// are applied immediately, or during the next maintenance window. Default isfalse. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set (see docs). Default true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Amazon Resource Name (ARN) of cluster instance +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The EC2 Availability Zone that the DB instance is created in. See docs about the details. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set (see docs). Default true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // The identifier of the CA certificate for the DB instance. - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` +// The EC2 Availability Zone that the DB instance is created in. See docs about the details. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The identifier of the aws_docdb_cluster in which to launch this instance. - ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` +// The identifier of the CA certificate for the DB instance. +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - // The DB subnet group to associate with this DB instance. - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// The identifier of the aws_docdb_cluster in which to launch this instance. +ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` - // The region-unique, immutable identifier for the DB instance. - DbiResourceID *string `json:"dbiResourceId,omitempty" tf:"dbi_resource_id,omitempty"` +// The DB subnet group to associate with this DB instance. +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // A value that indicates whether to enable Performance Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) about the details. - EnablePerformanceInsights *bool `json:"enablePerformanceInsights,omitempty" tf:"enable_performance_insights,omitempty"` +// The region-unique, immutable identifier for the DB instance. +DbiResourceID *string `json:"dbiResourceId,omitempty" tf:"dbi_resource_id,omitempty"` - // The DNS address for this instance. May not be writable - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// A value that indicates whether to enable Performance Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) about the details. +EnablePerformanceInsights *bool `json:"enablePerformanceInsights,omitempty" tf:"enable_performance_insights,omitempty"` - // The name of the database engine to be used for the DocumentDB instance. Defaults to docdb. Valid Values: docdb. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The DNS address for this instance. May not be writable +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // The database engine version - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// The name of the database engine to be used for the DocumentDB instance. Defaults to docdb. Valid Values: docdb. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The database engine version +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The instance class to use. For details on CPU and memory, see Scaling for DocumentDB Instances. - // DocumentDB currently supports the below instance classes. - // Please see AWS Documentation for complete details. - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The ARN for the KMS encryption key if one is set to the cluster. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The instance class to use. For details on CPU and memory, see Scaling for DocumentDB Instances. +// DocumentDB currently supports the below instance classes. +// Please see AWS Documentation for complete details. +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - // The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB uses your default KMS key. - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` +// The ARN for the KMS encryption key if one is set to the cluster. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // The database port - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB uses your default KMS key. +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - // The daily time range during which automated backups are created if automated backups are enabled. - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// The database port +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The window to perform maintenance in. - // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// The daily time range during which automated backups are created if automated backups are enabled. +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. - PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` +// The window to perform maintenance in. +// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` +// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. +PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` - // Specifies whether the DB cluster is encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - // A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Specifies whether the DB cluster is encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // – Boolean indicating if this instance is writable. False indicates this instance is a read replica. - Writer *bool `json:"writer,omitempty" tf:"writer,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// – Boolean indicating if this instance is writable. False indicates this instance is a read replica. +Writer *bool `json:"writer,omitempty" tf:"writer,omitempty"` } + type ClusterInstanceParameters struct { - // Specifies whether any database modifications - // are applied immediately, or during the next maintenance window. Default isfalse. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - - // This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set (see docs). Default true. - // +kubebuilder:validation:Optional - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - - // The EC2 Availability Zone that the DB instance is created in. See docs about the details. - // +kubebuilder:validation:Optional - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - - // The identifier of the CA certificate for the DB instance. - // +kubebuilder:validation:Optional - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - - // The identifier of the aws_docdb_cluster in which to launch this instance. - // +crossplane:generate:reference:type=Cluster - // +kubebuilder:validation:Optional - ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` - - // Reference to a Cluster to populate clusterIdentifier. - // +kubebuilder:validation:Optional - ClusterIdentifierRef *v1.Reference `json:"clusterIdentifierRef,omitempty" tf:"-"` - - // Selector for a Cluster to populate clusterIdentifier. - // +kubebuilder:validation:Optional - ClusterIdentifierSelector *v1.Selector `json:"clusterIdentifierSelector,omitempty" tf:"-"` - - // A value that indicates whether to enable Performance Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) about the details. - // +kubebuilder:validation:Optional - EnablePerformanceInsights *bool `json:"enablePerformanceInsights,omitempty" tf:"enable_performance_insights,omitempty"` - - // The name of the database engine to be used for the DocumentDB instance. Defaults to docdb. Valid Values: docdb. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // The instance class to use. For details on CPU and memory, see Scaling for DocumentDB Instances. - // DocumentDB currently supports the below instance classes. - // Please see AWS Documentation for complete details. - // +kubebuilder:validation:Optional - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - - // The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB uses your default KMS key. - // +kubebuilder:validation:Optional - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - - // The window to perform maintenance in. - // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - // +kubebuilder:validation:Optional - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - - // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. - // +kubebuilder:validation:Optional - PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Specifies whether any database modifications +// are applied immediately, or during the next maintenance window. Default isfalse. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does not perform minor version upgrades regardless of the value set (see docs). Default true. +// +kubebuilder:validation:Optional +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` + +// The EC2 Availability Zone that the DB instance is created in. See docs about the details. +// +kubebuilder:validation:Optional +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + +// The identifier of the CA certificate for the DB instance. +// +kubebuilder:validation:Optional +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` + +// The identifier of the aws_docdb_cluster in which to launch this instance. +// +crossplane:generate:reference:type=Cluster +// +kubebuilder:validation:Optional +ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` + +// Reference to a Cluster to populate clusterIdentifier. +// +kubebuilder:validation:Optional +ClusterIdentifierRef *v1.Reference `json:"clusterIdentifierRef,omitempty" tf:"-"` + +// Selector for a Cluster to populate clusterIdentifier. +// +kubebuilder:validation:Optional +ClusterIdentifierSelector *v1.Selector `json:"clusterIdentifierSelector,omitempty" tf:"-"` + +// A value that indicates whether to enable Performance Insights for the DB Instance. Default false. See [docs] (https://docs.aws.amazon.com/documentdb/latest/developerguide/performance-insights.html) about the details. +// +kubebuilder:validation:Optional +EnablePerformanceInsights *bool `json:"enablePerformanceInsights,omitempty" tf:"enable_performance_insights,omitempty"` + +// The name of the database engine to be used for the DocumentDB instance. Defaults to docdb. Valid Values: docdb. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// The instance class to use. For details on CPU and memory, see Scaling for DocumentDB Instances. +// DocumentDB currently supports the below instance classes. +// Please see AWS Documentation for complete details. +// +kubebuilder:validation:Optional +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` + +// The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. If you do not specify a value for PerformanceInsightsKMSKeyId, then Amazon DocumentDB uses your default KMS key. +// +kubebuilder:validation:Optional +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` + +// The window to perform maintenance in. +// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". +// +kubebuilder:validation:Optional +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` + +// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer. +// +kubebuilder:validation:Optional +PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // ClusterInstanceSpec defines the desired state of ClusterInstance type ClusterInstanceSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterInstanceParameters `json:"forProvider"` + ForProvider ClusterInstanceParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -227,13 +236,13 @@ type ClusterInstanceSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInstanceInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInstanceInitParameters `json:"initProvider,omitempty"` } // ClusterInstanceStatus defines the observed state of ClusterInstance. type ClusterInstanceStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterInstanceObservation `json:"atProvider,omitempty"` + AtProvider ClusterInstanceObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -248,10 +257,10 @@ type ClusterInstanceStatus struct { type ClusterInstance struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceClass) || (has(self.initProvider) && has(self.initProvider.instanceClass))",message="spec.forProvider.instanceClass is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterInstanceSpec `json:"spec"` - Status ClusterInstanceStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceClass) || (has(self.initProvider) && has(self.initProvider.instanceClass))",message="spec.forProvider.instanceClass is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterInstanceSpec `json:"spec"` + Status ClusterInstanceStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/docdb/v1alpha1/zz_clusterparametergroup_types.go b/apis/docdb/v1alpha1/zz_clusterparametergroup_types.go index e275228..6a5590a 100755 --- a/apis/docdb/v1alpha1/zz_clusterparametergroup_types.go +++ b/apis/docdb/v1alpha1/zz_clusterparametergroup_types.go @@ -15,121 +15,136 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterParameterGroupInitParameters struct { - // The description of the DocumentDB cluster parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the DocumentDB cluster parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DocumentDB cluster parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. - Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The family of the DocumentDB cluster parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. +Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterParameterGroupObservation struct { - // The ARN of the DocumentDB cluster parameter group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The description of the DocumentDB cluster parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the DocumentDB cluster parameter group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The family of the DocumentDB cluster parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DocumentDB cluster parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The DocumentDB cluster parameter group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The family of the DocumentDB cluster parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. - Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The DocumentDB cluster parameter group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. +Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterParameterGroupParameters struct { - // The description of the DocumentDB cluster parameter group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the DocumentDB cluster parameter group. - // +kubebuilder:validation:Optional - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DocumentDB cluster parameter group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. - // +kubebuilder:validation:Optional - Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The family of the DocumentDB cluster parameter group. +// +kubebuilder:validation:Optional +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// A list of DocumentDB parameters to apply. Setting parameters to system default values may show a difference on imported resources. +// +kubebuilder:validation:Optional +Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterInitParameters struct { - // Valid values are immediate and pending-reboot. Defaults to pending-reboot. - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DocumentDB cluster parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Valid values are immediate and pending-reboot. Defaults to pending-reboot. +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DocumentDB parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the DocumentDB cluster parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the DocumentDB parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterObservation struct { - // Valid values are immediate and pending-reboot. Defaults to pending-reboot. - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DocumentDB cluster parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Valid values are immediate and pending-reboot. Defaults to pending-reboot. +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DocumentDB parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the DocumentDB cluster parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the DocumentDB parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterParameters struct { - // Valid values are immediate and pending-reboot. Defaults to pending-reboot. - // +kubebuilder:validation:Optional - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DocumentDB cluster parameter group. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` +// Valid values are immediate and pending-reboot. Defaults to pending-reboot. +// +kubebuilder:validation:Optional +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` + +// The name of the DocumentDB cluster parameter group. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` - // The value of the DocumentDB parameter. - // +kubebuilder:validation:Optional - Value *string `json:"value" tf:"value,omitempty"` +// The value of the DocumentDB parameter. +// +kubebuilder:validation:Optional +Value *string `json:"value" tf:"value,omitempty"` } // ClusterParameterGroupSpec defines the desired state of ClusterParameterGroup type ClusterParameterGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameterGroupParameters `json:"forProvider"` + ForProvider ClusterParameterGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -140,13 +155,13 @@ type ClusterParameterGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterParameterGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterParameterGroupInitParameters `json:"initProvider,omitempty"` } // ClusterParameterGroupStatus defines the observed state of ClusterParameterGroup. type ClusterParameterGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterParameterGroupObservation `json:"atProvider,omitempty"` + AtProvider ClusterParameterGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -161,10 +176,10 @@ type ClusterParameterGroupStatus struct { type ClusterParameterGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterParameterGroupSpec `json:"spec"` - Status ClusterParameterGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterParameterGroupSpec `json:"spec"` + Status ClusterParameterGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/docdb/v1alpha1/zz_clustersnapshot_types.go b/apis/docdb/v1alpha1/zz_clustersnapshot_types.go index 1172011..f2a09f4 100755 --- a/apis/docdb/v1alpha1/zz_clustersnapshot_types.go +++ b/apis/docdb/v1alpha1/zz_clustersnapshot_types.go @@ -15,77 +15,86 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterSnapshotInitParameters struct { + } + type ClusterSnapshotObservation struct { - // List of EC2 Availability Zones that instances in the DocumentDB cluster snapshot can be restored in. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // The DocumentDB Cluster Identifier from which to take the snapshot. - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` +// List of EC2 Availability Zones that instances in the DocumentDB cluster snapshot can be restored in. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + +// The DocumentDB Cluster Identifier from which to take the snapshot. +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // The Amazon Resource Name (ARN) for the DocumentDB Cluster Snapshot. - DBClusterSnapshotArn *string `json:"dbClusterSnapshotArn,omitempty" tf:"db_cluster_snapshot_arn,omitempty"` +// The Amazon Resource Name (ARN) for the DocumentDB Cluster Snapshot. +DBClusterSnapshotArn *string `json:"dbClusterSnapshotArn,omitempty" tf:"db_cluster_snapshot_arn,omitempty"` - // Specifies the name of the database engine. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Specifies the name of the database engine. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Version of the database engine for this DocumentDB cluster snapshot. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Version of the database engine for this DocumentDB cluster snapshot. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // If storage_encrypted is true, the AWS KMS key identifier for the encrypted DocumentDB cluster snapshot. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// If storage_encrypted is true, the AWS KMS key identifier for the encrypted DocumentDB cluster snapshot. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Port that the DocumentDB cluster was listening on at the time of the snapshot. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Port that the DocumentDB cluster was listening on at the time of the snapshot. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` +SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` - // The Amazon Resource Name (ARN) for the DocumentDB Cluster Snapshot. - SourceDBClusterSnapshotArn *string `json:"sourceDbClusterSnapshotArn,omitempty" tf:"source_db_cluster_snapshot_arn,omitempty"` +// The Amazon Resource Name (ARN) for the DocumentDB Cluster Snapshot. +SourceDBClusterSnapshotArn *string `json:"sourceDbClusterSnapshotArn,omitempty" tf:"source_db_cluster_snapshot_arn,omitempty"` - // The status of this DocumentDB Cluster Snapshot. - Status *string `json:"status,omitempty" tf:"status,omitempty"` +// The status of this DocumentDB Cluster Snapshot. +Status *string `json:"status,omitempty" tf:"status,omitempty"` - // Specifies whether the DocumentDB cluster snapshot is encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DocumentDB cluster snapshot is encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // The VPC ID associated with the DocumentDB cluster snapshot. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The VPC ID associated with the DocumentDB cluster snapshot. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type ClusterSnapshotParameters struct { - // The DocumentDB Cluster Identifier from which to take the snapshot. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/docdb/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // Reference to a Cluster in docdb to populate dbClusterIdentifier. - // +kubebuilder:validation:Optional - DBClusterIdentifierRef *v1.Reference `json:"dbClusterIdentifierRef,omitempty" tf:"-"` +// The DocumentDB Cluster Identifier from which to take the snapshot. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/docdb/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` + +// Reference to a Cluster in docdb to populate dbClusterIdentifier. +// +kubebuilder:validation:Optional +DBClusterIdentifierRef *v1.Reference `json:"dbClusterIdentifierRef,omitempty" tf:"-"` - // Selector for a Cluster in docdb to populate dbClusterIdentifier. - // +kubebuilder:validation:Optional - DBClusterIdentifierSelector *v1.Selector `json:"dbClusterIdentifierSelector,omitempty" tf:"-"` +// Selector for a Cluster in docdb to populate dbClusterIdentifier. +// +kubebuilder:validation:Optional +DBClusterIdentifierSelector *v1.Selector `json:"dbClusterIdentifierSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` } // ClusterSnapshotSpec defines the desired state of ClusterSnapshot type ClusterSnapshotSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterSnapshotParameters `json:"forProvider"` + ForProvider ClusterSnapshotParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -96,13 +105,13 @@ type ClusterSnapshotSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterSnapshotInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterSnapshotInitParameters `json:"initProvider,omitempty"` } // ClusterSnapshotStatus defines the observed state of ClusterSnapshot. type ClusterSnapshotStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterSnapshotObservation `json:"atProvider,omitempty"` + AtProvider ClusterSnapshotObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -117,9 +126,9 @@ type ClusterSnapshotStatus struct { type ClusterSnapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSnapshotSpec `json:"spec"` - Status ClusterSnapshotStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSnapshotSpec `json:"spec"` + Status ClusterSnapshotStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/docdb/v1alpha1/zz_eventsubscription_types.go b/apis/docdb/v1alpha1/zz_eventsubscription_types.go index aa39f45..c2a95b2 100755 --- a/apis/docdb/v1alpha1/zz_eventsubscription_types.go +++ b/apis/docdb/v1alpha1/zz_eventsubscription_types.go @@ -15,112 +15,121 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type EventSubscriptionInitParameters struct { - // A boolean flag to enable/disable the subscription. Defaults to true. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // A list of event categories for a SourceType that you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html or run aws docdb describe-event-categories. - EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` +// A boolean flag to enable/disable the subscription. Defaults to true. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// A list of event categories for a SourceType that you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html or run aws docdb describe-event-categories. +EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` - // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. - SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` +// A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. +SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` - // The type of source that will be generating the events. Valid options are db-instance, db-cluster, db-parameter-group, db-security-group, db-cluster-snapshot. If not set, all sources will be subscribed to. - SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` +// The type of source that will be generating the events. Valid options are db-instance, db-cluster, db-parameter-group, db-security-group, db-cluster-snapshot. If not set, all sources will be subscribed to. +SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type EventSubscriptionObservation struct { - // The Amazon Resource Name of the DocumentDB event notification subscription - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The AWS customer account associated with the DocumentDB event notification subscription - CustomerAwsID *string `json:"customerAwsId,omitempty" tf:"customer_aws_id,omitempty"` +// The Amazon Resource Name of the DocumentDB event notification subscription +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// The AWS customer account associated with the DocumentDB event notification subscription +CustomerAwsID *string `json:"customerAwsId,omitempty" tf:"customer_aws_id,omitempty"` - // A boolean flag to enable/disable the subscription. Defaults to true. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// A boolean flag to enable/disable the subscription. Defaults to true. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // A list of event categories for a SourceType that you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html or run aws docdb describe-event-categories. - EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` +// A list of event categories for a SourceType that you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html or run aws docdb describe-event-categories. +EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` - // The name of the DocumentDB event notification subscription - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The name of the DocumentDB event notification subscription +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The Amazon Resource Name of the DocumentDB event notification subscription - SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` +// The Amazon Resource Name of the DocumentDB event notification subscription +SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` - // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. - SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` +// A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. +SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` - // The type of source that will be generating the events. Valid options are db-instance, db-cluster, db-parameter-group, db-security-group, db-cluster-snapshot. If not set, all sources will be subscribed to. - SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` +// The type of source that will be generating the events. Valid options are db-instance, db-cluster, db-parameter-group, db-security-group, db-cluster-snapshot. If not set, all sources will be subscribed to. +SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type EventSubscriptionParameters struct { - // A boolean flag to enable/disable the subscription. Defaults to true. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // A list of event categories for a SourceType that you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html or run aws docdb describe-event-categories. - // +kubebuilder:validation:Optional - EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` +// A boolean flag to enable/disable the subscription. Defaults to true. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// A list of event categories for a SourceType that you want to subscribe to. See https://docs.aws.amazon.com/documentdb/latest/developerguide/API_Event.html or run aws docdb describe-event-categories. +// +kubebuilder:validation:Optional +EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // The Amazon Resource Name of the DocumentDB event notification subscription - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/sns/v1alpha1.Topic - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` +// The Amazon Resource Name of the DocumentDB event notification subscription +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/sns/v1alpha1.Topic +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` - // Reference to a Topic in sns to populate snsTopicArn. - // +kubebuilder:validation:Optional - SnsTopicArnRef *v1.Reference `json:"snsTopicArnRef,omitempty" tf:"-"` +// Reference to a Topic in sns to populate snsTopicArn. +// +kubebuilder:validation:Optional +SnsTopicArnRef *v1.Reference `json:"snsTopicArnRef,omitempty" tf:"-"` - // Selector for a Topic in sns to populate snsTopicArn. - // +kubebuilder:validation:Optional - SnsTopicArnSelector *v1.Selector `json:"snsTopicArnSelector,omitempty" tf:"-"` +// Selector for a Topic in sns to populate snsTopicArn. +// +kubebuilder:validation:Optional +SnsTopicArnSelector *v1.Selector `json:"snsTopicArnSelector,omitempty" tf:"-"` - // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. - // +kubebuilder:validation:Optional - SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` +// A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. +// +kubebuilder:validation:Optional +SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` - // The type of source that will be generating the events. Valid options are db-instance, db-cluster, db-parameter-group, db-security-group, db-cluster-snapshot. If not set, all sources will be subscribed to. - // +kubebuilder:validation:Optional - SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` +// The type of source that will be generating the events. Valid options are db-instance, db-cluster, db-parameter-group, db-security-group, db-cluster-snapshot. If not set, all sources will be subscribed to. +// +kubebuilder:validation:Optional +SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // EventSubscriptionSpec defines the desired state of EventSubscription type EventSubscriptionSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider EventSubscriptionParameters `json:"forProvider"` + ForProvider EventSubscriptionParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -131,13 +140,13 @@ type EventSubscriptionSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider EventSubscriptionInitParameters `json:"initProvider,omitempty"` + InitProvider EventSubscriptionInitParameters `json:"initProvider,omitempty"` } // EventSubscriptionStatus defines the observed state of EventSubscription. type EventSubscriptionStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider EventSubscriptionObservation `json:"atProvider,omitempty"` + AtProvider EventSubscriptionObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -152,9 +161,9 @@ type EventSubscriptionStatus struct { type EventSubscription struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec EventSubscriptionSpec `json:"spec"` - Status EventSubscriptionStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec EventSubscriptionSpec `json:"spec"` + Status EventSubscriptionStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/docdb/v1alpha1/zz_globalcluster_types.go b/apis/docdb/v1alpha1/zz_globalcluster_types.go index b80ee1f..f035f96 100755 --- a/apis/docdb/v1alpha1/zz_globalcluster_types.go +++ b/apis/docdb/v1alpha1/zz_globalcluster_types.go @@ -15,132 +15,147 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type GlobalClusterInitParameters struct { - // Name for an automatically created database on cluster creation. - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Name for an automatically created database on cluster creation. +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // Name of the database engine to be used for this DB cluster. Current Valid values: docdb. Defaults to docdb. Conflicts with source_db_cluster_identifier. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the database engine to be used for this DB cluster. Current Valid values: docdb. Defaults to docdb. Conflicts with source_db_cluster_identifier. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The global cluster identifier. - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// The global cluster identifier. +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` + +// Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` } + type GlobalClusterMembersInitParameters struct { + } + type GlobalClusterMembersObservation struct { - // Amazon Resource Name (ARN) of member DB Cluster. - DBClusterArn *string `json:"dbClusterArn,omitempty" tf:"db_cluster_arn,omitempty"` - // Whether the member is the primary DB Cluster. - IsWriter *bool `json:"isWriter,omitempty" tf:"is_writer,omitempty"` +// Amazon Resource Name (ARN) of member DB Cluster. +DBClusterArn *string `json:"dbClusterArn,omitempty" tf:"db_cluster_arn,omitempty"` + +// Whether the member is the primary DB Cluster. +IsWriter *bool `json:"isWriter,omitempty" tf:"is_writer,omitempty"` } + type GlobalClusterMembersParameters struct { + } + type GlobalClusterObservation struct { - // Global Cluster Amazon Resource Name (ARN) - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Name for an automatically created database on cluster creation. - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` +// Global Cluster Amazon Resource Name (ARN) +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Name for an automatically created database on cluster creation. +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // Name of the database engine to be used for this DB cluster. Current Valid values: docdb. Defaults to docdb. Conflicts with source_db_cluster_identifier. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the database engine to be used for this DB cluster. Current Valid values: docdb. Defaults to docdb. Conflicts with source_db_cluster_identifier. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The global cluster identifier. - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Set of objects containing Global Cluster members. - GlobalClusterMembers []GlobalClusterMembersObservation `json:"globalClusterMembers,omitempty" tf:"global_cluster_members,omitempty"` +// The global cluster identifier. +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed. - GlobalClusterResourceID *string `json:"globalClusterResourceId,omitempty" tf:"global_cluster_resource_id,omitempty"` +// Set of objects containing Global Cluster members. +GlobalClusterMembers []GlobalClusterMembersObservation `json:"globalClusterMembers,omitempty" tf:"global_cluster_members,omitempty"` - // DocumentDB Global Cluster ID. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed. +GlobalClusterResourceID *string `json:"globalClusterResourceId,omitempty" tf:"global_cluster_resource_id,omitempty"` - // Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. - SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` +// DocumentDB Global Cluster ID. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - Status *string `json:"status,omitempty" tf:"status,omitempty"` +// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. +SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +Status *string `json:"status,omitempty" tf:"status,omitempty"` + +// Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` } + type GlobalClusterParameters struct { - // Name for an automatically created database on cluster creation. - // +kubebuilder:validation:Optional - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - // +kubebuilder:validation:Optional - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Name for an automatically created database on cluster creation. +// +kubebuilder:validation:Optional +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + +// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +// +kubebuilder:validation:Optional +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Name of the database engine to be used for this DB cluster. Current Valid values: docdb. Defaults to docdb. Conflicts with source_db_cluster_identifier. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine to be used for this DB cluster. Current Valid values: docdb. Defaults to docdb. Conflicts with source_db_cluster_identifier. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Engine version of the global database. Upgrading the engine version will result in all cluster members being immediately updated and will. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The global cluster identifier. - // +kubebuilder:validation:Optional - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// The global cluster identifier. +// +kubebuilder:validation:Optional +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/docdb/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` +// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/docdb/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` - // Reference to a Cluster in docdb to populate sourceDbClusterIdentifier. - // +kubebuilder:validation:Optional - SourceDBClusterIdentifierRef *v1.Reference `json:"sourceDbClusterIdentifierRef,omitempty" tf:"-"` +// Reference to a Cluster in docdb to populate sourceDbClusterIdentifier. +// +kubebuilder:validation:Optional +SourceDBClusterIdentifierRef *v1.Reference `json:"sourceDbClusterIdentifierRef,omitempty" tf:"-"` - // Selector for a Cluster in docdb to populate sourceDbClusterIdentifier. - // +kubebuilder:validation:Optional - SourceDBClusterIdentifierSelector *v1.Selector `json:"sourceDbClusterIdentifierSelector,omitempty" tf:"-"` +// Selector for a Cluster in docdb to populate sourceDbClusterIdentifier. +// +kubebuilder:validation:Optional +SourceDBClusterIdentifierSelector *v1.Selector `json:"sourceDbClusterIdentifierSelector,omitempty" tf:"-"` - // Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. - // +kubebuilder:validation:Optional - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. +// +kubebuilder:validation:Optional +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` } // GlobalClusterSpec defines the desired state of GlobalCluster type GlobalClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider GlobalClusterParameters `json:"forProvider"` + ForProvider GlobalClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -151,13 +166,13 @@ type GlobalClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider GlobalClusterInitParameters `json:"initProvider,omitempty"` + InitProvider GlobalClusterInitParameters `json:"initProvider,omitempty"` } // GlobalClusterStatus defines the observed state of GlobalCluster. type GlobalClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider GlobalClusterObservation `json:"atProvider,omitempty"` + AtProvider GlobalClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -172,10 +187,10 @@ type GlobalClusterStatus struct { type GlobalCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.globalClusterIdentifier) || (has(self.initProvider) && has(self.initProvider.globalClusterIdentifier))",message="spec.forProvider.globalClusterIdentifier is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec GlobalClusterSpec `json:"spec"` - Status GlobalClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.globalClusterIdentifier) || (has(self.initProvider) && has(self.initProvider.globalClusterIdentifier))",message="spec.forProvider.globalClusterIdentifier is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec GlobalClusterSpec `json:"spec"` + Status GlobalClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/docdb/v1alpha1/zz_subnetgroup_types.go b/apis/docdb/v1alpha1/zz_subnetgroup_types.go index f3619bf..c6ec278 100755 --- a/apis/docdb/v1alpha1/zz_subnetgroup_types.go +++ b/apis/docdb/v1alpha1/zz_subnetgroup_types.go @@ -15,78 +15,87 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SubnetGroupInitParameters struct { - // The description of the docDB subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The description of the docDB subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetGroupObservation struct { - // The ARN of the docDB subnet group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The description of the docDB subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the docDB subnet group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// The description of the docDB subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The docDB subnet group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The docDB subnet group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A list of VPC subnet IDs. - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// A list of VPC subnet IDs. +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetGroupParameters struct { - // The description of the docDB subnet group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// The description of the docDB subnet group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A list of VPC subnet IDs. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet - // +kubebuilder:validation:Optional - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// A list of VPC subnet IDs. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet +// +kubebuilder:validation:Optional +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - // References to Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIdsRefs []v1.Reference `json:"subnetIdsRefs,omitempty" tf:"-"` +// References to Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIdsRefs []v1.Reference `json:"subnetIdsRefs,omitempty" tf:"-"` - // Selector for a list of Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIdsSelector *v1.Selector `json:"subnetIdsSelector,omitempty" tf:"-"` +// Selector for a list of Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIdsSelector *v1.Selector `json:"subnetIdsSelector,omitempty" tf:"-"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SubnetGroupSpec defines the desired state of SubnetGroup type SubnetGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SubnetGroupParameters `json:"forProvider"` + ForProvider SubnetGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -97,13 +106,13 @@ type SubnetGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` + InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` } // SubnetGroupStatus defines the observed state of SubnetGroup. type SubnetGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` + AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -118,9 +127,9 @@ type SubnetGroupStatus struct { type SubnetGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SubnetGroupSpec `json:"spec"` - Status SubnetGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SubnetGroupSpec `json:"spec"` + Status SubnetGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_contributorinsights_types.go b/apis/dynamodb/v1alpha1/zz_contributorinsights_types.go index dd031a9..b3c9a62 100755 --- a/apis/dynamodb/v1alpha1/zz_contributorinsights_types.go +++ b/apis/dynamodb/v1alpha1/zz_contributorinsights_types.go @@ -15,53 +15,63 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ContributorInsightsInitParameters struct { - // The global secondary index name - IndexName *string `json:"indexName,omitempty" tf:"index_name,omitempty"` + +// The global secondary index name +IndexName *string `json:"indexName,omitempty" tf:"index_name,omitempty"` } + type ContributorInsightsObservation struct { - ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The global secondary index name - IndexName *string `json:"indexName,omitempty" tf:"index_name,omitempty"` - // The name of the table to enable contributor insights - TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// The global secondary index name +IndexName *string `json:"indexName,omitempty" tf:"index_name,omitempty"` + +// The name of the table to enable contributor insights +TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` } + type ContributorInsightsParameters struct { - // The global secondary index name - // +kubebuilder:validation:Optional - IndexName *string `json:"indexName,omitempty" tf:"index_name,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// The global secondary index name +// +kubebuilder:validation:Optional +IndexName *string `json:"indexName,omitempty" tf:"index_name,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // The name of the table to enable contributor insights - // +crossplane:generate:reference:type=Table - // +kubebuilder:validation:Optional - TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` +// The name of the table to enable contributor insights +// +crossplane:generate:reference:type=Table +// +kubebuilder:validation:Optional +TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` - // Reference to a Table to populate tableName. - // +kubebuilder:validation:Optional - TableNameRef *v1.Reference `json:"tableNameRef,omitempty" tf:"-"` +// Reference to a Table to populate tableName. +// +kubebuilder:validation:Optional +TableNameRef *v1.Reference `json:"tableNameRef,omitempty" tf:"-"` - // Selector for a Table to populate tableName. - // +kubebuilder:validation:Optional - TableNameSelector *v1.Selector `json:"tableNameSelector,omitempty" tf:"-"` +// Selector for a Table to populate tableName. +// +kubebuilder:validation:Optional +TableNameSelector *v1.Selector `json:"tableNameSelector,omitempty" tf:"-"` } // ContributorInsightsSpec defines the desired state of ContributorInsights type ContributorInsightsSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ContributorInsightsParameters `json:"forProvider"` + ForProvider ContributorInsightsParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -72,13 +82,13 @@ type ContributorInsightsSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ContributorInsightsInitParameters `json:"initProvider,omitempty"` + InitProvider ContributorInsightsInitParameters `json:"initProvider,omitempty"` } // ContributorInsightsStatus defines the observed state of ContributorInsights. type ContributorInsightsStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ContributorInsightsObservation `json:"atProvider,omitempty"` + AtProvider ContributorInsightsObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -93,9 +103,9 @@ type ContributorInsightsStatus struct { type ContributorInsights struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ContributorInsightsSpec `json:"spec"` - Status ContributorInsightsStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ContributorInsightsSpec `json:"spec"` + Status ContributorInsightsStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_globaltable_types.go b/apis/dynamodb/v1alpha1/zz_globaltable_types.go index e89d191..fe2252f 100755 --- a/apis/dynamodb/v1alpha1/zz_globaltable_types.go +++ b/apis/dynamodb/v1alpha1/zz_globaltable_types.go @@ -15,61 +15,76 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type GlobalTableInitParameters struct { - // Underlying DynamoDB Table. At least 1 replica must be defined. See below. - Replica []ReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"` + +// Underlying DynamoDB Table. At least 1 replica must be defined. See below. +Replica []ReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"` } + type GlobalTableObservation struct { - // The ARN of the DynamoDB Global Table - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The name of the DynamoDB Global Table - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ARN of the DynamoDB Global Table +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Underlying DynamoDB Table. At least 1 replica must be defined. See below. - Replica []ReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"` +// The name of the DynamoDB Global Table +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// Underlying DynamoDB Table. At least 1 replica must be defined. See below. +Replica []ReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"` } + type GlobalTableParameters struct { - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - // Underlying DynamoDB Table. At least 1 replica must be defined. See below. - // +kubebuilder:validation:Optional - Replica []ReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Underlying DynamoDB Table. At least 1 replica must be defined. See below. +// +kubebuilder:validation:Optional +Replica []ReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"` } + type ReplicaInitParameters struct { - // AWS region name of replica DynamoDB TableE.g., us-east-1 - RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` + +// AWS region name of replica DynamoDB TableE.g., us-east-1 +RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` } + type ReplicaObservation struct { - // AWS region name of replica DynamoDB TableE.g., us-east-1 - RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` + +// AWS region name of replica DynamoDB TableE.g., us-east-1 +RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` } + type ReplicaParameters struct { - // AWS region name of replica DynamoDB TableE.g., us-east-1 - // +kubebuilder:validation:Optional - RegionName *string `json:"regionName" tf:"region_name,omitempty"` + +// AWS region name of replica DynamoDB TableE.g., us-east-1 +// +kubebuilder:validation:Optional +RegionName *string `json:"regionName" tf:"region_name,omitempty"` } // GlobalTableSpec defines the desired state of GlobalTable type GlobalTableSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider GlobalTableParameters `json:"forProvider"` + ForProvider GlobalTableParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -80,13 +95,13 @@ type GlobalTableSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider GlobalTableInitParameters `json:"initProvider,omitempty"` + InitProvider GlobalTableInitParameters `json:"initProvider,omitempty"` } // GlobalTableStatus defines the observed state of GlobalTable. type GlobalTableStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider GlobalTableObservation `json:"atProvider,omitempty"` + AtProvider GlobalTableObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -101,10 +116,10 @@ type GlobalTableStatus struct { type GlobalTable struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.replica) || (has(self.initProvider) && has(self.initProvider.replica))",message="spec.forProvider.replica is a required parameter" - Spec GlobalTableSpec `json:"spec"` - Status GlobalTableStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.replica) || (has(self.initProvider) && has(self.initProvider.replica))",message="spec.forProvider.replica is a required parameter" + Spec GlobalTableSpec `json:"spec"` + Status GlobalTableStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_kinesisstreamingdestination_types.go b/apis/dynamodb/v1alpha1/zz_kinesisstreamingdestination_types.go index 6bd38da..761d081 100755 --- a/apis/dynamodb/v1alpha1/zz_kinesisstreamingdestination_types.go +++ b/apis/dynamodb/v1alpha1/zz_kinesisstreamingdestination_types.go @@ -15,64 +15,73 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type KinesisStreamingDestinationInitParameters struct { + } + type KinesisStreamingDestinationObservation struct { - // The table_name and stream_arn separated by a comma (,). - ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. - StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` +// The table_name and stream_arn separated by a comma (,). +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. - TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` +// The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. +StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` + +// The name of the DynamoDB table. There +// can only be one Kinesis streaming destination for a given DynamoDB table. +TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` } + type KinesisStreamingDestinationParameters struct { - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kinesis/v1alpha1.Stream - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.TerraformID() - // +kubebuilder:validation:Optional - StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` - - // Reference to a Stream in kinesis to populate streamArn. - // +kubebuilder:validation:Optional - StreamArnRef *v1.Reference `json:"streamArnRef,omitempty" tf:"-"` - - // Selector for a Stream in kinesis to populate streamArn. - // +kubebuilder:validation:Optional - StreamArnSelector *v1.Selector `json:"streamArnSelector,omitempty" tf:"-"` - - // The name of the DynamoDB table. There - // can only be one Kinesis streaming destination for a given DynamoDB table. - // +crossplane:generate:reference:type=Table - // +kubebuilder:validation:Optional - TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` - - // Reference to a Table to populate tableName. - // +kubebuilder:validation:Optional - TableNameRef *v1.Reference `json:"tableNameRef,omitempty" tf:"-"` - - // Selector for a Table to populate tableName. - // +kubebuilder:validation:Optional - TableNameSelector *v1.Selector `json:"tableNameSelector,omitempty" tf:"-"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kinesis/v1alpha1.Stream +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.TerraformID() +// +kubebuilder:validation:Optional +StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` + +// Reference to a Stream in kinesis to populate streamArn. +// +kubebuilder:validation:Optional +StreamArnRef *v1.Reference `json:"streamArnRef,omitempty" tf:"-"` + +// Selector for a Stream in kinesis to populate streamArn. +// +kubebuilder:validation:Optional +StreamArnSelector *v1.Selector `json:"streamArnSelector,omitempty" tf:"-"` + +// The name of the DynamoDB table. There +// can only be one Kinesis streaming destination for a given DynamoDB table. +// +crossplane:generate:reference:type=Table +// +kubebuilder:validation:Optional +TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` + +// Reference to a Table to populate tableName. +// +kubebuilder:validation:Optional +TableNameRef *v1.Reference `json:"tableNameRef,omitempty" tf:"-"` + +// Selector for a Table to populate tableName. +// +kubebuilder:validation:Optional +TableNameSelector *v1.Selector `json:"tableNameSelector,omitempty" tf:"-"` } // KinesisStreamingDestinationSpec defines the desired state of KinesisStreamingDestination type KinesisStreamingDestinationSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider KinesisStreamingDestinationParameters `json:"forProvider"` + ForProvider KinesisStreamingDestinationParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -83,13 +92,13 @@ type KinesisStreamingDestinationSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider KinesisStreamingDestinationInitParameters `json:"initProvider,omitempty"` + InitProvider KinesisStreamingDestinationInitParameters `json:"initProvider,omitempty"` } // KinesisStreamingDestinationStatus defines the observed state of KinesisStreamingDestination. type KinesisStreamingDestinationStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider KinesisStreamingDestinationObservation `json:"atProvider,omitempty"` + AtProvider KinesisStreamingDestinationObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -104,9 +113,9 @@ type KinesisStreamingDestinationStatus struct { type KinesisStreamingDestination struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec KinesisStreamingDestinationSpec `json:"spec"` - Status KinesisStreamingDestinationStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec KinesisStreamingDestinationSpec `json:"spec"` + Status KinesisStreamingDestinationStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_table_types.go b/apis/dynamodb/v1alpha1/zz_table_types.go index a9fc92d..d494850 100755 --- a/apis/dynamodb/v1alpha1/zz_table_types.go +++ b/apis/dynamodb/v1alpha1/zz_table_types.go @@ -15,546 +15,597 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type AttributeInitParameters struct { - // Name of the attribute - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Attribute type. Valid values are S (string), N (number), B (binary). - Type *string `json:"type,omitempty" tf:"type,omitempty"` +// Name of the attribute +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Attribute type. Valid values are S (string), N (number), B (binary). +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type AttributeObservation struct { - // Name of the attribute - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Attribute type. Valid values are S (string), N (number), B (binary). - Type *string `json:"type,omitempty" tf:"type,omitempty"` +// Name of the attribute +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Attribute type. Valid values are S (string), N (number), B (binary). +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type AttributeParameters struct { - // Name of the attribute - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` - // Attribute type. Valid values are S (string), N (number), B (binary). - // +kubebuilder:validation:Optional - Type *string `json:"type" tf:"type,omitempty"` +// Name of the attribute +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` + +// Attribute type. Valid values are S (string), N (number), B (binary). +// +kubebuilder:validation:Optional +Type *string `json:"type" tf:"type,omitempty"` } + type GlobalSecondaryIndexInitParameters struct { - // Name of the hash key in the index; must be defined as an attribute in the resource. - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // Name of the index. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the hash key in the index; must be defined as an attribute in the resource. +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. - NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` +// Name of the index. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. - ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` +// Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. +NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` - // Name of the range key; must be defined - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. +ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` - // Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. - ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` +// Name of the range key; must be defined +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. - WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` +// Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. +ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` + +// Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. +WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` } + type GlobalSecondaryIndexObservation struct { - // Name of the hash key in the index; must be defined as an attribute in the resource. - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // Name of the index. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the hash key in the index; must be defined as an attribute in the resource. +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` + +// Name of the index. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. - NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` +// Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. +NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` - // One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. - ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` +// One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. +ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` - // Name of the range key; must be defined - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Name of the range key; must be defined +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. - ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` +// Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. +ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` - // Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. - WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` +// Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. +WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` } + type GlobalSecondaryIndexParameters struct { - // Name of the hash key in the index; must be defined as an attribute in the resource. - // +kubebuilder:validation:Optional - HashKey *string `json:"hashKey" tf:"hash_key,omitempty"` - // Name of the index. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` +// Name of the hash key in the index; must be defined as an attribute in the resource. +// +kubebuilder:validation:Optional +HashKey *string `json:"hashKey" tf:"hash_key,omitempty"` + +// Name of the index. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` - // Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. - // +kubebuilder:validation:Optional - NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` +// Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. +// +kubebuilder:validation:Optional +NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` - // One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. - // +kubebuilder:validation:Optional - ProjectionType *string `json:"projectionType" tf:"projection_type,omitempty"` +// One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. +// +kubebuilder:validation:Optional +ProjectionType *string `json:"projectionType" tf:"projection_type,omitempty"` - // Name of the range key; must be defined - // +kubebuilder:validation:Optional - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Name of the range key; must be defined +// +kubebuilder:validation:Optional +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. - // +kubebuilder:validation:Optional - ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` +// Number of read units for this index. Must be set if billing_mode is set to PROVISIONED. +// +kubebuilder:validation:Optional +ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` - // Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. - // +kubebuilder:validation:Optional - WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` +// Number of write units for this index. Must be set if billing_mode is set to PROVISIONED. +// +kubebuilder:validation:Optional +WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` } + type LocalSecondaryIndexInitParameters struct { - // Name of the index - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. - NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` +// Name of the index +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. +NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` - // One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. - ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` +// One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. +ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` - // Name of the range key. - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Name of the range key. +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` } + type LocalSecondaryIndexObservation struct { - // Name of the index - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. - NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` +// Name of the index +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. +NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` - // One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. - ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` +// One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. +ProjectionType *string `json:"projectionType,omitempty" tf:"projection_type,omitempty"` - // Name of the range key. - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Name of the range key. +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` } + type LocalSecondaryIndexParameters struct { - // Name of the index - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` - // Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. - // +kubebuilder:validation:Optional - NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` +// Name of the index +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` - // One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. - // +kubebuilder:validation:Optional - ProjectionType *string `json:"projectionType" tf:"projection_type,omitempty"` +// Only required with INCLUDE as a projection type; a list of attributes to project into the index. These do not need to be defined as attributes on the table. +// +kubebuilder:validation:Optional +NonKeyAttributes []*string `json:"nonKeyAttributes,omitempty" tf:"non_key_attributes,omitempty"` - // Name of the range key. - // +kubebuilder:validation:Optional - RangeKey *string `json:"rangeKey" tf:"range_key,omitempty"` +// One of ALL, INCLUDE or KEYS_ONLY where ALL projects every attribute into the index, KEYS_ONLY projects into the index only the table and index hash_key and sort_key attributes , INCLUDE projects into the index all of the attributes that are defined in non_key_attributes in addition to the attributes that thatKEYS_ONLY project. +// +kubebuilder:validation:Optional +ProjectionType *string `json:"projectionType" tf:"projection_type,omitempty"` + +// Name of the range key. +// +kubebuilder:validation:Optional +RangeKey *string `json:"rangeKey" tf:"range_key,omitempty"` } + type PointInTimeRecoveryInitParameters struct { - // Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type PointInTimeRecoveryObservation struct { - // Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type PointInTimeRecoveryParameters struct { - // Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// Whether to enable point-in-time recovery. It can take 10 minutes to enable for new tables. If the point_in_time_recovery block is not provided, this defaults to false. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` } + type ServerSideEncryptionInitParameters struct { - // Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` } + type ServerSideEncryptionObservation struct { - // Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` } + type ServerSideEncryptionParameters struct { - // Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - // +kubebuilder:validation:Optional - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// Whether or not to enable encryption at rest using an AWS managed KMS customer master key (CMK). If enabled is false then server-side encryption is set to AWS-owned key (shown as DEFAULT in the AWS console). Potentially confusingly, if enabled is true and no kms_key_arn is specified then server-side encryption is set to the default KMS-managed key (shown as KMS in the AWS console). The AWS KMS documentation explains the difference between AWS-owned and KMS-managed keys. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +// +kubebuilder:validation:Optional +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` } + type TTLInitParameters struct { - // Name of the table attribute to store the TTL timestamp in. - AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` - // Whether TTL is enabled. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the table attribute to store the TTL timestamp in. +AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` + +// Whether TTL is enabled. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type TTLObservation struct { - // Name of the table attribute to store the TTL timestamp in. - AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` - // Whether TTL is enabled. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the table attribute to store the TTL timestamp in. +AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` + +// Whether TTL is enabled. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type TTLParameters struct { - // Name of the table attribute to store the TTL timestamp in. - // +kubebuilder:validation:Optional - AttributeName *string `json:"attributeName" tf:"attribute_name,omitempty"` - // Whether TTL is enabled. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the table attribute to store the TTL timestamp in. +// +kubebuilder:validation:Optional +AttributeName *string `json:"attributeName" tf:"attribute_name,omitempty"` + +// Whether TTL is enabled. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type TableInitParameters struct { - // Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below. - Attribute []AttributeInitParameters `json:"attribute,omitempty" tf:"attribute,omitempty"` - // Controls how you are charged for read and write throughput and how you manage capacity. The valid values are PROVISIONED and PAY_PER_REQUEST. Defaults to PROVISIONED. - BillingMode *string `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` +// Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below. +Attribute []AttributeInitParameters `json:"attribute,omitempty" tf:"attribute,omitempty"` + +// Controls how you are charged for read and write throughput and how you manage capacity. The valid values are PROVISIONED and PAY_PER_REQUEST. Defaults to PROVISIONED. +BillingMode *string `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` - // Enables deletion protection for table. Defaults to false. - DeletionProtectionEnabled *bool `json:"deletionProtectionEnabled,omitempty" tf:"deletion_protection_enabled,omitempty"` +// Enables deletion protection for table. Defaults to false. +DeletionProtectionEnabled *bool `json:"deletionProtectionEnabled,omitempty" tf:"deletion_protection_enabled,omitempty"` - // Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below. - GlobalSecondaryIndex []GlobalSecondaryIndexInitParameters `json:"globalSecondaryIndex,omitempty" tf:"global_secondary_index,omitempty"` +// Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below. +GlobalSecondaryIndex []GlobalSecondaryIndexInitParameters `json:"globalSecondaryIndex,omitempty" tf:"global_secondary_index,omitempty"` - // Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below. - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` +// Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below. +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below. - LocalSecondaryIndex []LocalSecondaryIndexInitParameters `json:"localSecondaryIndex,omitempty" tf:"local_secondary_index,omitempty"` +// Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below. +LocalSecondaryIndex []LocalSecondaryIndexInitParameters `json:"localSecondaryIndex,omitempty" tf:"local_secondary_index,omitempty"` - // Enable point-in-time recovery options. See below. - PointInTimeRecovery []PointInTimeRecoveryInitParameters `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// Enable point-in-time recovery options. See below. +PointInTimeRecovery []PointInTimeRecoveryInitParameters `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Attribute to use as the range (sort) key. Must also be defined as an attribute, see below. - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Attribute to use as the range (sort) key. Must also be defined as an attribute, see below. +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Number of read units for this table. If the billing_mode is PROVISIONED, this field is required. - ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` +// Number of read units for this table. If the billing_mode is PROVISIONED, this field is required. +ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` - // Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below. - Replica []TableReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"` +// Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below. +Replica []TableReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"` - // Time of the point-in-time recovery point to restore. - RestoreDateTime *string `json:"restoreDateTime,omitempty" tf:"restore_date_time,omitempty"` +// Time of the point-in-time recovery point to restore. +RestoreDateTime *string `json:"restoreDateTime,omitempty" tf:"restore_date_time,omitempty"` - // Name of the table to restore. Must match the name of an existing table. - RestoreSourceName *string `json:"restoreSourceName,omitempty" tf:"restore_source_name,omitempty"` +// Name of the table to restore. Must match the name of an existing table. +RestoreSourceName *string `json:"restoreSourceName,omitempty" tf:"restore_source_name,omitempty"` - // If set, restores table to the most recent point-in-time recovery point. - RestoreToLatestTime *bool `json:"restoreToLatestTime,omitempty" tf:"restore_to_latest_time,omitempty"` +// If set, restores table to the most recent point-in-time recovery point. +RestoreToLatestTime *bool `json:"restoreToLatestTime,omitempty" tf:"restore_to_latest_time,omitempty"` - // Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. See below. - ServerSideEncryption []ServerSideEncryptionInitParameters `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` +// Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. See below. +ServerSideEncryption []ServerSideEncryptionInitParameters `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` - // Whether Streams are enabled. - StreamEnabled *bool `json:"streamEnabled,omitempty" tf:"stream_enabled,omitempty"` +// Whether Streams are enabled. +StreamEnabled *bool `json:"streamEnabled,omitempty" tf:"stream_enabled,omitempty"` - // When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. - StreamViewType *string `json:"streamViewType,omitempty" tf:"stream_view_type,omitempty"` +// When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. +StreamViewType *string `json:"streamViewType,omitempty" tf:"stream_view_type,omitempty"` - // Configuration block for TTL. See below. - TTL []TTLInitParameters `json:"ttl,omitempty" tf:"ttl,omitempty"` +// Configuration block for TTL. See below. +TTL []TTLInitParameters `json:"ttl,omitempty" tf:"ttl,omitempty"` - // Storage class of the table. - // Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. - // Default value is STANDARD. - TableClass *string `json:"tableClass,omitempty" tf:"table_class,omitempty"` +// Storage class of the table. +// Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. +// Default value is STANDARD. +TableClass *string `json:"tableClass,omitempty" tf:"table_class,omitempty"` - // A map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Number of write units for this table. If the billing_mode is PROVISIONED, this field is required. - WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` +// Number of write units for this table. If the billing_mode is PROVISIONED, this field is required. +WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` } + type TableObservation struct { - // ARN of the table - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below. - Attribute []AttributeObservation `json:"attribute,omitempty" tf:"attribute,omitempty"` +// ARN of the table +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Controls how you are charged for read and write throughput and how you manage capacity. The valid values are PROVISIONED and PAY_PER_REQUEST. Defaults to PROVISIONED. - BillingMode *string `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` +// Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below. +Attribute []AttributeObservation `json:"attribute,omitempty" tf:"attribute,omitempty"` - // Enables deletion protection for table. Defaults to false. - DeletionProtectionEnabled *bool `json:"deletionProtectionEnabled,omitempty" tf:"deletion_protection_enabled,omitempty"` +// Controls how you are charged for read and write throughput and how you manage capacity. The valid values are PROVISIONED and PAY_PER_REQUEST. Defaults to PROVISIONED. +BillingMode *string `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` - // Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below. - GlobalSecondaryIndex []GlobalSecondaryIndexObservation `json:"globalSecondaryIndex,omitempty" tf:"global_secondary_index,omitempty"` +// Enables deletion protection for table. Defaults to false. +DeletionProtectionEnabled *bool `json:"deletionProtectionEnabled,omitempty" tf:"deletion_protection_enabled,omitempty"` - // Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below. - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` +// Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below. +GlobalSecondaryIndex []GlobalSecondaryIndexObservation `json:"globalSecondaryIndex,omitempty" tf:"global_secondary_index,omitempty"` - // Name of the table - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below. +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below. - LocalSecondaryIndex []LocalSecondaryIndexObservation `json:"localSecondaryIndex,omitempty" tf:"local_secondary_index,omitempty"` +// Name of the table +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Enable point-in-time recovery options. See below. - PointInTimeRecovery []PointInTimeRecoveryObservation `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below. +LocalSecondaryIndex []LocalSecondaryIndexObservation `json:"localSecondaryIndex,omitempty" tf:"local_secondary_index,omitempty"` - // Attribute to use as the range (sort) key. Must also be defined as an attribute, see below. - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Enable point-in-time recovery options. See below. +PointInTimeRecovery []PointInTimeRecoveryObservation `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Number of read units for this table. If the billing_mode is PROVISIONED, this field is required. - ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` +// Attribute to use as the range (sort) key. Must also be defined as an attribute, see below. +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below. - Replica []TableReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"` +// Number of read units for this table. If the billing_mode is PROVISIONED, this field is required. +ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` - // Time of the point-in-time recovery point to restore. - RestoreDateTime *string `json:"restoreDateTime,omitempty" tf:"restore_date_time,omitempty"` +// Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below. +Replica []TableReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"` - // Name of the table to restore. Must match the name of an existing table. - RestoreSourceName *string `json:"restoreSourceName,omitempty" tf:"restore_source_name,omitempty"` +// Time of the point-in-time recovery point to restore. +RestoreDateTime *string `json:"restoreDateTime,omitempty" tf:"restore_date_time,omitempty"` - // If set, restores table to the most recent point-in-time recovery point. - RestoreToLatestTime *bool `json:"restoreToLatestTime,omitempty" tf:"restore_to_latest_time,omitempty"` +// Name of the table to restore. Must match the name of an existing table. +RestoreSourceName *string `json:"restoreSourceName,omitempty" tf:"restore_source_name,omitempty"` - // Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. See below. - ServerSideEncryption []ServerSideEncryptionObservation `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` +// If set, restores table to the most recent point-in-time recovery point. +RestoreToLatestTime *bool `json:"restoreToLatestTime,omitempty" tf:"restore_to_latest_time,omitempty"` - // ARN of the Table Stream. Only available when stream_enabled = true - StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` +// Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. See below. +ServerSideEncryption []ServerSideEncryptionObservation `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` - // Whether Streams are enabled. - StreamEnabled *bool `json:"streamEnabled,omitempty" tf:"stream_enabled,omitempty"` +// ARN of the Table Stream. Only available when stream_enabled = true +StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` - // Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when stream_enabled = true. - StreamLabel *string `json:"streamLabel,omitempty" tf:"stream_label,omitempty"` +// Whether Streams are enabled. +StreamEnabled *bool `json:"streamEnabled,omitempty" tf:"stream_enabled,omitempty"` - // When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. - StreamViewType *string `json:"streamViewType,omitempty" tf:"stream_view_type,omitempty"` +// Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when stream_enabled = true. +StreamLabel *string `json:"streamLabel,omitempty" tf:"stream_label,omitempty"` - // Configuration block for TTL. See below. - TTL []TTLObservation `json:"ttl,omitempty" tf:"ttl,omitempty"` +// When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. +StreamViewType *string `json:"streamViewType,omitempty" tf:"stream_view_type,omitempty"` - // Storage class of the table. - // Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. - // Default value is STANDARD. - TableClass *string `json:"tableClass,omitempty" tf:"table_class,omitempty"` +// Configuration block for TTL. See below. +TTL []TTLObservation `json:"ttl,omitempty" tf:"ttl,omitempty"` - // A map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Storage class of the table. +// Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. +// Default value is STANDARD. +TableClass *string `json:"tableClass,omitempty" tf:"table_class,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Number of write units for this table. If the billing_mode is PROVISIONED, this field is required. - WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Number of write units for this table. If the billing_mode is PROVISIONED, this field is required. +WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` } + type TableParameters struct { - // Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below. - // +kubebuilder:validation:Optional - Attribute []AttributeParameters `json:"attribute,omitempty" tf:"attribute,omitempty"` - // Controls how you are charged for read and write throughput and how you manage capacity. The valid values are PROVISIONED and PAY_PER_REQUEST. Defaults to PROVISIONED. - // +kubebuilder:validation:Optional - BillingMode *string `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` +// Set of nested attribute definitions. Only required for hash_key and range_key attributes. See below. +// +kubebuilder:validation:Optional +Attribute []AttributeParameters `json:"attribute,omitempty" tf:"attribute,omitempty"` + +// Controls how you are charged for read and write throughput and how you manage capacity. The valid values are PROVISIONED and PAY_PER_REQUEST. Defaults to PROVISIONED. +// +kubebuilder:validation:Optional +BillingMode *string `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` - // Enables deletion protection for table. Defaults to false. - // +kubebuilder:validation:Optional - DeletionProtectionEnabled *bool `json:"deletionProtectionEnabled,omitempty" tf:"deletion_protection_enabled,omitempty"` +// Enables deletion protection for table. Defaults to false. +// +kubebuilder:validation:Optional +DeletionProtectionEnabled *bool `json:"deletionProtectionEnabled,omitempty" tf:"deletion_protection_enabled,omitempty"` - // Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below. - // +kubebuilder:validation:Optional - GlobalSecondaryIndex []GlobalSecondaryIndexParameters `json:"globalSecondaryIndex,omitempty" tf:"global_secondary_index,omitempty"` +// Describe a GSI for the table; subject to the normal limits on the number of GSIs, projected attributes, etc. See below. +// +kubebuilder:validation:Optional +GlobalSecondaryIndex []GlobalSecondaryIndexParameters `json:"globalSecondaryIndex,omitempty" tf:"global_secondary_index,omitempty"` - // Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below. - // +kubebuilder:validation:Optional - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` +// Attribute to use as the hash (partition) key. Must also be defined as an attribute. See below. +// +kubebuilder:validation:Optional +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below. - // +kubebuilder:validation:Optional - LocalSecondaryIndex []LocalSecondaryIndexParameters `json:"localSecondaryIndex,omitempty" tf:"local_secondary_index,omitempty"` +// Describe an LSI on the table; these can only be allocated at creation so you cannot change this definition after you have created the resource. See below. +// +kubebuilder:validation:Optional +LocalSecondaryIndex []LocalSecondaryIndexParameters `json:"localSecondaryIndex,omitempty" tf:"local_secondary_index,omitempty"` - // Enable point-in-time recovery options. See below. - // +kubebuilder:validation:Optional - PointInTimeRecovery []PointInTimeRecoveryParameters `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// Enable point-in-time recovery options. See below. +// +kubebuilder:validation:Optional +PointInTimeRecovery []PointInTimeRecoveryParameters `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Attribute to use as the range (sort) key. Must also be defined as an attribute, see below. - // +kubebuilder:validation:Optional - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Attribute to use as the range (sort) key. Must also be defined as an attribute, see below. +// +kubebuilder:validation:Optional +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Number of read units for this table. If the billing_mode is PROVISIONED, this field is required. - // +kubebuilder:validation:Optional - ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` +// Number of read units for this table. If the billing_mode is PROVISIONED, this field is required. +// +kubebuilder:validation:Optional +ReadCapacity *float64 `json:"readCapacity,omitempty" tf:"read_capacity,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below. - // +kubebuilder:validation:Optional - Replica []TableReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"` +// Configuration block(s) with DynamoDB Global Tables V2 (version 2019.11.21) replication configurations. See below. +// +kubebuilder:validation:Optional +Replica []TableReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"` - // Time of the point-in-time recovery point to restore. - // +kubebuilder:validation:Optional - RestoreDateTime *string `json:"restoreDateTime,omitempty" tf:"restore_date_time,omitempty"` +// Time of the point-in-time recovery point to restore. +// +kubebuilder:validation:Optional +RestoreDateTime *string `json:"restoreDateTime,omitempty" tf:"restore_date_time,omitempty"` - // Name of the table to restore. Must match the name of an existing table. - // +kubebuilder:validation:Optional - RestoreSourceName *string `json:"restoreSourceName,omitempty" tf:"restore_source_name,omitempty"` +// Name of the table to restore. Must match the name of an existing table. +// +kubebuilder:validation:Optional +RestoreSourceName *string `json:"restoreSourceName,omitempty" tf:"restore_source_name,omitempty"` - // If set, restores table to the most recent point-in-time recovery point. - // +kubebuilder:validation:Optional - RestoreToLatestTime *bool `json:"restoreToLatestTime,omitempty" tf:"restore_to_latest_time,omitempty"` +// If set, restores table to the most recent point-in-time recovery point. +// +kubebuilder:validation:Optional +RestoreToLatestTime *bool `json:"restoreToLatestTime,omitempty" tf:"restore_to_latest_time,omitempty"` - // Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. See below. - // +kubebuilder:validation:Optional - ServerSideEncryption []ServerSideEncryptionParameters `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` +// Encryption at rest options. AWS DynamoDB tables are automatically encrypted at rest with an AWS-owned Customer Master Key if this argument isn't specified. See below. +// +kubebuilder:validation:Optional +ServerSideEncryption []ServerSideEncryptionParameters `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` - // Whether Streams are enabled. - // +kubebuilder:validation:Optional - StreamEnabled *bool `json:"streamEnabled,omitempty" tf:"stream_enabled,omitempty"` +// Whether Streams are enabled. +// +kubebuilder:validation:Optional +StreamEnabled *bool `json:"streamEnabled,omitempty" tf:"stream_enabled,omitempty"` - // When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. - // +kubebuilder:validation:Optional - StreamViewType *string `json:"streamViewType,omitempty" tf:"stream_view_type,omitempty"` +// When an item in the table is modified, StreamViewType determines what information is written to the table's stream. Valid values are KEYS_ONLY, NEW_IMAGE, OLD_IMAGE, NEW_AND_OLD_IMAGES. +// +kubebuilder:validation:Optional +StreamViewType *string `json:"streamViewType,omitempty" tf:"stream_view_type,omitempty"` - // Configuration block for TTL. See below. - // +kubebuilder:validation:Optional - TTL []TTLParameters `json:"ttl,omitempty" tf:"ttl,omitempty"` +// Configuration block for TTL. See below. +// +kubebuilder:validation:Optional +TTL []TTLParameters `json:"ttl,omitempty" tf:"ttl,omitempty"` - // Storage class of the table. - // Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. - // Default value is STANDARD. - // +kubebuilder:validation:Optional - TableClass *string `json:"tableClass,omitempty" tf:"table_class,omitempty"` +// Storage class of the table. +// Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. +// Default value is STANDARD. +// +kubebuilder:validation:Optional +TableClass *string `json:"tableClass,omitempty" tf:"table_class,omitempty"` - // A map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Number of write units for this table. If the billing_mode is PROVISIONED, this field is required. - // +kubebuilder:validation:Optional - WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` +// Number of write units for this table. If the billing_mode is PROVISIONED, this field is required. +// +kubebuilder:validation:Optional +WriteCapacity *float64 `json:"writeCapacity,omitempty" tf:"write_capacity,omitempty"` } + type TableReplicaInitParameters struct { - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // Whether to enable Point In Time Recovery for the replica. Default is false. - PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` + +// Whether to enable Point In Time Recovery for the replica. Default is false. +PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted. - PropagateTags *bool `json:"propagateTags,omitempty" tf:"propagate_tags,omitempty"` +// Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted. +PropagateTags *bool `json:"propagateTags,omitempty" tf:"propagate_tags,omitempty"` - // Region name of the replica. - RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` +// Region name of the replica. +RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` } + type TableReplicaObservation struct { - // ARN of the replica - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// ARN of the replica +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Whether to enable Point In Time Recovery for the replica. Default is false. - PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted. - PropagateTags *bool `json:"propagateTags,omitempty" tf:"propagate_tags,omitempty"` +// Whether to enable Point In Time Recovery for the replica. Default is false. +PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Region name of the replica. - RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` +// Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted. +PropagateTags *bool `json:"propagateTags,omitempty" tf:"propagate_tags,omitempty"` - // ARN of the Table Stream. Only available when stream_enabled = true - StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` +// Region name of the replica. +RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` - // Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when stream_enabled = true. - StreamLabel *string `json:"streamLabel,omitempty" tf:"stream_label,omitempty"` +// ARN of the Table Stream. Only available when stream_enabled = true +StreamArn *string `json:"streamArn,omitempty" tf:"stream_arn,omitempty"` + +// Timestamp, in ISO 8601 format, for this stream. Note that this timestamp is not a unique identifier for the stream on its own. However, the combination of AWS customer ID, table name and this field is guaranteed to be unique. It can be used for creating CloudWatch Alarms. Only available when stream_enabled = true. +StreamLabel *string `json:"streamLabel,omitempty" tf:"stream_label,omitempty"` } + type TableReplicaParameters struct { - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - // +kubebuilder:validation:Optional - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // Whether to enable Point In Time Recovery for the replica. Default is false. - // +kubebuilder:validation:Optional - PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +// +kubebuilder:validation:Optional +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` + +// Whether to enable Point In Time Recovery for the replica. Default is false. +// +kubebuilder:validation:Optional +PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted. - // +kubebuilder:validation:Optional - PropagateTags *bool `json:"propagateTags,omitempty" tf:"propagate_tags,omitempty"` +// Whether to propagate the global table's tags to a replica. Default is false. Changes to tags only move in one direction: from global (source) to replica. In other words, tag drift on a replica will not trigger an update. Tag or replica changes on the global table, whether from drift or configuration changes, are propagated to replicas. Changing from true to false on a subsequent apply means replica tags are left as they were, unmanaged, not deleted. +// +kubebuilder:validation:Optional +PropagateTags *bool `json:"propagateTags,omitempty" tf:"propagate_tags,omitempty"` - // Region name of the replica. - // +kubebuilder:validation:Optional - RegionName *string `json:"regionName" tf:"region_name,omitempty"` +// Region name of the replica. +// +kubebuilder:validation:Optional +RegionName *string `json:"regionName" tf:"region_name,omitempty"` } // TableSpec defines the desired state of Table type TableSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider TableParameters `json:"forProvider"` + ForProvider TableParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -565,13 +616,13 @@ type TableSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider TableInitParameters `json:"initProvider,omitempty"` + InitProvider TableInitParameters `json:"initProvider,omitempty"` } // TableStatus defines the observed state of Table. type TableStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider TableObservation `json:"atProvider,omitempty"` + AtProvider TableObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -586,9 +637,9 @@ type TableStatus struct { type Table struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec TableSpec `json:"spec"` - Status TableStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec TableSpec `json:"spec"` + Status TableStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_tableitem_types.go b/apis/dynamodb/v1alpha1/zz_tableitem_types.go index 0d230f4..00b99ba 100755 --- a/apis/dynamodb/v1alpha1/zz_tableitem_types.go +++ b/apis/dynamodb/v1alpha1/zz_tableitem_types.go @@ -15,74 +15,83 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type TableItemInitParameters struct { - // Hash key to use for lookups and identification of the item - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // JSON representation of a map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. - Item *string `json:"item,omitempty" tf:"item,omitempty"` +// Hash key to use for lookups and identification of the item +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` + +// JSON representation of a map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. +Item *string `json:"item,omitempty" tf:"item,omitempty"` - // Range key to use for lookups and identification of the item. Required if there is range key defined in the table. - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Range key to use for lookups and identification of the item. Required if there is range key defined in the table. +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` } + type TableItemObservation struct { - // Hash key to use for lookups and identification of the item - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Hash key to use for lookups and identification of the item +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` + +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // JSON representation of a map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. - Item *string `json:"item,omitempty" tf:"item,omitempty"` +// JSON representation of a map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. +Item *string `json:"item,omitempty" tf:"item,omitempty"` - // Range key to use for lookups and identification of the item. Required if there is range key defined in the table. - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Range key to use for lookups and identification of the item. Required if there is range key defined in the table. +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Name of the table to contain the item. - TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` +// Name of the table to contain the item. +TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` } + type TableItemParameters struct { - // Hash key to use for lookups and identification of the item - // +kubebuilder:validation:Optional - HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` - // JSON representation of a map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. - // +kubebuilder:validation:Optional - Item *string `json:"item,omitempty" tf:"item,omitempty"` +// Hash key to use for lookups and identification of the item +// +kubebuilder:validation:Optional +HashKey *string `json:"hashKey,omitempty" tf:"hash_key,omitempty"` + +// JSON representation of a map of attribute name/value pairs, one for each attribute. Only the primary key attributes are required; you can optionally provide other attribute name-value pairs for the item. +// +kubebuilder:validation:Optional +Item *string `json:"item,omitempty" tf:"item,omitempty"` - // Range key to use for lookups and identification of the item. Required if there is range key defined in the table. - // +kubebuilder:validation:Optional - RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` +// Range key to use for lookups and identification of the item. Required if there is range key defined in the table. +// +kubebuilder:validation:Optional +RangeKey *string `json:"rangeKey,omitempty" tf:"range_key,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Name of the table to contain the item. - // +crossplane:generate:reference:type=Table - // +kubebuilder:validation:Optional - TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` +// Name of the table to contain the item. +// +crossplane:generate:reference:type=Table +// +kubebuilder:validation:Optional +TableName *string `json:"tableName,omitempty" tf:"table_name,omitempty"` - // Reference to a Table to populate tableName. - // +kubebuilder:validation:Optional - TableNameRef *v1.Reference `json:"tableNameRef,omitempty" tf:"-"` +// Reference to a Table to populate tableName. +// +kubebuilder:validation:Optional +TableNameRef *v1.Reference `json:"tableNameRef,omitempty" tf:"-"` - // Selector for a Table to populate tableName. - // +kubebuilder:validation:Optional - TableNameSelector *v1.Selector `json:"tableNameSelector,omitempty" tf:"-"` +// Selector for a Table to populate tableName. +// +kubebuilder:validation:Optional +TableNameSelector *v1.Selector `json:"tableNameSelector,omitempty" tf:"-"` } // TableItemSpec defines the desired state of TableItem type TableItemSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider TableItemParameters `json:"forProvider"` + ForProvider TableItemParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -93,13 +102,13 @@ type TableItemSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider TableItemInitParameters `json:"initProvider,omitempty"` + InitProvider TableItemInitParameters `json:"initProvider,omitempty"` } // TableItemStatus defines the observed state of TableItem. type TableItemStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider TableItemObservation `json:"atProvider,omitempty"` + AtProvider TableItemObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -114,11 +123,11 @@ type TableItemStatus struct { type TableItem struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.hashKey) || (has(self.initProvider) && has(self.initProvider.hashKey))",message="spec.forProvider.hashKey is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.item) || (has(self.initProvider) && has(self.initProvider.item))",message="spec.forProvider.item is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec TableItemSpec `json:"spec"` - Status TableItemStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.hashKey) || (has(self.initProvider) && has(self.initProvider.hashKey))",message="spec.forProvider.hashKey is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.item) || (has(self.initProvider) && has(self.initProvider.item))",message="spec.forProvider.item is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec TableItemSpec `json:"spec"` + Status TableItemStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_tablereplica_types.go b/apis/dynamodb/v1alpha1/zz_tablereplica_types.go index a0ceb2f..3409470 100755 --- a/apis/dynamodb/v1alpha1/zz_tablereplica_types.go +++ b/apis/dynamodb/v1alpha1/zz_tablereplica_types.go @@ -15,105 +15,114 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type TableReplicaInitParameters_2 struct { - // Whether to enable Point In Time Recovery for the replica. Default is false. - PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Storage class of the table replica. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the table replica will use the same class as the global table. - TableClassOverride *string `json:"tableClassOverride,omitempty" tf:"table_class_override,omitempty"` +// Whether to enable Point In Time Recovery for the replica. Default is false. +PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` + +// Storage class of the table replica. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the table replica will use the same class as the global table. +TableClassOverride *string `json:"tableClassOverride,omitempty" tf:"table_class_override,omitempty"` - // Map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type TableReplicaObservation_2 struct { - // ARN of the table replica. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // ARN of the main or global table which this resource will replicate. - GlobalTableArn *string `json:"globalTableArn,omitempty" tf:"global_table_arn,omitempty"` +// ARN of the table replica. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// ARN of the main or global table which this resource will replicate. +GlobalTableArn *string `json:"globalTableArn,omitempty" tf:"global_table_arn,omitempty"` - // Name of the table and region of the main global table joined with a semicolon (e.g., TableName:us-east-1). - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Name of the table and region of the main global table joined with a semicolon (e.g., TableName:us-east-1). +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // Whether to enable Point In Time Recovery for the replica. Default is false. - PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` +// Whether to enable Point In Time Recovery for the replica. Default is false. +PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - // Storage class of the table replica. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the table replica will use the same class as the global table. - TableClassOverride *string `json:"tableClassOverride,omitempty" tf:"table_class_override,omitempty"` +// Storage class of the table replica. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the table replica will use the same class as the global table. +TableClassOverride *string `json:"tableClassOverride,omitempty" tf:"table_class_override,omitempty"` - // Map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type TableReplicaParameters_2 struct { - // ARN of the main or global table which this resource will replicate. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/dynamodb/v1alpha1.Table - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - GlobalTableArn *string `json:"globalTableArn,omitempty" tf:"global_table_arn,omitempty"` - - // Reference to a Table in dynamodb to populate globalTableArn. - // +kubebuilder:validation:Optional - GlobalTableArnRef *v1.Reference `json:"globalTableArnRef,omitempty" tf:"-"` - - // Selector for a Table in dynamodb to populate globalTableArn. - // +kubebuilder:validation:Optional - GlobalTableArnSelector *v1.Selector `json:"globalTableArnSelector,omitempty" tf:"-"` - - // ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - - // Reference to a Key in kms to populate kmsKeyArn. - // +kubebuilder:validation:Optional - KMSKeyArnRef *v1.Reference `json:"kmsKeyArnRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyArn. - // +kubebuilder:validation:Optional - KMSKeyArnSelector *v1.Selector `json:"kmsKeyArnSelector,omitempty" tf:"-"` - - // Whether to enable Point In Time Recovery for the replica. Default is false. - // +kubebuilder:validation:Optional - PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Storage class of the table replica. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the table replica will use the same class as the global table. - // +kubebuilder:validation:Optional - TableClassOverride *string `json:"tableClassOverride,omitempty" tf:"table_class_override,omitempty"` - - // Map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// ARN of the main or global table which this resource will replicate. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/dynamodb/v1alpha1.Table +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +GlobalTableArn *string `json:"globalTableArn,omitempty" tf:"global_table_arn,omitempty"` + +// Reference to a Table in dynamodb to populate globalTableArn. +// +kubebuilder:validation:Optional +GlobalTableArnRef *v1.Reference `json:"globalTableArnRef,omitempty" tf:"-"` + +// Selector for a Table in dynamodb to populate globalTableArn. +// +kubebuilder:validation:Optional +GlobalTableArnSelector *v1.Selector `json:"globalTableArnSelector,omitempty" tf:"-"` + +// ARN of the CMK that should be used for the AWS KMS encryption. This argument should only be used if the key is different from the default KMS-managed DynamoDB key, alias/aws/dynamodb. Note: This attribute will not be populated with the ARN of default keys. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` + +// Reference to a Key in kms to populate kmsKeyArn. +// +kubebuilder:validation:Optional +KMSKeyArnRef *v1.Reference `json:"kmsKeyArnRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyArn. +// +kubebuilder:validation:Optional +KMSKeyArnSelector *v1.Selector `json:"kmsKeyArnSelector,omitempty" tf:"-"` + +// Whether to enable Point In Time Recovery for the replica. Default is false. +// +kubebuilder:validation:Optional +PointInTimeRecovery *bool `json:"pointInTimeRecovery,omitempty" tf:"point_in_time_recovery,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Storage class of the table replica. Valid values are STANDARD and STANDARD_INFREQUENT_ACCESS. If not used, the table replica will use the same class as the global table. +// +kubebuilder:validation:Optional +TableClassOverride *string `json:"tableClassOverride,omitempty" tf:"table_class_override,omitempty"` + +// Map of tags to populate on the created table. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // TableReplicaSpec defines the desired state of TableReplica type TableReplicaSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider TableReplicaParameters_2 `json:"forProvider"` + ForProvider TableReplicaParameters_2 `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -124,13 +133,13 @@ type TableReplicaSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider TableReplicaInitParameters_2 `json:"initProvider,omitempty"` + InitProvider TableReplicaInitParameters_2 `json:"initProvider,omitempty"` } // TableReplicaStatus defines the observed state of TableReplica. type TableReplicaStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider TableReplicaObservation_2 `json:"atProvider,omitempty"` + AtProvider TableReplicaObservation_2 `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -145,9 +154,9 @@ type TableReplicaStatus struct { type TableReplica struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec TableReplicaSpec `json:"spec"` - Status TableReplicaStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec TableReplicaSpec `json:"spec"` + Status TableReplicaStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dynamodb/v1alpha1/zz_tag_types.go b/apis/dynamodb/v1alpha1/zz_tag_types.go index f827f1c..c03808a 100755 --- a/apis/dynamodb/v1alpha1/zz_tag_types.go +++ b/apis/dynamodb/v1alpha1/zz_tag_types.go @@ -15,53 +15,62 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type TagInitParameters struct { - // Tag value. - Value *string `json:"value,omitempty" tf:"value,omitempty"` + +// Tag value. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type TagObservation struct { - // DynamoDB resource identifier and key, separated by a comma (,) - ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Tag name. - Key *string `json:"key,omitempty" tf:"key,omitempty"` +// DynamoDB resource identifier and key, separated by a comma (,) +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// Tag name. +Key *string `json:"key,omitempty" tf:"key,omitempty"` - // Amazon Resource Name (ARN) of the DynamoDB resource to tag. - ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"` +// Amazon Resource Name (ARN) of the DynamoDB resource to tag. +ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"` - // Tag value. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// Tag value. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type TagParameters struct { - // Tag name. - // +kubebuilder:validation:Required - Key *string `json:"key" tf:"key,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Tag name. +// +kubebuilder:validation:Required +Key *string `json:"key" tf:"key,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Amazon Resource Name (ARN) of the DynamoDB resource to tag. - // +kubebuilder:validation:Required - ResourceArn *string `json:"resourceArn" tf:"resource_arn,omitempty"` +// Amazon Resource Name (ARN) of the DynamoDB resource to tag. +// +kubebuilder:validation:Required +ResourceArn *string `json:"resourceArn" tf:"resource_arn,omitempty"` - // Tag value. - // +kubebuilder:validation:Optional - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// Tag value. +// +kubebuilder:validation:Optional +Value *string `json:"value,omitempty" tf:"value,omitempty"` } // TagSpec defines the desired state of Tag type TagSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider TagParameters `json:"forProvider"` + ForProvider TagParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -72,13 +81,13 @@ type TagSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider TagInitParameters `json:"initProvider,omitempty"` + InitProvider TagInitParameters `json:"initProvider,omitempty"` } // TagStatus defines the observed state of Tag. type TagStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider TagObservation `json:"atProvider,omitempty"` + AtProvider TagObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -93,10 +102,10 @@ type TagStatus struct { type Tag struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.value) || (has(self.initProvider) && has(self.initProvider.value))",message="spec.forProvider.value is a required parameter" - Spec TagSpec `json:"spec"` - Status TagStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.value) || (has(self.initProvider) && has(self.initProvider.value))",message="spec.forProvider.value is a required parameter" + Spec TagSpec `json:"spec"` + Status TagStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_route_types.go b/apis/ec2/v1alpha1/zz_route_types.go index f2ab28c..0e3719d 100755 --- a/apis/ec2/v1alpha1/zz_route_types.go +++ b/apis/ec2/v1alpha1/zz_route_types.go @@ -15,181 +15,190 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type RouteInitParameters struct { - // Identifier of a carrier gateway. This attribute can only be used when the VPC contains a subnet which is associated with a Wavelength Zone. - CarrierGatewayID *string `json:"carrierGatewayId,omitempty" tf:"carrier_gateway_id,omitempty"` - // The Amazon Resource Name (ARN) of a core network. - CoreNetworkArn *string `json:"coreNetworkArn,omitempty" tf:"core_network_arn,omitempty"` +// Identifier of a carrier gateway. This attribute can only be used when the VPC contains a subnet which is associated with a Wavelength Zone. +CarrierGatewayID *string `json:"carrierGatewayId,omitempty" tf:"carrier_gateway_id,omitempty"` + +// The Amazon Resource Name (ARN) of a core network. +CoreNetworkArn *string `json:"coreNetworkArn,omitempty" tf:"core_network_arn,omitempty"` - // The destination CIDR block. - DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"` +// The destination CIDR block. +DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"` - // The destination IPv6 CIDR block. - DestinationIPv6CidrBlock *string `json:"destinationIpv6CidrBlock,omitempty" tf:"destination_ipv6_cidr_block,omitempty"` +// The destination IPv6 CIDR block. +DestinationIPv6CidrBlock *string `json:"destinationIpv6CidrBlock,omitempty" tf:"destination_ipv6_cidr_block,omitempty"` - // The ID of a managed prefix list destination. - DestinationPrefixListID *string `json:"destinationPrefixListId,omitempty" tf:"destination_prefix_list_id,omitempty"` +// The ID of a managed prefix list destination. +DestinationPrefixListID *string `json:"destinationPrefixListId,omitempty" tf:"destination_prefix_list_id,omitempty"` - // Identifier of a VPC Egress Only Internet Gateway. - EgressOnlyGatewayID *string `json:"egressOnlyGatewayId,omitempty" tf:"egress_only_gateway_id,omitempty"` +// Identifier of a VPC Egress Only Internet Gateway. +EgressOnlyGatewayID *string `json:"egressOnlyGatewayId,omitempty" tf:"egress_only_gateway_id,omitempty"` - // Identifier of a VPC internet gateway or a virtual private gateway. Specify local when updating a previously imported local route. - GatewayID *string `json:"gatewayId,omitempty" tf:"gateway_id,omitempty"` +// Identifier of a VPC internet gateway or a virtual private gateway. Specify local when updating a previously imported local route. +GatewayID *string `json:"gatewayId,omitempty" tf:"gateway_id,omitempty"` - // Identifier of a Outpost local gateway. - LocalGatewayID *string `json:"localGatewayId,omitempty" tf:"local_gateway_id,omitempty"` +// Identifier of a Outpost local gateway. +LocalGatewayID *string `json:"localGatewayId,omitempty" tf:"local_gateway_id,omitempty"` - // Identifier of a VPC NAT gateway. - NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` +// Identifier of a VPC NAT gateway. +NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` - // Identifier of an EC2 network interface. - NetworkInterfaceID *string `json:"networkInterfaceId,omitempty" tf:"network_interface_id,omitempty"` +// Identifier of an EC2 network interface. +NetworkInterfaceID *string `json:"networkInterfaceId,omitempty" tf:"network_interface_id,omitempty"` - // The ID of the routing table. - RouteTableID *string `json:"routeTableId,omitempty" tf:"route_table_id,omitempty"` +// The ID of the routing table. +RouteTableID *string `json:"routeTableId,omitempty" tf:"route_table_id,omitempty"` - // Identifier of an EC2 Transit Gateway. - TransitGatewayID *string `json:"transitGatewayId,omitempty" tf:"transit_gateway_id,omitempty"` +// Identifier of an EC2 Transit Gateway. +TransitGatewayID *string `json:"transitGatewayId,omitempty" tf:"transit_gateway_id,omitempty"` - // Identifier of a VPC Endpoint. - VPCEndpointID *string `json:"vpcEndpointId,omitempty" tf:"vpc_endpoint_id,omitempty"` +// Identifier of a VPC Endpoint. +VPCEndpointID *string `json:"vpcEndpointId,omitempty" tf:"vpc_endpoint_id,omitempty"` - // Identifier of a VPC peering connection. - VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` +// Identifier of a VPC peering connection. +VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` } + type RouteObservation struct { - // Identifier of a carrier gateway. This attribute can only be used when the VPC contains a subnet which is associated with a Wavelength Zone. - CarrierGatewayID *string `json:"carrierGatewayId,omitempty" tf:"carrier_gateway_id,omitempty"` - // The Amazon Resource Name (ARN) of a core network. - CoreNetworkArn *string `json:"coreNetworkArn,omitempty" tf:"core_network_arn,omitempty"` +// Identifier of a carrier gateway. This attribute can only be used when the VPC contains a subnet which is associated with a Wavelength Zone. +CarrierGatewayID *string `json:"carrierGatewayId,omitempty" tf:"carrier_gateway_id,omitempty"` + +// The Amazon Resource Name (ARN) of a core network. +CoreNetworkArn *string `json:"coreNetworkArn,omitempty" tf:"core_network_arn,omitempty"` - // The destination CIDR block. - DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"` +// The destination CIDR block. +DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"` - // The destination IPv6 CIDR block. - DestinationIPv6CidrBlock *string `json:"destinationIpv6CidrBlock,omitempty" tf:"destination_ipv6_cidr_block,omitempty"` +// The destination IPv6 CIDR block. +DestinationIPv6CidrBlock *string `json:"destinationIpv6CidrBlock,omitempty" tf:"destination_ipv6_cidr_block,omitempty"` - // The ID of a managed prefix list destination. - DestinationPrefixListID *string `json:"destinationPrefixListId,omitempty" tf:"destination_prefix_list_id,omitempty"` +// The ID of a managed prefix list destination. +DestinationPrefixListID *string `json:"destinationPrefixListId,omitempty" tf:"destination_prefix_list_id,omitempty"` - // Identifier of a VPC Egress Only Internet Gateway. - EgressOnlyGatewayID *string `json:"egressOnlyGatewayId,omitempty" tf:"egress_only_gateway_id,omitempty"` +// Identifier of a VPC Egress Only Internet Gateway. +EgressOnlyGatewayID *string `json:"egressOnlyGatewayId,omitempty" tf:"egress_only_gateway_id,omitempty"` - // Identifier of a VPC internet gateway or a virtual private gateway. Specify local when updating a previously imported local route. - GatewayID *string `json:"gatewayId,omitempty" tf:"gateway_id,omitempty"` +// Identifier of a VPC internet gateway or a virtual private gateway. Specify local when updating a previously imported local route. +GatewayID *string `json:"gatewayId,omitempty" tf:"gateway_id,omitempty"` - // Route identifier computed from the routing table identifier and route destination. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Route identifier computed from the routing table identifier and route destination. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Identifier of an EC2 instance. - InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` +// Identifier of an EC2 instance. +InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` - // The AWS account ID of the owner of the EC2 instance. - InstanceOwnerID *string `json:"instanceOwnerId,omitempty" tf:"instance_owner_id,omitempty"` +// The AWS account ID of the owner of the EC2 instance. +InstanceOwnerID *string `json:"instanceOwnerId,omitempty" tf:"instance_owner_id,omitempty"` - // Identifier of a Outpost local gateway. - LocalGatewayID *string `json:"localGatewayId,omitempty" tf:"local_gateway_id,omitempty"` +// Identifier of a Outpost local gateway. +LocalGatewayID *string `json:"localGatewayId,omitempty" tf:"local_gateway_id,omitempty"` - // Identifier of a VPC NAT gateway. - NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` +// Identifier of a VPC NAT gateway. +NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` - // Identifier of an EC2 network interface. - NetworkInterfaceID *string `json:"networkInterfaceId,omitempty" tf:"network_interface_id,omitempty"` +// Identifier of an EC2 network interface. +NetworkInterfaceID *string `json:"networkInterfaceId,omitempty" tf:"network_interface_id,omitempty"` - // How the route was created - CreateRouteTable, CreateRoute or EnableVgwRoutePropagation. - Origin *string `json:"origin,omitempty" tf:"origin,omitempty"` +// How the route was created - CreateRouteTable, CreateRoute or EnableVgwRoutePropagation. +Origin *string `json:"origin,omitempty" tf:"origin,omitempty"` - // The ID of the routing table. - RouteTableID *string `json:"routeTableId,omitempty" tf:"route_table_id,omitempty"` +// The ID of the routing table. +RouteTableID *string `json:"routeTableId,omitempty" tf:"route_table_id,omitempty"` - // The state of the route - active or blackhole. - State *string `json:"state,omitempty" tf:"state,omitempty"` +// The state of the route - active or blackhole. +State *string `json:"state,omitempty" tf:"state,omitempty"` - // Identifier of an EC2 Transit Gateway. - TransitGatewayID *string `json:"transitGatewayId,omitempty" tf:"transit_gateway_id,omitempty"` +// Identifier of an EC2 Transit Gateway. +TransitGatewayID *string `json:"transitGatewayId,omitempty" tf:"transit_gateway_id,omitempty"` - // Identifier of a VPC Endpoint. - VPCEndpointID *string `json:"vpcEndpointId,omitempty" tf:"vpc_endpoint_id,omitempty"` +// Identifier of a VPC Endpoint. +VPCEndpointID *string `json:"vpcEndpointId,omitempty" tf:"vpc_endpoint_id,omitempty"` - // Identifier of a VPC peering connection. - VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` +// Identifier of a VPC peering connection. +VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` } + type RouteParameters struct { - // Identifier of a carrier gateway. This attribute can only be used when the VPC contains a subnet which is associated with a Wavelength Zone. - // +kubebuilder:validation:Optional - CarrierGatewayID *string `json:"carrierGatewayId,omitempty" tf:"carrier_gateway_id,omitempty"` - // The Amazon Resource Name (ARN) of a core network. - // +kubebuilder:validation:Optional - CoreNetworkArn *string `json:"coreNetworkArn,omitempty" tf:"core_network_arn,omitempty"` +// Identifier of a carrier gateway. This attribute can only be used when the VPC contains a subnet which is associated with a Wavelength Zone. +// +kubebuilder:validation:Optional +CarrierGatewayID *string `json:"carrierGatewayId,omitempty" tf:"carrier_gateway_id,omitempty"` + +// The Amazon Resource Name (ARN) of a core network. +// +kubebuilder:validation:Optional +CoreNetworkArn *string `json:"coreNetworkArn,omitempty" tf:"core_network_arn,omitempty"` - // The destination CIDR block. - // +kubebuilder:validation:Optional - DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"` +// The destination CIDR block. +// +kubebuilder:validation:Optional +DestinationCidrBlock *string `json:"destinationCidrBlock,omitempty" tf:"destination_cidr_block,omitempty"` - // The destination IPv6 CIDR block. - // +kubebuilder:validation:Optional - DestinationIPv6CidrBlock *string `json:"destinationIpv6CidrBlock,omitempty" tf:"destination_ipv6_cidr_block,omitempty"` +// The destination IPv6 CIDR block. +// +kubebuilder:validation:Optional +DestinationIPv6CidrBlock *string `json:"destinationIpv6CidrBlock,omitempty" tf:"destination_ipv6_cidr_block,omitempty"` - // The ID of a managed prefix list destination. - // +kubebuilder:validation:Optional - DestinationPrefixListID *string `json:"destinationPrefixListId,omitempty" tf:"destination_prefix_list_id,omitempty"` +// The ID of a managed prefix list destination. +// +kubebuilder:validation:Optional +DestinationPrefixListID *string `json:"destinationPrefixListId,omitempty" tf:"destination_prefix_list_id,omitempty"` - // Identifier of a VPC Egress Only Internet Gateway. - // +kubebuilder:validation:Optional - EgressOnlyGatewayID *string `json:"egressOnlyGatewayId,omitempty" tf:"egress_only_gateway_id,omitempty"` +// Identifier of a VPC Egress Only Internet Gateway. +// +kubebuilder:validation:Optional +EgressOnlyGatewayID *string `json:"egressOnlyGatewayId,omitempty" tf:"egress_only_gateway_id,omitempty"` - // Identifier of a VPC internet gateway or a virtual private gateway. Specify local when updating a previously imported local route. - // +kubebuilder:validation:Optional - GatewayID *string `json:"gatewayId,omitempty" tf:"gateway_id,omitempty"` +// Identifier of a VPC internet gateway or a virtual private gateway. Specify local when updating a previously imported local route. +// +kubebuilder:validation:Optional +GatewayID *string `json:"gatewayId,omitempty" tf:"gateway_id,omitempty"` - // Identifier of a Outpost local gateway. - // +kubebuilder:validation:Optional - LocalGatewayID *string `json:"localGatewayId,omitempty" tf:"local_gateway_id,omitempty"` +// Identifier of a Outpost local gateway. +// +kubebuilder:validation:Optional +LocalGatewayID *string `json:"localGatewayId,omitempty" tf:"local_gateway_id,omitempty"` - // Identifier of a VPC NAT gateway. - // +kubebuilder:validation:Optional - NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` +// Identifier of a VPC NAT gateway. +// +kubebuilder:validation:Optional +NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` - // Identifier of an EC2 network interface. - // +kubebuilder:validation:Optional - NetworkInterfaceID *string `json:"networkInterfaceId,omitempty" tf:"network_interface_id,omitempty"` +// Identifier of an EC2 network interface. +// +kubebuilder:validation:Optional +NetworkInterfaceID *string `json:"networkInterfaceId,omitempty" tf:"network_interface_id,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // The ID of the routing table. - // +kubebuilder:validation:Optional - RouteTableID *string `json:"routeTableId,omitempty" tf:"route_table_id,omitempty"` +// The ID of the routing table. +// +kubebuilder:validation:Optional +RouteTableID *string `json:"routeTableId,omitempty" tf:"route_table_id,omitempty"` - // Identifier of an EC2 Transit Gateway. - // +kubebuilder:validation:Optional - TransitGatewayID *string `json:"transitGatewayId,omitempty" tf:"transit_gateway_id,omitempty"` +// Identifier of an EC2 Transit Gateway. +// +kubebuilder:validation:Optional +TransitGatewayID *string `json:"transitGatewayId,omitempty" tf:"transit_gateway_id,omitempty"` - // Identifier of a VPC Endpoint. - // +kubebuilder:validation:Optional - VPCEndpointID *string `json:"vpcEndpointId,omitempty" tf:"vpc_endpoint_id,omitempty"` +// Identifier of a VPC Endpoint. +// +kubebuilder:validation:Optional +VPCEndpointID *string `json:"vpcEndpointId,omitempty" tf:"vpc_endpoint_id,omitempty"` - // Identifier of a VPC peering connection. - // +kubebuilder:validation:Optional - VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` +// Identifier of a VPC peering connection. +// +kubebuilder:validation:Optional +VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` } // RouteSpec defines the desired state of Route type RouteSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider RouteParameters `json:"forProvider"` + ForProvider RouteParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -200,13 +209,13 @@ type RouteSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider RouteInitParameters `json:"initProvider,omitempty"` + InitProvider RouteInitParameters `json:"initProvider,omitempty"` } // RouteStatus defines the observed state of Route. type RouteStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider RouteObservation `json:"atProvider,omitempty"` + AtProvider RouteObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -221,10 +230,10 @@ type RouteStatus struct { type Route struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.routeTableId) || (has(self.initProvider) && has(self.initProvider.routeTableId))",message="spec.forProvider.routeTableId is a required parameter" - Spec RouteSpec `json:"spec"` - Status RouteStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.routeTableId) || (has(self.initProvider) && has(self.initProvider.routeTableId))",message="spec.forProvider.routeTableId is a required parameter" + Spec RouteSpec `json:"spec"` + Status RouteStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_securitygroup_types.go b/apis/ec2/v1alpha1/zz_securitygroup_types.go index 56bbf58..0053a42 100755 --- a/apis/ec2/v1alpha1/zz_securitygroup_types.go +++ b/apis/ec2/v1alpha1/zz_securitygroup_types.go @@ -15,329 +15,350 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type EgressInitParameters struct { - // List of CIDR blocks. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - Description *string `json:"description,omitempty" tf:"description"` +// List of CIDR blocks. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` + +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +Description *string `json:"description,omitempty" tf:"description"` - // Start port (or ICMP type number if protocol is icmp or icmpv6). - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` +// Start port (or ICMP type number if protocol is icmp or icmpv6). +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` - // List of IPv6 CIDR blocks. - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` +// List of IPv6 CIDR blocks. +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` - // List of Prefix List IDs. - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` +// List of Prefix List IDs. +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` - // Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. - Protocol *string `json:"protocol,omitempty" tf:"protocol"` +// Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. +Protocol *string `json:"protocol,omitempty" tf:"protocol"` - // List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` +// List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` - // Whether the security group itself will be added as a source to this ingress rule. - Self *bool `json:"self,omitempty" tf:"self"` +// Whether the security group itself will be added as a source to this ingress rule. +Self *bool `json:"self,omitempty" tf:"self"` - // End range port (or ICMP code if protocol is icmp). - ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` +// End range port (or ICMP code if protocol is icmp). +ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` } + type EgressObservation struct { - // List of CIDR blocks. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// List of CIDR blocks. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // Start port (or ICMP type number if protocol is icmp or icmpv6). - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // List of IPv6 CIDR blocks. - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` +// Start port (or ICMP type number if protocol is icmp or icmpv6). +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` - // List of Prefix List IDs. - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` +// List of IPv6 CIDR blocks. +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` - // Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +// List of Prefix List IDs. +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` - // List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` +// Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. +Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - // Whether the security group itself will be added as a source to this ingress rule. - Self *bool `json:"self,omitempty" tf:"self,omitempty"` +// List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` - // End range port (or ICMP code if protocol is icmp). - ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +// Whether the security group itself will be added as a source to this ingress rule. +Self *bool `json:"self,omitempty" tf:"self,omitempty"` + +// End range port (or ICMP code if protocol is icmp). +ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` } + type EgressParameters struct { - // List of CIDR blocks. - // +kubebuilder:validation:Optional - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description"` +// List of CIDR blocks. +// +kubebuilder:validation:Optional +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` + +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description"` - // Start port (or ICMP type number if protocol is icmp or icmpv6). - // +kubebuilder:validation:Optional - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` +// Start port (or ICMP type number if protocol is icmp or icmpv6). +// +kubebuilder:validation:Optional +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` - // List of IPv6 CIDR blocks. - // +kubebuilder:validation:Optional - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` +// List of IPv6 CIDR blocks. +// +kubebuilder:validation:Optional +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` - // List of Prefix List IDs. - // +kubebuilder:validation:Optional - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` +// List of Prefix List IDs. +// +kubebuilder:validation:Optional +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` - // Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. - // +kubebuilder:validation:Optional - Protocol *string `json:"protocol,omitempty" tf:"protocol"` +// Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. +// +kubebuilder:validation:Optional +Protocol *string `json:"protocol,omitempty" tf:"protocol"` - // List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. - // +kubebuilder:validation:Optional - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` +// List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. +// +kubebuilder:validation:Optional +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` - // Whether the security group itself will be added as a source to this ingress rule. - // +kubebuilder:validation:Optional - Self *bool `json:"self,omitempty" tf:"self"` +// Whether the security group itself will be added as a source to this ingress rule. +// +kubebuilder:validation:Optional +Self *bool `json:"self,omitempty" tf:"self"` - // End range port (or ICMP code if protocol is icmp). - // +kubebuilder:validation:Optional - ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` +// End range port (or ICMP code if protocol is icmp). +// +kubebuilder:validation:Optional +ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` } + type IngressInitParameters struct { - // List of CIDR blocks. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - Description *string `json:"description,omitempty" tf:"description"` +// List of CIDR blocks. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` + +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +Description *string `json:"description,omitempty" tf:"description"` - // Start port (or ICMP type number if protocol is icmp or icmpv6). - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` +// Start port (or ICMP type number if protocol is icmp or icmpv6). +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` - // List of IPv6 CIDR blocks. - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` +// List of IPv6 CIDR blocks. +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` - // List of Prefix List IDs. - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` +// List of Prefix List IDs. +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` - // Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. - Protocol *string `json:"protocol,omitempty" tf:"protocol"` +// Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. +Protocol *string `json:"protocol,omitempty" tf:"protocol"` - // List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` +// List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` - // Whether the security group itself will be added as a source to this ingress rule. - Self *bool `json:"self,omitempty" tf:"self"` +// Whether the security group itself will be added as a source to this ingress rule. +Self *bool `json:"self,omitempty" tf:"self"` - // End range port (or ICMP code if protocol is icmp). - ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` +// End range port (or ICMP code if protocol is icmp). +ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` } + type IngressObservation struct { - // List of CIDR blocks. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// List of CIDR blocks. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` + +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Start port (or ICMP type number if protocol is icmp or icmpv6). - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` +// Start port (or ICMP type number if protocol is icmp or icmpv6). +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` - // List of IPv6 CIDR blocks. - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` +// List of IPv6 CIDR blocks. +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` - // List of Prefix List IDs. - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` +// List of Prefix List IDs. +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` - // Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +// Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. +Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - // List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` +// List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` - // Whether the security group itself will be added as a source to this ingress rule. - Self *bool `json:"self,omitempty" tf:"self,omitempty"` +// Whether the security group itself will be added as a source to this ingress rule. +Self *bool `json:"self,omitempty" tf:"self,omitempty"` - // End range port (or ICMP code if protocol is icmp). - ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +// End range port (or ICMP code if protocol is icmp). +ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` } + type IngressParameters struct { - // List of CIDR blocks. - // +kubebuilder:validation:Optional - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description"` +// List of CIDR blocks. +// +kubebuilder:validation:Optional +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks"` - // Start port (or ICMP type number if protocol is icmp or icmpv6). - // +kubebuilder:validation:Optional - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description"` - // List of IPv6 CIDR blocks. - // +kubebuilder:validation:Optional - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` +// Start port (or ICMP type number if protocol is icmp or icmpv6). +// +kubebuilder:validation:Optional +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port"` - // List of Prefix List IDs. - // +kubebuilder:validation:Optional - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` +// List of IPv6 CIDR blocks. +// +kubebuilder:validation:Optional +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks"` - // Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. - // +kubebuilder:validation:Optional - Protocol *string `json:"protocol,omitempty" tf:"protocol"` +// List of Prefix List IDs. +// +kubebuilder:validation:Optional +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids"` - // List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. - // +kubebuilder:validation:Optional - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` +// Protocol. If you select a protocol of -1 (semantically equivalent to all, which is not a valid value here), you must specify a from_port and to_port equal to 0. The supported values are defined in the IpProtocol argument on the IpPermission API reference.12. +// +kubebuilder:validation:Optional +Protocol *string `json:"protocol,omitempty" tf:"protocol"` - // Whether the security group itself will be added as a source to this ingress rule. - // +kubebuilder:validation:Optional - Self *bool `json:"self,omitempty" tf:"self"` +// List of security groups. A group name can be used relative to the default VPC. Otherwise, group ID. +// +kubebuilder:validation:Optional +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups"` - // End range port (or ICMP code if protocol is icmp). - // +kubebuilder:validation:Optional - ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` +// Whether the security group itself will be added as a source to this ingress rule. +// +kubebuilder:validation:Optional +Self *bool `json:"self,omitempty" tf:"self"` + +// End range port (or ICMP code if protocol is icmp). +// +kubebuilder:validation:Optional +ToPort *float64 `json:"toPort,omitempty" tf:"to_port"` } + type SecurityGroupInitParameters struct { - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. - Egress []EgressInitParameters `json:"egress,omitempty" tf:"egress,omitempty"` +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. - Ingress []IngressInitParameters `json:"ingress,omitempty" tf:"ingress,omitempty"` +// Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +Egress []EgressInitParameters `json:"egress,omitempty" tf:"egress,omitempty"` - // Name of the security group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +Ingress []IngressInitParameters `json:"ingress,omitempty" tf:"ingress,omitempty"` - // Creates a unique name beginning with the specified prefix. Conflicts with name. - NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` +// Name of the security group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false. - RevokeRulesOnDelete *bool `json:"revokeRulesOnDelete,omitempty" tf:"revoke_rules_on_delete,omitempty"` +// Creates a unique name beginning with the specified prefix. Conflicts with name. +NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false. +RevokeRulesOnDelete *bool `json:"revokeRulesOnDelete,omitempty" tf:"revoke_rules_on_delete,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SecurityGroupObservation struct { - // ARN of the security group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// ARN of the security group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. - Egress []EgressObservation `json:"egress,omitempty" tf:"egress,omitempty"` +// Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +Egress []EgressObservation `json:"egress,omitempty" tf:"egress,omitempty"` - // ID of the security group. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// ID of the security group. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. - Ingress []IngressObservation `json:"ingress,omitempty" tf:"ingress,omitempty"` +// Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +Ingress []IngressObservation `json:"ingress,omitempty" tf:"ingress,omitempty"` - // Name of the security group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the security group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Creates a unique name beginning with the specified prefix. Conflicts with name. - NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` +// Creates a unique name beginning with the specified prefix. Conflicts with name. +NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` - // Owner ID. - OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` +// Owner ID. +OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` - // This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false. - RevokeRulesOnDelete *bool `json:"revokeRulesOnDelete,omitempty" tf:"revoke_rules_on_delete,omitempty"` +// This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false. +RevokeRulesOnDelete *bool `json:"revokeRulesOnDelete,omitempty" tf:"revoke_rules_on_delete,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // VPC ID. Defaults to the region's default VPC. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// VPC ID. Defaults to the region's default VPC. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type SecurityGroupParameters struct { - // Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. - // +kubebuilder:validation:Optional - Egress []EgressParameters `json:"egress,omitempty" tf:"egress,omitempty"` +// Security group description. Cannot be "". NOTE: This field maps to the AWS GroupDescription attribute, for which there is no Update API. If you'd like to classify your security groups in a way that can be updated, use tags. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +// +kubebuilder:validation:Optional +Egress []EgressParameters `json:"egress,omitempty" tf:"egress,omitempty"` - // Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. - // +kubebuilder:validation:Optional - Ingress []IngressParameters `json:"ingress,omitempty" tf:"ingress,omitempty"` +// Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode. +// +kubebuilder:validation:Optional +Ingress []IngressParameters `json:"ingress,omitempty" tf:"ingress,omitempty"` - // Name of the security group. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the security group. +// +kubebuilder:validation:Optional +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Creates a unique name beginning with the specified prefix. Conflicts with name. - // +kubebuilder:validation:Optional - NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` +// Creates a unique name beginning with the specified prefix. Conflicts with name. +// +kubebuilder:validation:Optional +NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false. - // +kubebuilder:validation:Optional - RevokeRulesOnDelete *bool `json:"revokeRulesOnDelete,omitempty" tf:"revoke_rules_on_delete,omitempty"` +// This is normally not needed, however certain AWS services such as Elastic Map Reduce may automatically add required rules to security groups used with the service, and those rules may contain a cyclic dependency that prevent the security groups from being destroyed without removing the dependency first. Default false. +// +kubebuilder:validation:Optional +RevokeRulesOnDelete *bool `json:"revokeRulesOnDelete,omitempty" tf:"revoke_rules_on_delete,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // VPC ID. Defaults to the region's default VPC. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC - // +kubebuilder:validation:Optional - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// VPC ID. Defaults to the region's default VPC. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC +// +kubebuilder:validation:Optional +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` - // Reference to a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` +// Reference to a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` - // Selector for a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` +// Selector for a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` } // SecurityGroupSpec defines the desired state of SecurityGroup type SecurityGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SecurityGroupParameters `json:"forProvider"` + ForProvider SecurityGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -348,13 +369,13 @@ type SecurityGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SecurityGroupInitParameters `json:"initProvider,omitempty"` + InitProvider SecurityGroupInitParameters `json:"initProvider,omitempty"` } // SecurityGroupStatus defines the observed state of SecurityGroup. type SecurityGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SecurityGroupObservation `json:"atProvider,omitempty"` + AtProvider SecurityGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -369,9 +390,9 @@ type SecurityGroupStatus struct { type SecurityGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SecurityGroupSpec `json:"spec"` - Status SecurityGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SecurityGroupSpec `json:"spec"` + Status SecurityGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_securitygrouprule_types.go b/apis/ec2/v1alpha1/zz_securitygrouprule_types.go index 5aa3db9..ad4588a 100755 --- a/apis/ec2/v1alpha1/zz_securitygrouprule_types.go +++ b/apis/ec2/v1alpha1/zz_securitygrouprule_types.go @@ -15,151 +15,160 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SecurityGroupRuleInitParameters struct { - // List of CIDR blocks. Cannot be specified with source_security_group_id or self. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // Description of the rule. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// List of CIDR blocks. Cannot be specified with source_security_group_id or self. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` + +// Description of the rule. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Start port (or ICMP type number if protocol is "icmp" or "icmpv6"). - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` +// Start port (or ICMP type number if protocol is "icmp" or "icmpv6"). +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` - // List of IPv6 CIDR blocks. Cannot be specified with source_security_group_id or self. - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` +// List of IPv6 CIDR blocks. Cannot be specified with source_security_group_id or self. +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` - // List of Prefix List IDs. - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` +// List of Prefix List IDs. +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` - // Protocol. If not icmp, icmpv6, tcp, udp, or all use the protocol number - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +// Protocol. If not icmp, icmpv6, tcp, udp, or all use the protocol number +Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - // Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or source_security_group_id. - Self *bool `json:"self,omitempty" tf:"self,omitempty"` +// Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or source_security_group_id. +Self *bool `json:"self,omitempty" tf:"self,omitempty"` - // Security group id to allow access to/from, depending on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or self. - SourceSecurityGroupID *string `json:"sourceSecurityGroupId,omitempty" tf:"source_security_group_id,omitempty"` +// Security group id to allow access to/from, depending on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or self. +SourceSecurityGroupID *string `json:"sourceSecurityGroupId,omitempty" tf:"source_security_group_id,omitempty"` - // End port (or ICMP code if protocol is "icmp"). - ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +// End port (or ICMP code if protocol is "icmp"). +ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` - // Type of rule being created. Valid options are ingress (inbound) - // or egress (outbound). - Type *string `json:"type,omitempty" tf:"type,omitempty"` +// Type of rule being created. Valid options are ingress (inbound) +// or egress (outbound). +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type SecurityGroupRuleObservation struct { - // List of CIDR blocks. Cannot be specified with source_security_group_id or self. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // Description of the rule. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// List of CIDR blocks. Cannot be specified with source_security_group_id or self. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` + +// Description of the rule. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Start port (or ICMP type number if protocol is "icmp" or "icmpv6"). - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` +// Start port (or ICMP type number if protocol is "icmp" or "icmpv6"). +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` - // ID of the security group rule. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// ID of the security group rule. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // List of IPv6 CIDR blocks. Cannot be specified with source_security_group_id or self. - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` +// List of IPv6 CIDR blocks. Cannot be specified with source_security_group_id or self. +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` - // List of Prefix List IDs. - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` +// List of Prefix List IDs. +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` - // Protocol. If not icmp, icmpv6, tcp, udp, or all use the protocol number - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +// Protocol. If not icmp, icmpv6, tcp, udp, or all use the protocol number +Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - // Security group to apply this rule to. - SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` +// Security group to apply this rule to. +SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` - // If the aws_security_group_rule resource has a single source or destination then this is the AWS Security Group Rule resource ID. Otherwise it is empty. - SecurityGroupRuleID *string `json:"securityGroupRuleId,omitempty" tf:"security_group_rule_id,omitempty"` +// If the aws_security_group_rule resource has a single source or destination then this is the AWS Security Group Rule resource ID. Otherwise it is empty. +SecurityGroupRuleID *string `json:"securityGroupRuleId,omitempty" tf:"security_group_rule_id,omitempty"` - // Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or source_security_group_id. - Self *bool `json:"self,omitempty" tf:"self,omitempty"` +// Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or source_security_group_id. +Self *bool `json:"self,omitempty" tf:"self,omitempty"` - // Security group id to allow access to/from, depending on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or self. - SourceSecurityGroupID *string `json:"sourceSecurityGroupId,omitempty" tf:"source_security_group_id,omitempty"` +// Security group id to allow access to/from, depending on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or self. +SourceSecurityGroupID *string `json:"sourceSecurityGroupId,omitempty" tf:"source_security_group_id,omitempty"` - // End port (or ICMP code if protocol is "icmp"). - ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +// End port (or ICMP code if protocol is "icmp"). +ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` - // Type of rule being created. Valid options are ingress (inbound) - // or egress (outbound). - Type *string `json:"type,omitempty" tf:"type,omitempty"` +// Type of rule being created. Valid options are ingress (inbound) +// or egress (outbound). +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type SecurityGroupRuleParameters struct { - // List of CIDR blocks. Cannot be specified with source_security_group_id or self. - // +kubebuilder:validation:Optional - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // Description of the rule. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// List of CIDR blocks. Cannot be specified with source_security_group_id or self. +// +kubebuilder:validation:Optional +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` + +// Description of the rule. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Start port (or ICMP type number if protocol is "icmp" or "icmpv6"). - // +kubebuilder:validation:Optional - FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` +// Start port (or ICMP type number if protocol is "icmp" or "icmpv6"). +// +kubebuilder:validation:Optional +FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` - // List of IPv6 CIDR blocks. Cannot be specified with source_security_group_id or self. - // +kubebuilder:validation:Optional - IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` +// List of IPv6 CIDR blocks. Cannot be specified with source_security_group_id or self. +// +kubebuilder:validation:Optional +IPv6CidrBlocks []*string `json:"ipv6CidrBlocks,omitempty" tf:"ipv6_cidr_blocks,omitempty"` - // List of Prefix List IDs. - // +kubebuilder:validation:Optional - PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` +// List of Prefix List IDs. +// +kubebuilder:validation:Optional +PrefixListIds []*string `json:"prefixListIds,omitempty" tf:"prefix_list_ids,omitempty"` - // Protocol. If not icmp, icmpv6, tcp, udp, or all use the protocol number - // +kubebuilder:validation:Optional - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +// Protocol. If not icmp, icmpv6, tcp, udp, or all use the protocol number +// +kubebuilder:validation:Optional +Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Security group to apply this rule to. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +kubebuilder:validation:Optional - SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` +// Security group to apply this rule to. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +kubebuilder:validation:Optional +SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` - // Reference to a SecurityGroup in ec2 to populate securityGroupId. - // +kubebuilder:validation:Optional - SecurityGroupIDRef *v1.Reference `json:"securityGroupIdRef,omitempty" tf:"-"` +// Reference to a SecurityGroup in ec2 to populate securityGroupId. +// +kubebuilder:validation:Optional +SecurityGroupIDRef *v1.Reference `json:"securityGroupIdRef,omitempty" tf:"-"` - // Selector for a SecurityGroup in ec2 to populate securityGroupId. - // +kubebuilder:validation:Optional - SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` +// Selector for a SecurityGroup in ec2 to populate securityGroupId. +// +kubebuilder:validation:Optional +SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` - // Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or source_security_group_id. - // +kubebuilder:validation:Optional - Self *bool `json:"self,omitempty" tf:"self,omitempty"` +// Whether the security group itself will be added as a source to this ingress rule. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or source_security_group_id. +// +kubebuilder:validation:Optional +Self *bool `json:"self,omitempty" tf:"self,omitempty"` - // Security group id to allow access to/from, depending on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or self. - // +kubebuilder:validation:Optional - SourceSecurityGroupID *string `json:"sourceSecurityGroupId,omitempty" tf:"source_security_group_id,omitempty"` +// Security group id to allow access to/from, depending on the type. Cannot be specified with cidr_blocks, ipv6_cidr_blocks, or self. +// +kubebuilder:validation:Optional +SourceSecurityGroupID *string `json:"sourceSecurityGroupId,omitempty" tf:"source_security_group_id,omitempty"` - // End port (or ICMP code if protocol is "icmp"). - // +kubebuilder:validation:Optional - ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +// End port (or ICMP code if protocol is "icmp"). +// +kubebuilder:validation:Optional +ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` - // Type of rule being created. Valid options are ingress (inbound) - // or egress (outbound). - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` +// Type of rule being created. Valid options are ingress (inbound) +// or egress (outbound). +// +kubebuilder:validation:Optional +Type *string `json:"type,omitempty" tf:"type,omitempty"` } // SecurityGroupRuleSpec defines the desired state of SecurityGroupRule type SecurityGroupRuleSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SecurityGroupRuleParameters `json:"forProvider"` + ForProvider SecurityGroupRuleParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -170,13 +179,13 @@ type SecurityGroupRuleSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SecurityGroupRuleInitParameters `json:"initProvider,omitempty"` + InitProvider SecurityGroupRuleInitParameters `json:"initProvider,omitempty"` } // SecurityGroupRuleStatus defines the observed state of SecurityGroupRule. type SecurityGroupRuleStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SecurityGroupRuleObservation `json:"atProvider,omitempty"` + AtProvider SecurityGroupRuleObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -191,13 +200,13 @@ type SecurityGroupRuleStatus struct { type SecurityGroupRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.fromPort) || (has(self.initProvider) && has(self.initProvider.fromPort))",message="spec.forProvider.fromPort is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.toPort) || (has(self.initProvider) && has(self.initProvider.toPort))",message="spec.forProvider.toPort is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" - Spec SecurityGroupRuleSpec `json:"spec"` - Status SecurityGroupRuleStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.fromPort) || (has(self.initProvider) && has(self.initProvider.fromPort))",message="spec.forProvider.fromPort is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.toPort) || (has(self.initProvider) && has(self.initProvider.toPort))",message="spec.forProvider.toPort is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" + Spec SecurityGroupRuleSpec `json:"spec"` + Status SecurityGroupRuleStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_subnet_types.go b/apis/ec2/v1alpha1/zz_subnet_types.go index 0f1ea49..0732f0d 100755 --- a/apis/ec2/v1alpha1/zz_subnet_types.go +++ b/apis/ec2/v1alpha1/zz_subnet_types.go @@ -15,239 +15,248 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SubnetInitParameters struct { - // Specify true to indicate - // that network interfaces created in the specified subnet should be - // assigned an IPv6 address. Default is false - AssignIPv6AddressOnCreation *bool `json:"assignIpv6AddressOnCreation,omitempty" tf:"assign_ipv6_address_on_creation,omitempty"` - // AZ for the subnet. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Specify true to indicate +// that network interfaces created in the specified subnet should be +// assigned an IPv6 address. Default is false +AssignIPv6AddressOnCreation *bool `json:"assignIpv6AddressOnCreation,omitempty" tf:"assign_ipv6_address_on_creation,omitempty"` + +// AZ for the subnet. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // AZ ID of the subnet. This argument is not supported in all regions or partitions. If necessary, use availability_zone instead. - AvailabilityZoneID *string `json:"availabilityZoneId,omitempty" tf:"availability_zone_id,omitempty"` +// AZ ID of the subnet. This argument is not supported in all regions or partitions. If necessary, use availability_zone instead. +AvailabilityZoneID *string `json:"availabilityZoneId,omitempty" tf:"availability_zone_id,omitempty"` - // The IPv4 CIDR block for the subnet. - CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` +// The IPv4 CIDR block for the subnet. +CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` - // The customer owned IPv4 address pool. Typically used with the map_customer_owned_ip_on_launch argument. The outpost_arn argument must be specified when configured. - CustomerOwnedIPv4Pool *string `json:"customerOwnedIpv4Pool,omitempty" tf:"customer_owned_ipv4_pool,omitempty"` +// The customer owned IPv4 address pool. Typically used with the map_customer_owned_ip_on_launch argument. The outpost_arn argument must be specified when configured. +CustomerOwnedIPv4Pool *string `json:"customerOwnedIpv4Pool,omitempty" tf:"customer_owned_ipv4_pool,omitempty"` - // Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: false. - EnableDns64 *bool `json:"enableDns64,omitempty" tf:"enable_dns64,omitempty"` +// Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: false. +EnableDns64 *bool `json:"enableDns64,omitempty" tf:"enable_dns64,omitempty"` - // Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1). A local network interface cannot be the primary network interface (eth0). - EnableLniAtDeviceIndex *float64 `json:"enableLniAtDeviceIndex,omitempty" tf:"enable_lni_at_device_index,omitempty"` +// Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1). A local network interface cannot be the primary network interface (eth0). +EnableLniAtDeviceIndex *float64 `json:"enableLniAtDeviceIndex,omitempty" tf:"enable_lni_at_device_index,omitempty"` - // Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. - EnableResourceNameDNSARecordOnLaunch *bool `json:"enableResourceNameDnsARecordOnLaunch,omitempty" tf:"enable_resource_name_dns_a_record_on_launch,omitempty"` +// Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. +EnableResourceNameDNSARecordOnLaunch *bool `json:"enableResourceNameDnsARecordOnLaunch,omitempty" tf:"enable_resource_name_dns_a_record_on_launch,omitempty"` - // Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. - EnableResourceNameDNSAaaaRecordOnLaunch *bool `json:"enableResourceNameDnsAaaaRecordOnLaunch,omitempty" tf:"enable_resource_name_dns_aaaa_record_on_launch,omitempty"` +// Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. +EnableResourceNameDNSAaaaRecordOnLaunch *bool `json:"enableResourceNameDnsAaaaRecordOnLaunch,omitempty" tf:"enable_resource_name_dns_aaaa_record_on_launch,omitempty"` - // The IPv6 network range for the subnet, - // in CIDR notation. The subnet size must use a /64 prefix length. - IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` +// The IPv6 network range for the subnet, +// in CIDR notation. The subnet size must use a /64 prefix length. +IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` - // Indicates whether to create an IPv6-only subnet. Default: false. - IPv6Native *bool `json:"ipv6Native,omitempty" tf:"ipv6_native,omitempty"` +// Indicates whether to create an IPv6-only subnet. Default: false. +IPv6Native *bool `json:"ipv6Native,omitempty" tf:"ipv6_native,omitempty"` - // Specify true to indicate that network interfaces created in the subnet should be assigned a customer owned IP address. The customer_owned_ipv4_pool and outpost_arn arguments must be specified when set to true. Default is false. - MapCustomerOwnedIPOnLaunch *bool `json:"mapCustomerOwnedIpOnLaunch,omitempty" tf:"map_customer_owned_ip_on_launch,omitempty"` +// Specify true to indicate that network interfaces created in the subnet should be assigned a customer owned IP address. The customer_owned_ipv4_pool and outpost_arn arguments must be specified when set to true. Default is false. +MapCustomerOwnedIPOnLaunch *bool `json:"mapCustomerOwnedIpOnLaunch,omitempty" tf:"map_customer_owned_ip_on_launch,omitempty"` - // Specify true to indicate - // that instances launched into the subnet should be assigned - // a public IP address. Default is false. - MapPublicIPOnLaunch *bool `json:"mapPublicIpOnLaunch,omitempty" tf:"map_public_ip_on_launch,omitempty"` +// Specify true to indicate +// that instances launched into the subnet should be assigned +// a public IP address. Default is false. +MapPublicIPOnLaunch *bool `json:"mapPublicIpOnLaunch,omitempty" tf:"map_public_ip_on_launch,omitempty"` - // The Amazon Resource Name (ARN) of the Outpost. - OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` +// The Amazon Resource Name (ARN) of the Outpost. +OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` - // The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name. - PrivateDNSHostnameTypeOnLaunch *string `json:"privateDnsHostnameTypeOnLaunch,omitempty" tf:"private_dns_hostname_type_on_launch,omitempty"` +// The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name. +PrivateDNSHostnameTypeOnLaunch *string `json:"privateDnsHostnameTypeOnLaunch,omitempty" tf:"private_dns_hostname_type_on_launch,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetObservation struct { - // The ARN of the subnet. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Specify true to indicate - // that network interfaces created in the specified subnet should be - // assigned an IPv6 address. Default is false - AssignIPv6AddressOnCreation *bool `json:"assignIpv6AddressOnCreation,omitempty" tf:"assign_ipv6_address_on_creation,omitempty"` +// The ARN of the subnet. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Specify true to indicate +// that network interfaces created in the specified subnet should be +// assigned an IPv6 address. Default is false +AssignIPv6AddressOnCreation *bool `json:"assignIpv6AddressOnCreation,omitempty" tf:"assign_ipv6_address_on_creation,omitempty"` - // AZ for the subnet. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// AZ for the subnet. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // AZ ID of the subnet. This argument is not supported in all regions or partitions. If necessary, use availability_zone instead. - AvailabilityZoneID *string `json:"availabilityZoneId,omitempty" tf:"availability_zone_id,omitempty"` +// AZ ID of the subnet. This argument is not supported in all regions or partitions. If necessary, use availability_zone instead. +AvailabilityZoneID *string `json:"availabilityZoneId,omitempty" tf:"availability_zone_id,omitempty"` - // The IPv4 CIDR block for the subnet. - CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` +// The IPv4 CIDR block for the subnet. +CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` - // The customer owned IPv4 address pool. Typically used with the map_customer_owned_ip_on_launch argument. The outpost_arn argument must be specified when configured. - CustomerOwnedIPv4Pool *string `json:"customerOwnedIpv4Pool,omitempty" tf:"customer_owned_ipv4_pool,omitempty"` +// The customer owned IPv4 address pool. Typically used with the map_customer_owned_ip_on_launch argument. The outpost_arn argument must be specified when configured. +CustomerOwnedIPv4Pool *string `json:"customerOwnedIpv4Pool,omitempty" tf:"customer_owned_ipv4_pool,omitempty"` - // Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: false. - EnableDns64 *bool `json:"enableDns64,omitempty" tf:"enable_dns64,omitempty"` +// Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: false. +EnableDns64 *bool `json:"enableDns64,omitempty" tf:"enable_dns64,omitempty"` - // Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1). A local network interface cannot be the primary network interface (eth0). - EnableLniAtDeviceIndex *float64 `json:"enableLniAtDeviceIndex,omitempty" tf:"enable_lni_at_device_index,omitempty"` +// Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1). A local network interface cannot be the primary network interface (eth0). +EnableLniAtDeviceIndex *float64 `json:"enableLniAtDeviceIndex,omitempty" tf:"enable_lni_at_device_index,omitempty"` - // Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. - EnableResourceNameDNSARecordOnLaunch *bool `json:"enableResourceNameDnsARecordOnLaunch,omitempty" tf:"enable_resource_name_dns_a_record_on_launch,omitempty"` +// Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. +EnableResourceNameDNSARecordOnLaunch *bool `json:"enableResourceNameDnsARecordOnLaunch,omitempty" tf:"enable_resource_name_dns_a_record_on_launch,omitempty"` - // Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. - EnableResourceNameDNSAaaaRecordOnLaunch *bool `json:"enableResourceNameDnsAaaaRecordOnLaunch,omitempty" tf:"enable_resource_name_dns_aaaa_record_on_launch,omitempty"` +// Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. +EnableResourceNameDNSAaaaRecordOnLaunch *bool `json:"enableResourceNameDnsAaaaRecordOnLaunch,omitempty" tf:"enable_resource_name_dns_aaaa_record_on_launch,omitempty"` - // The ID of the subnet - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ID of the subnet +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The IPv6 network range for the subnet, - // in CIDR notation. The subnet size must use a /64 prefix length. - IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` +// The IPv6 network range for the subnet, +// in CIDR notation. The subnet size must use a /64 prefix length. +IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` - // The association ID for the IPv6 CIDR block. - IPv6CidrBlockAssociationID *string `json:"ipv6CidrBlockAssociationId,omitempty" tf:"ipv6_cidr_block_association_id,omitempty"` +// The association ID for the IPv6 CIDR block. +IPv6CidrBlockAssociationID *string `json:"ipv6CidrBlockAssociationId,omitempty" tf:"ipv6_cidr_block_association_id,omitempty"` - // Indicates whether to create an IPv6-only subnet. Default: false. - IPv6Native *bool `json:"ipv6Native,omitempty" tf:"ipv6_native,omitempty"` +// Indicates whether to create an IPv6-only subnet. Default: false. +IPv6Native *bool `json:"ipv6Native,omitempty" tf:"ipv6_native,omitempty"` - // Specify true to indicate that network interfaces created in the subnet should be assigned a customer owned IP address. The customer_owned_ipv4_pool and outpost_arn arguments must be specified when set to true. Default is false. - MapCustomerOwnedIPOnLaunch *bool `json:"mapCustomerOwnedIpOnLaunch,omitempty" tf:"map_customer_owned_ip_on_launch,omitempty"` +// Specify true to indicate that network interfaces created in the subnet should be assigned a customer owned IP address. The customer_owned_ipv4_pool and outpost_arn arguments must be specified when set to true. Default is false. +MapCustomerOwnedIPOnLaunch *bool `json:"mapCustomerOwnedIpOnLaunch,omitempty" tf:"map_customer_owned_ip_on_launch,omitempty"` - // Specify true to indicate - // that instances launched into the subnet should be assigned - // a public IP address. Default is false. - MapPublicIPOnLaunch *bool `json:"mapPublicIpOnLaunch,omitempty" tf:"map_public_ip_on_launch,omitempty"` +// Specify true to indicate +// that instances launched into the subnet should be assigned +// a public IP address. Default is false. +MapPublicIPOnLaunch *bool `json:"mapPublicIpOnLaunch,omitempty" tf:"map_public_ip_on_launch,omitempty"` - // The Amazon Resource Name (ARN) of the Outpost. - OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` +// The Amazon Resource Name (ARN) of the Outpost. +OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` - // The ID of the AWS account that owns the subnet. - OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` +// The ID of the AWS account that owns the subnet. +OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` - // The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name. - PrivateDNSHostnameTypeOnLaunch *string `json:"privateDnsHostnameTypeOnLaunch,omitempty" tf:"private_dns_hostname_type_on_launch,omitempty"` +// The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name. +PrivateDNSHostnameTypeOnLaunch *string `json:"privateDnsHostnameTypeOnLaunch,omitempty" tf:"private_dns_hostname_type_on_launch,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The VPC ID. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The VPC ID. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type SubnetParameters struct { - // Specify true to indicate - // that network interfaces created in the specified subnet should be - // assigned an IPv6 address. Default is false - // +kubebuilder:validation:Optional - AssignIPv6AddressOnCreation *bool `json:"assignIpv6AddressOnCreation,omitempty" tf:"assign_ipv6_address_on_creation,omitempty"` - - // AZ for the subnet. - // +kubebuilder:validation:Optional - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - - // AZ ID of the subnet. This argument is not supported in all regions or partitions. If necessary, use availability_zone instead. - // +kubebuilder:validation:Optional - AvailabilityZoneID *string `json:"availabilityZoneId,omitempty" tf:"availability_zone_id,omitempty"` - - // The IPv4 CIDR block for the subnet. - // +kubebuilder:validation:Optional - CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` - - // The customer owned IPv4 address pool. Typically used with the map_customer_owned_ip_on_launch argument. The outpost_arn argument must be specified when configured. - // +kubebuilder:validation:Optional - CustomerOwnedIPv4Pool *string `json:"customerOwnedIpv4Pool,omitempty" tf:"customer_owned_ipv4_pool,omitempty"` - - // Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: false. - // +kubebuilder:validation:Optional - EnableDns64 *bool `json:"enableDns64,omitempty" tf:"enable_dns64,omitempty"` - - // Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1). A local network interface cannot be the primary network interface (eth0). - // +kubebuilder:validation:Optional - EnableLniAtDeviceIndex *float64 `json:"enableLniAtDeviceIndex,omitempty" tf:"enable_lni_at_device_index,omitempty"` - - // Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. - // +kubebuilder:validation:Optional - EnableResourceNameDNSARecordOnLaunch *bool `json:"enableResourceNameDnsARecordOnLaunch,omitempty" tf:"enable_resource_name_dns_a_record_on_launch,omitempty"` - - // Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. - // +kubebuilder:validation:Optional - EnableResourceNameDNSAaaaRecordOnLaunch *bool `json:"enableResourceNameDnsAaaaRecordOnLaunch,omitempty" tf:"enable_resource_name_dns_aaaa_record_on_launch,omitempty"` - - // The IPv6 network range for the subnet, - // in CIDR notation. The subnet size must use a /64 prefix length. - // +kubebuilder:validation:Optional - IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` - - // Indicates whether to create an IPv6-only subnet. Default: false. - // +kubebuilder:validation:Optional - IPv6Native *bool `json:"ipv6Native,omitempty" tf:"ipv6_native,omitempty"` - - // Specify true to indicate that network interfaces created in the subnet should be assigned a customer owned IP address. The customer_owned_ipv4_pool and outpost_arn arguments must be specified when set to true. Default is false. - // +kubebuilder:validation:Optional - MapCustomerOwnedIPOnLaunch *bool `json:"mapCustomerOwnedIpOnLaunch,omitempty" tf:"map_customer_owned_ip_on_launch,omitempty"` - - // Specify true to indicate - // that instances launched into the subnet should be assigned - // a public IP address. Default is false. - // +kubebuilder:validation:Optional - MapPublicIPOnLaunch *bool `json:"mapPublicIpOnLaunch,omitempty" tf:"map_public_ip_on_launch,omitempty"` - - // The Amazon Resource Name (ARN) of the Outpost. - // +kubebuilder:validation:Optional - OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` - - // The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name. - // +kubebuilder:validation:Optional - PrivateDNSHostnameTypeOnLaunch *string `json:"privateDnsHostnameTypeOnLaunch,omitempty" tf:"private_dns_hostname_type_on_launch,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // The VPC ID. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC - // +kubebuilder:validation:Optional - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` - - // Reference to a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` - - // Selector for a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` + +// Specify true to indicate +// that network interfaces created in the specified subnet should be +// assigned an IPv6 address. Default is false +// +kubebuilder:validation:Optional +AssignIPv6AddressOnCreation *bool `json:"assignIpv6AddressOnCreation,omitempty" tf:"assign_ipv6_address_on_creation,omitempty"` + +// AZ for the subnet. +// +kubebuilder:validation:Optional +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + +// AZ ID of the subnet. This argument is not supported in all regions or partitions. If necessary, use availability_zone instead. +// +kubebuilder:validation:Optional +AvailabilityZoneID *string `json:"availabilityZoneId,omitempty" tf:"availability_zone_id,omitempty"` + +// The IPv4 CIDR block for the subnet. +// +kubebuilder:validation:Optional +CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` + +// The customer owned IPv4 address pool. Typically used with the map_customer_owned_ip_on_launch argument. The outpost_arn argument must be specified when configured. +// +kubebuilder:validation:Optional +CustomerOwnedIPv4Pool *string `json:"customerOwnedIpv4Pool,omitempty" tf:"customer_owned_ipv4_pool,omitempty"` + +// Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: false. +// +kubebuilder:validation:Optional +EnableDns64 *bool `json:"enableDns64,omitempty" tf:"enable_dns64,omitempty"` + +// Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1). A local network interface cannot be the primary network interface (eth0). +// +kubebuilder:validation:Optional +EnableLniAtDeviceIndex *float64 `json:"enableLniAtDeviceIndex,omitempty" tf:"enable_lni_at_device_index,omitempty"` + +// Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. +// +kubebuilder:validation:Optional +EnableResourceNameDNSARecordOnLaunch *bool `json:"enableResourceNameDnsARecordOnLaunch,omitempty" tf:"enable_resource_name_dns_a_record_on_launch,omitempty"` + +// Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. +// +kubebuilder:validation:Optional +EnableResourceNameDNSAaaaRecordOnLaunch *bool `json:"enableResourceNameDnsAaaaRecordOnLaunch,omitempty" tf:"enable_resource_name_dns_aaaa_record_on_launch,omitempty"` + +// The IPv6 network range for the subnet, +// in CIDR notation. The subnet size must use a /64 prefix length. +// +kubebuilder:validation:Optional +IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` + +// Indicates whether to create an IPv6-only subnet. Default: false. +// +kubebuilder:validation:Optional +IPv6Native *bool `json:"ipv6Native,omitempty" tf:"ipv6_native,omitempty"` + +// Specify true to indicate that network interfaces created in the subnet should be assigned a customer owned IP address. The customer_owned_ipv4_pool and outpost_arn arguments must be specified when set to true. Default is false. +// +kubebuilder:validation:Optional +MapCustomerOwnedIPOnLaunch *bool `json:"mapCustomerOwnedIpOnLaunch,omitempty" tf:"map_customer_owned_ip_on_launch,omitempty"` + +// Specify true to indicate +// that instances launched into the subnet should be assigned +// a public IP address. Default is false. +// +kubebuilder:validation:Optional +MapPublicIPOnLaunch *bool `json:"mapPublicIpOnLaunch,omitempty" tf:"map_public_ip_on_launch,omitempty"` + +// The Amazon Resource Name (ARN) of the Outpost. +// +kubebuilder:validation:Optional +OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` + +// The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: ip-name, resource-name. +// +kubebuilder:validation:Optional +PrivateDNSHostnameTypeOnLaunch *string `json:"privateDnsHostnameTypeOnLaunch,omitempty" tf:"private_dns_hostname_type_on_launch,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The VPC ID. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC +// +kubebuilder:validation:Optional +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + +// Reference to a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` + +// Selector for a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` } // SubnetSpec defines the desired state of Subnet type SubnetSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SubnetParameters `json:"forProvider"` + ForProvider SubnetParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -258,13 +267,13 @@ type SubnetSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SubnetInitParameters `json:"initProvider,omitempty"` + InitProvider SubnetInitParameters `json:"initProvider,omitempty"` } // SubnetStatus defines the observed state of Subnet. type SubnetStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SubnetObservation `json:"atProvider,omitempty"` + AtProvider SubnetObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -279,9 +288,9 @@ type SubnetStatus struct { type Subnet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SubnetSpec `json:"spec"` - Status SubnetStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SubnetSpec `json:"spec"` + Status SubnetStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_vpc_types.go b/apis/ec2/v1alpha1/zz_vpc_types.go index b9a90c6..d98ee05 100755 --- a/apis/ec2/v1alpha1/zz_vpc_types.go +++ b/apis/ec2/v1alpha1/zz_vpc_types.go @@ -15,195 +15,204 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type VPCInitParameters struct { - // Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is false. Conflicts with ipv6_ipam_pool_id - AssignGeneratedIPv6CidrBlock *bool `json:"assignGeneratedIpv6CidrBlock,omitempty" tf:"assign_generated_ipv6_cidr_block,omitempty"` - // The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4_netmask_length. - CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` +// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is false. Conflicts with ipv6_ipam_pool_id +AssignGeneratedIPv6CidrBlock *bool `json:"assignGeneratedIpv6CidrBlock,omitempty" tf:"assign_generated_ipv6_cidr_block,omitempty"` + +// The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4_netmask_length. +CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` - // A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. - EnableDNSHostnames *bool `json:"enableDnsHostnames,omitempty" tf:"enable_dns_hostnames,omitempty"` +// A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. +EnableDNSHostnames *bool `json:"enableDnsHostnames,omitempty" tf:"enable_dns_hostnames,omitempty"` - // A boolean flag to enable/disable DNS support in the VPC. Defaults to true. - EnableDNSSupport *bool `json:"enableDnsSupport,omitempty" tf:"enable_dns_support,omitempty"` +// A boolean flag to enable/disable DNS support in the VPC. Defaults to true. +EnableDNSSupport *bool `json:"enableDnsSupport,omitempty" tf:"enable_dns_support,omitempty"` - // Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. - EnableNetworkAddressUsageMetrics *bool `json:"enableNetworkAddressUsageMetrics,omitempty" tf:"enable_network_address_usage_metrics,omitempty"` +// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. +EnableNetworkAddressUsageMetrics *bool `json:"enableNetworkAddressUsageMetrics,omitempty" tf:"enable_network_address_usage_metrics,omitempty"` - // The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. - IPv4IpamPoolID *string `json:"ipv4IpamPoolId,omitempty" tf:"ipv4_ipam_pool_id,omitempty"` +// The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. +IPv4IpamPoolID *string `json:"ipv4IpamPoolId,omitempty" tf:"ipv4_ipam_pool_id,omitempty"` - // The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4_ipam_pool_id. - IPv4NetmaskLength *float64 `json:"ipv4NetmaskLength,omitempty" tf:"ipv4_netmask_length,omitempty"` +// The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4_ipam_pool_id. +IPv4NetmaskLength *float64 `json:"ipv4NetmaskLength,omitempty" tf:"ipv4_netmask_length,omitempty"` - // IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using ipv6_netmask_length. - IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` +// IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using ipv6_netmask_length. +IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` - // By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones. - IPv6CidrBlockNetworkBorderGroup *string `json:"ipv6CidrBlockNetworkBorderGroup,omitempty" tf:"ipv6_cidr_block_network_border_group,omitempty"` +// By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones. +IPv6CidrBlockNetworkBorderGroup *string `json:"ipv6CidrBlockNetworkBorderGroup,omitempty" tf:"ipv6_cidr_block_network_border_group,omitempty"` - // IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. - IPv6IpamPoolID *string `json:"ipv6IpamPoolId,omitempty" tf:"ipv6_ipam_pool_id,omitempty"` +// IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. +IPv6IpamPoolID *string `json:"ipv6IpamPoolId,omitempty" tf:"ipv6_ipam_pool_id,omitempty"` - // Netmask length to request from IPAM Pool. Conflicts with ipv6_cidr_block. This can be omitted if IPAM pool as a allocation_default_netmask_length set. Valid values: 56. - IPv6NetmaskLength *float64 `json:"ipv6NetmaskLength,omitempty" tf:"ipv6_netmask_length,omitempty"` +// Netmask length to request from IPAM Pool. Conflicts with ipv6_cidr_block. This can be omitted if IPAM pool as a allocation_default_netmask_length set. Valid values: 56. +IPv6NetmaskLength *float64 `json:"ipv6NetmaskLength,omitempty" tf:"ipv6_netmask_length,omitempty"` - // A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. - InstanceTenancy *string `json:"instanceTenancy,omitempty" tf:"instance_tenancy,omitempty"` +// A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. +InstanceTenancy *string `json:"instanceTenancy,omitempty" tf:"instance_tenancy,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type VPCObservation struct { - // Amazon Resource Name (ARN) of VPC - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is false. Conflicts with ipv6_ipam_pool_id - AssignGeneratedIPv6CidrBlock *bool `json:"assignGeneratedIpv6CidrBlock,omitempty" tf:"assign_generated_ipv6_cidr_block,omitempty"` +// Amazon Resource Name (ARN) of VPC +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is false. Conflicts with ipv6_ipam_pool_id +AssignGeneratedIPv6CidrBlock *bool `json:"assignGeneratedIpv6CidrBlock,omitempty" tf:"assign_generated_ipv6_cidr_block,omitempty"` - // The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4_netmask_length. - CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` +// The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4_netmask_length. +CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` - // The ID of the VPC - DHCPOptionsID *string `json:"dhcpOptionsId,omitempty" tf:"dhcp_options_id,omitempty"` +// The ID of the VPC +DHCPOptionsID *string `json:"dhcpOptionsId,omitempty" tf:"dhcp_options_id,omitempty"` - // The ID of the network ACL created by default on VPC creation - DefaultNetworkACLID *string `json:"defaultNetworkAclId,omitempty" tf:"default_network_acl_id,omitempty"` +// The ID of the network ACL created by default on VPC creation +DefaultNetworkACLID *string `json:"defaultNetworkAclId,omitempty" tf:"default_network_acl_id,omitempty"` - // The ID of the route table created by default on VPC creation - DefaultRouteTableID *string `json:"defaultRouteTableId,omitempty" tf:"default_route_table_id,omitempty"` +// The ID of the route table created by default on VPC creation +DefaultRouteTableID *string `json:"defaultRouteTableId,omitempty" tf:"default_route_table_id,omitempty"` - // The ID of the security group created by default on VPC creation - DefaultSecurityGroupID *string `json:"defaultSecurityGroupId,omitempty" tf:"default_security_group_id,omitempty"` +// The ID of the security group created by default on VPC creation +DefaultSecurityGroupID *string `json:"defaultSecurityGroupId,omitempty" tf:"default_security_group_id,omitempty"` - // A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. - EnableDNSHostnames *bool `json:"enableDnsHostnames,omitempty" tf:"enable_dns_hostnames,omitempty"` +// A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. +EnableDNSHostnames *bool `json:"enableDnsHostnames,omitempty" tf:"enable_dns_hostnames,omitempty"` - // A boolean flag to enable/disable DNS support in the VPC. Defaults to true. - EnableDNSSupport *bool `json:"enableDnsSupport,omitempty" tf:"enable_dns_support,omitempty"` +// A boolean flag to enable/disable DNS support in the VPC. Defaults to true. +EnableDNSSupport *bool `json:"enableDnsSupport,omitempty" tf:"enable_dns_support,omitempty"` - // Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. - EnableNetworkAddressUsageMetrics *bool `json:"enableNetworkAddressUsageMetrics,omitempty" tf:"enable_network_address_usage_metrics,omitempty"` +// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. +EnableNetworkAddressUsageMetrics *bool `json:"enableNetworkAddressUsageMetrics,omitempty" tf:"enable_network_address_usage_metrics,omitempty"` - // The ID of the VPC - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ID of the VPC +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. - IPv4IpamPoolID *string `json:"ipv4IpamPoolId,omitempty" tf:"ipv4_ipam_pool_id,omitempty"` +// The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. +IPv4IpamPoolID *string `json:"ipv4IpamPoolId,omitempty" tf:"ipv4_ipam_pool_id,omitempty"` - // The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4_ipam_pool_id. - IPv4NetmaskLength *float64 `json:"ipv4NetmaskLength,omitempty" tf:"ipv4_netmask_length,omitempty"` +// The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4_ipam_pool_id. +IPv4NetmaskLength *float64 `json:"ipv4NetmaskLength,omitempty" tf:"ipv4_netmask_length,omitempty"` - // The association ID for the IPv6 CIDR block. - IPv6AssociationID *string `json:"ipv6AssociationId,omitempty" tf:"ipv6_association_id,omitempty"` +// The association ID for the IPv6 CIDR block. +IPv6AssociationID *string `json:"ipv6AssociationId,omitempty" tf:"ipv6_association_id,omitempty"` - // IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using ipv6_netmask_length. - IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` +// IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using ipv6_netmask_length. +IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` - // By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones. - IPv6CidrBlockNetworkBorderGroup *string `json:"ipv6CidrBlockNetworkBorderGroup,omitempty" tf:"ipv6_cidr_block_network_border_group,omitempty"` +// By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones. +IPv6CidrBlockNetworkBorderGroup *string `json:"ipv6CidrBlockNetworkBorderGroup,omitempty" tf:"ipv6_cidr_block_network_border_group,omitempty"` - // IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. - IPv6IpamPoolID *string `json:"ipv6IpamPoolId,omitempty" tf:"ipv6_ipam_pool_id,omitempty"` +// IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. +IPv6IpamPoolID *string `json:"ipv6IpamPoolId,omitempty" tf:"ipv6_ipam_pool_id,omitempty"` - // Netmask length to request from IPAM Pool. Conflicts with ipv6_cidr_block. This can be omitted if IPAM pool as a allocation_default_netmask_length set. Valid values: 56. - IPv6NetmaskLength *float64 `json:"ipv6NetmaskLength,omitempty" tf:"ipv6_netmask_length,omitempty"` +// Netmask length to request from IPAM Pool. Conflicts with ipv6_cidr_block. This can be omitted if IPAM pool as a allocation_default_netmask_length set. Valid values: 56. +IPv6NetmaskLength *float64 `json:"ipv6NetmaskLength,omitempty" tf:"ipv6_netmask_length,omitempty"` - // A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. - InstanceTenancy *string `json:"instanceTenancy,omitempty" tf:"instance_tenancy,omitempty"` +// A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. +InstanceTenancy *string `json:"instanceTenancy,omitempty" tf:"instance_tenancy,omitempty"` - // The ID of the main route table associated with - // this VPC. Note that you can change a VPC's main route table by using an - // aws_main_route_table_association. - MainRouteTableID *string `json:"mainRouteTableId,omitempty" tf:"main_route_table_id,omitempty"` +// The ID of the main route table associated with +// this VPC. Note that you can change a VPC's main route table by using an +// aws_main_route_table_association. +MainRouteTableID *string `json:"mainRouteTableId,omitempty" tf:"main_route_table_id,omitempty"` - // The ID of the AWS account that owns the VPC. - OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` +// The ID of the AWS account that owns the VPC. +OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type VPCParameters struct { - // Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is false. Conflicts with ipv6_ipam_pool_id - // +kubebuilder:validation:Optional - AssignGeneratedIPv6CidrBlock *bool `json:"assignGeneratedIpv6CidrBlock,omitempty" tf:"assign_generated_ipv6_cidr_block,omitempty"` - // The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4_netmask_length. - // +kubebuilder:validation:Optional - CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` +// Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block. Default is false. Conflicts with ipv6_ipam_pool_id +// +kubebuilder:validation:Optional +AssignGeneratedIPv6CidrBlock *bool `json:"assignGeneratedIpv6CidrBlock,omitempty" tf:"assign_generated_ipv6_cidr_block,omitempty"` + +// The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4_netmask_length. +// +kubebuilder:validation:Optional +CidrBlock *string `json:"cidrBlock,omitempty" tf:"cidr_block,omitempty"` - // A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. - // +kubebuilder:validation:Optional - EnableDNSHostnames *bool `json:"enableDnsHostnames,omitempty" tf:"enable_dns_hostnames,omitempty"` +// A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. +// +kubebuilder:validation:Optional +EnableDNSHostnames *bool `json:"enableDnsHostnames,omitempty" tf:"enable_dns_hostnames,omitempty"` - // A boolean flag to enable/disable DNS support in the VPC. Defaults to true. - // +kubebuilder:validation:Optional - EnableDNSSupport *bool `json:"enableDnsSupport,omitempty" tf:"enable_dns_support,omitempty"` +// A boolean flag to enable/disable DNS support in the VPC. Defaults to true. +// +kubebuilder:validation:Optional +EnableDNSSupport *bool `json:"enableDnsSupport,omitempty" tf:"enable_dns_support,omitempty"` - // Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. - // +kubebuilder:validation:Optional - EnableNetworkAddressUsageMetrics *bool `json:"enableNetworkAddressUsageMetrics,omitempty" tf:"enable_network_address_usage_metrics,omitempty"` +// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. +// +kubebuilder:validation:Optional +EnableNetworkAddressUsageMetrics *bool `json:"enableNetworkAddressUsageMetrics,omitempty" tf:"enable_network_address_usage_metrics,omitempty"` - // The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. - // +kubebuilder:validation:Optional - IPv4IpamPoolID *string `json:"ipv4IpamPoolId,omitempty" tf:"ipv4_ipam_pool_id,omitempty"` +// The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. +// +kubebuilder:validation:Optional +IPv4IpamPoolID *string `json:"ipv4IpamPoolId,omitempty" tf:"ipv4_ipam_pool_id,omitempty"` - // The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4_ipam_pool_id. - // +kubebuilder:validation:Optional - IPv4NetmaskLength *float64 `json:"ipv4NetmaskLength,omitempty" tf:"ipv4_netmask_length,omitempty"` +// The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4_ipam_pool_id. +// +kubebuilder:validation:Optional +IPv4NetmaskLength *float64 `json:"ipv4NetmaskLength,omitempty" tf:"ipv4_netmask_length,omitempty"` - // IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using ipv6_netmask_length. - // +kubebuilder:validation:Optional - IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` +// IPv6 CIDR block to request from an IPAM Pool. Can be set explicitly or derived from IPAM using ipv6_netmask_length. +// +kubebuilder:validation:Optional +IPv6CidrBlock *string `json:"ipv6CidrBlock,omitempty" tf:"ipv6_cidr_block,omitempty"` - // By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones. - // +kubebuilder:validation:Optional - IPv6CidrBlockNetworkBorderGroup *string `json:"ipv6CidrBlockNetworkBorderGroup,omitempty" tf:"ipv6_cidr_block_network_border_group,omitempty"` +// By default when an IPv6 CIDR is assigned to a VPC a default ipv6_cidr_block_network_border_group will be set to the region of the VPC. This can be changed to restrict advertisement of public addresses to specific Network Border Groups such as LocalZones. +// +kubebuilder:validation:Optional +IPv6CidrBlockNetworkBorderGroup *string `json:"ipv6CidrBlockNetworkBorderGroup,omitempty" tf:"ipv6_cidr_block_network_border_group,omitempty"` - // IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. - // +kubebuilder:validation:Optional - IPv6IpamPoolID *string `json:"ipv6IpamPoolId,omitempty" tf:"ipv6_ipam_pool_id,omitempty"` +// IPAM Pool ID for a IPv6 pool. Conflicts with assign_generated_ipv6_cidr_block. +// +kubebuilder:validation:Optional +IPv6IpamPoolID *string `json:"ipv6IpamPoolId,omitempty" tf:"ipv6_ipam_pool_id,omitempty"` - // Netmask length to request from IPAM Pool. Conflicts with ipv6_cidr_block. This can be omitted if IPAM pool as a allocation_default_netmask_length set. Valid values: 56. - // +kubebuilder:validation:Optional - IPv6NetmaskLength *float64 `json:"ipv6NetmaskLength,omitempty" tf:"ipv6_netmask_length,omitempty"` +// Netmask length to request from IPAM Pool. Conflicts with ipv6_cidr_block. This can be omitted if IPAM pool as a allocation_default_netmask_length set. Valid values: 56. +// +kubebuilder:validation:Optional +IPv6NetmaskLength *float64 `json:"ipv6NetmaskLength,omitempty" tf:"ipv6_netmask_length,omitempty"` - // A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. - // +kubebuilder:validation:Optional - InstanceTenancy *string `json:"instanceTenancy,omitempty" tf:"instance_tenancy,omitempty"` +// A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. +// +kubebuilder:validation:Optional +InstanceTenancy *string `json:"instanceTenancy,omitempty" tf:"instance_tenancy,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // VPCSpec defines the desired state of VPC type VPCSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider VPCParameters `json:"forProvider"` + ForProvider VPCParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -214,13 +223,13 @@ type VPCSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider VPCInitParameters `json:"initProvider,omitempty"` + InitProvider VPCInitParameters `json:"initProvider,omitempty"` } // VPCStatus defines the observed state of VPC. type VPCStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider VPCObservation `json:"atProvider,omitempty"` + AtProvider VPCObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -235,9 +244,9 @@ type VPCStatus struct { type VPC struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec VPCSpec `json:"spec"` - Status VPCStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec VPCSpec `json:"spec"` + Status VPCStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_vpcendpoint_types.go b/apis/ec2/v1alpha1/zz_vpcendpoint_types.go index 2d9adb1..2c83e95 100755 --- a/apis/ec2/v1alpha1/zz_vpcendpoint_types.go +++ b/apis/ec2/v1alpha1/zz_vpcendpoint_types.go @@ -15,244 +15,265 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type DNSEntryInitParameters struct { + } + type DNSEntryObservation struct { - // The DNS name. - DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` - // The ID of the private hosted zone. - HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` +// The DNS name. +DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + +// The ID of the private hosted zone. +HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` } + type DNSEntryParameters struct { + } + type DNSOptionsInitParameters struct { - // The DNS records created for the endpoint. Valid values are ipv4, dualstack, service-defined, and ipv6. - DNSRecordIPType *string `json:"dnsRecordIpType,omitempty" tf:"dns_record_ip_type,omitempty"` + +// The DNS records created for the endpoint. Valid values are ipv4, dualstack, service-defined, and ipv6. +DNSRecordIPType *string `json:"dnsRecordIpType,omitempty" tf:"dns_record_ip_type,omitempty"` } + type DNSOptionsObservation struct { - // The DNS records created for the endpoint. Valid values are ipv4, dualstack, service-defined, and ipv6. - DNSRecordIPType *string `json:"dnsRecordIpType,omitempty" tf:"dns_record_ip_type,omitempty"` + +// The DNS records created for the endpoint. Valid values are ipv4, dualstack, service-defined, and ipv6. +DNSRecordIPType *string `json:"dnsRecordIpType,omitempty" tf:"dns_record_ip_type,omitempty"` } + type DNSOptionsParameters struct { - // The DNS records created for the endpoint. Valid values are ipv4, dualstack, service-defined, and ipv6. - // +kubebuilder:validation:Optional - DNSRecordIPType *string `json:"dnsRecordIpType,omitempty" tf:"dns_record_ip_type,omitempty"` + +// The DNS records created for the endpoint. Valid values are ipv4, dualstack, service-defined, and ipv6. +// +kubebuilder:validation:Optional +DNSRecordIPType *string `json:"dnsRecordIpType,omitempty" tf:"dns_record_ip_type,omitempty"` } + type VPCEndpointInitParameters struct { - // Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account). - AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - // The DNS options for the endpoint. See dns_options below. - DNSOptions []DNSOptionsInitParameters `json:"dnsOptions,omitempty" tf:"dns_options,omitempty"` +// Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account). +AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - // The IP address type for the endpoint. Valid values are ipv4, dualstack, and ipv6. - IPAddressType *string `json:"ipAddressType,omitempty" tf:"ip_address_type,omitempty"` +// The DNS options for the endpoint. See dns_options below. +DNSOptions []DNSOptionsInitParameters `json:"dnsOptions,omitempty" tf:"dns_options,omitempty"` - // A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All Gateway and some Interface endpoints support policies - see the relevant AWS documentation for more details. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// The IP address type for the endpoint. Valid values are ipv4, dualstack, and ipv6. +IPAddressType *string `json:"ipAddressType,omitempty" tf:"ip_address_type,omitempty"` - // Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. - // Defaults to false. - PrivateDNSEnabled *bool `json:"privateDnsEnabled,omitempty" tf:"private_dns_enabled,omitempty"` +// A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All Gateway and some Interface endpoints support policies - see the relevant AWS documentation for more details. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // One or more route table IDs. Applicable for endpoints of type Gateway. - RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` +// Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. +// Defaults to false. +PrivateDNSEnabled *bool `json:"privateDnsEnabled,omitempty" tf:"private_dns_enabled,omitempty"` - // The service name. For AWS services the service name is usually in the form com.amazonaws.. (the SageMaker Notebook service is an exception to this rule, the service name is in the form aws.sagemaker..notebook). - ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +// One or more route table IDs. Applicable for endpoints of type Gateway. +RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The service name. For AWS services the service name is usually in the form com.amazonaws.. (the SageMaker Notebook service is an exception to this rule, the service name is in the form aws.sagemaker..notebook). +ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The VPC endpoint type, Gateway, GatewayLoadBalancer, or Interface. Defaults to Gateway. - VPCEndpointType *string `json:"vpcEndpointType,omitempty" tf:"vpc_endpoint_type,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The VPC endpoint type, Gateway, GatewayLoadBalancer, or Interface. Defaults to Gateway. +VPCEndpointType *string `json:"vpcEndpointType,omitempty" tf:"vpc_endpoint_type,omitempty"` } + type VPCEndpointObservation struct { - // The Amazon Resource Name (ARN) of the VPC endpoint. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account). - AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` +// The Amazon Resource Name (ARN) of the VPC endpoint. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account). +AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - // The list of CIDR blocks for the exposed AWS service. Applicable for endpoints of type Gateway. - CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` +// The list of CIDR blocks for the exposed AWS service. Applicable for endpoints of type Gateway. +CidrBlocks []*string `json:"cidrBlocks,omitempty" tf:"cidr_blocks,omitempty"` - // The DNS entries for the VPC Endpoint. Applicable for endpoints of type Interface. DNS blocks are documented below. - DNSEntry []DNSEntryObservation `json:"dnsEntry,omitempty" tf:"dns_entry,omitempty"` +// The DNS entries for the VPC Endpoint. Applicable for endpoints of type Interface. DNS blocks are documented below. +DNSEntry []DNSEntryObservation `json:"dnsEntry,omitempty" tf:"dns_entry,omitempty"` - // The DNS options for the endpoint. See dns_options below. - DNSOptions []DNSOptionsObservation `json:"dnsOptions,omitempty" tf:"dns_options,omitempty"` +// The DNS options for the endpoint. See dns_options below. +DNSOptions []DNSOptionsObservation `json:"dnsOptions,omitempty" tf:"dns_options,omitempty"` - // The ID of the VPC endpoint. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ID of the VPC endpoint. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The IP address type for the endpoint. Valid values are ipv4, dualstack, and ipv6. - IPAddressType *string `json:"ipAddressType,omitempty" tf:"ip_address_type,omitempty"` +// The IP address type for the endpoint. Valid values are ipv4, dualstack, and ipv6. +IPAddressType *string `json:"ipAddressType,omitempty" tf:"ip_address_type,omitempty"` - // One or more network interfaces for the VPC Endpoint. Applicable for endpoints of type Interface. - NetworkInterfaceIds []*string `json:"networkInterfaceIds,omitempty" tf:"network_interface_ids,omitempty"` +// One or more network interfaces for the VPC Endpoint. Applicable for endpoints of type Interface. +NetworkInterfaceIds []*string `json:"networkInterfaceIds,omitempty" tf:"network_interface_ids,omitempty"` - // The ID of the AWS account that owns the VPC endpoint. - OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` +// The ID of the AWS account that owns the VPC endpoint. +OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` - // A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All Gateway and some Interface endpoints support policies - see the relevant AWS documentation for more details. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All Gateway and some Interface endpoints support policies - see the relevant AWS documentation for more details. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // The prefix list ID of the exposed AWS service. Applicable for endpoints of type Gateway. - PrefixListID *string `json:"prefixListId,omitempty" tf:"prefix_list_id,omitempty"` +// The prefix list ID of the exposed AWS service. Applicable for endpoints of type Gateway. +PrefixListID *string `json:"prefixListId,omitempty" tf:"prefix_list_id,omitempty"` - // Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. - // Defaults to false. - PrivateDNSEnabled *bool `json:"privateDnsEnabled,omitempty" tf:"private_dns_enabled,omitempty"` +// Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. +// Defaults to false. +PrivateDNSEnabled *bool `json:"privateDnsEnabled,omitempty" tf:"private_dns_enabled,omitempty"` - // Whether or not the VPC Endpoint is being managed by its service - true or false. - RequesterManaged *bool `json:"requesterManaged,omitempty" tf:"requester_managed,omitempty"` +// Whether or not the VPC Endpoint is being managed by its service - true or false. +RequesterManaged *bool `json:"requesterManaged,omitempty" tf:"requester_managed,omitempty"` - // One or more route table IDs. Applicable for endpoints of type Gateway. - RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` +// One or more route table IDs. Applicable for endpoints of type Gateway. +RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` - // The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type Interface. - // If no security groups are specified, the VPC's default security group is associated with the endpoint. - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +// The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type Interface. +// If no security groups are specified, the VPC's default security group is associated with the endpoint. +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // The service name. For AWS services the service name is usually in the form com.amazonaws.. (the SageMaker Notebook service is an exception to this rule, the service name is in the form aws.sagemaker..notebook). - ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +// The service name. For AWS services the service name is usually in the form com.amazonaws.. (the SageMaker Notebook service is an exception to this rule, the service name is in the form aws.sagemaker..notebook). +ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` - // The state of the VPC endpoint. - State *string `json:"state,omitempty" tf:"state,omitempty"` +// The state of the VPC endpoint. +State *string `json:"state,omitempty" tf:"state,omitempty"` - // The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type GatewayLoadBalancer and Interface. - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type GatewayLoadBalancer and Interface. +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The VPC endpoint type, Gateway, GatewayLoadBalancer, or Interface. Defaults to Gateway. - VPCEndpointType *string `json:"vpcEndpointType,omitempty" tf:"vpc_endpoint_type,omitempty"` +// The VPC endpoint type, Gateway, GatewayLoadBalancer, or Interface. Defaults to Gateway. +VPCEndpointType *string `json:"vpcEndpointType,omitempty" tf:"vpc_endpoint_type,omitempty"` - // The ID of the VPC in which the endpoint will be used. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The ID of the VPC in which the endpoint will be used. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type VPCEndpointParameters struct { - // Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account). - // +kubebuilder:validation:Optional - AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - - // The DNS options for the endpoint. See dns_options below. - // +kubebuilder:validation:Optional - DNSOptions []DNSOptionsParameters `json:"dnsOptions,omitempty" tf:"dns_options,omitempty"` - - // The IP address type for the endpoint. Valid values are ipv4, dualstack, and ipv6. - // +kubebuilder:validation:Optional - IPAddressType *string `json:"ipAddressType,omitempty" tf:"ip_address_type,omitempty"` - - // A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All Gateway and some Interface endpoints support policies - see the relevant AWS documentation for more details. - // +kubebuilder:validation:Optional - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - - // Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. - // Defaults to false. - // +kubebuilder:validation:Optional - PrivateDNSEnabled *bool `json:"privateDnsEnabled,omitempty" tf:"private_dns_enabled,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // One or more route table IDs. Applicable for endpoints of type Gateway. - // +kubebuilder:validation:Optional - RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` - - // References to SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` - - // The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type Interface. - // If no security groups are specified, the VPC's default security group is associated with the endpoint. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector - // +kubebuilder:validation:Optional - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - - // The service name. For AWS services the service name is usually in the form com.amazonaws.. (the SageMaker Notebook service is an exception to this rule, the service name is in the form aws.sagemaker..notebook). - // +kubebuilder:validation:Optional - ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` - - // References to Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` - - // Selector for a list of Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` - - // The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type GatewayLoadBalancer and Interface. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet - // +crossplane:generate:reference:refFieldName=SubnetIDRefs - // +crossplane:generate:reference:selectorFieldName=SubnetIDSelector - // +kubebuilder:validation:Optional - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // The VPC endpoint type, Gateway, GatewayLoadBalancer, or Interface. Defaults to Gateway. - // +kubebuilder:validation:Optional - VPCEndpointType *string `json:"vpcEndpointType,omitempty" tf:"vpc_endpoint_type,omitempty"` - - // The ID of the VPC in which the endpoint will be used. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC - // +kubebuilder:validation:Optional - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` - - // Reference to a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` - - // Selector for a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` + +// Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account). +// +kubebuilder:validation:Optional +AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` + +// The DNS options for the endpoint. See dns_options below. +// +kubebuilder:validation:Optional +DNSOptions []DNSOptionsParameters `json:"dnsOptions,omitempty" tf:"dns_options,omitempty"` + +// The IP address type for the endpoint. Valid values are ipv4, dualstack, and ipv6. +// +kubebuilder:validation:Optional +IPAddressType *string `json:"ipAddressType,omitempty" tf:"ip_address_type,omitempty"` + +// A policy to attach to the endpoint that controls access to the service. This is a JSON formatted string. Defaults to full access. All Gateway and some Interface endpoints support policies - see the relevant AWS documentation for more details. +// +kubebuilder:validation:Optional +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + +// Whether or not to associate a private hosted zone with the specified VPC. Applicable for endpoints of type Interface. +// Defaults to false. +// +kubebuilder:validation:Optional +PrivateDNSEnabled *bool `json:"privateDnsEnabled,omitempty" tf:"private_dns_enabled,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// One or more route table IDs. Applicable for endpoints of type Gateway. +// +kubebuilder:validation:Optional +RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` + +// References to SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` + +// The ID of one or more security groups to associate with the network interface. Applicable for endpoints of type Interface. +// If no security groups are specified, the VPC's default security group is associated with the endpoint. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector +// +kubebuilder:validation:Optional +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + +// The service name. For AWS services the service name is usually in the form com.amazonaws.. (the SageMaker Notebook service is an exception to this rule, the service name is in the form aws.sagemaker..notebook). +// +kubebuilder:validation:Optional +ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + +// References to Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` + +// Selector for a list of Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + +// The ID of one or more subnets in which to create a network interface for the endpoint. Applicable for endpoints of type GatewayLoadBalancer and Interface. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet +// +crossplane:generate:reference:refFieldName=SubnetIDRefs +// +crossplane:generate:reference:selectorFieldName=SubnetIDSelector +// +kubebuilder:validation:Optional +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The VPC endpoint type, Gateway, GatewayLoadBalancer, or Interface. Defaults to Gateway. +// +kubebuilder:validation:Optional +VPCEndpointType *string `json:"vpcEndpointType,omitempty" tf:"vpc_endpoint_type,omitempty"` + +// The ID of the VPC in which the endpoint will be used. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC +// +kubebuilder:validation:Optional +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + +// Reference to a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` + +// Selector for a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` } // VPCEndpointSpec defines the desired state of VPCEndpoint type VPCEndpointSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider VPCEndpointParameters `json:"forProvider"` + ForProvider VPCEndpointParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -263,13 +284,13 @@ type VPCEndpointSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider VPCEndpointInitParameters `json:"initProvider,omitempty"` + InitProvider VPCEndpointInitParameters `json:"initProvider,omitempty"` } // VPCEndpointStatus defines the observed state of VPCEndpoint. type VPCEndpointStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider VPCEndpointObservation `json:"atProvider,omitempty"` + AtProvider VPCEndpointObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -284,10 +305,10 @@ type VPCEndpointStatus struct { type VPCEndpoint struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" - Spec VPCEndpointSpec `json:"spec"` - Status VPCEndpointStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + Spec VPCEndpointSpec `json:"spec"` + Status VPCEndpointStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/ec2/v1alpha1/zz_vpcpeeringconnection_types.go b/apis/ec2/v1alpha1/zz_vpcpeeringconnection_types.go index 1519511..708a4c0 100755 --- a/apis/ec2/v1alpha1/zz_vpcpeeringconnection_types.go +++ b/apis/ec2/v1alpha1/zz_vpcpeeringconnection_types.go @@ -15,191 +15,212 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type AccepterInitParameters struct { - // Allow a local VPC to resolve public DNS hostnames to - // private IP addresses when queried from instances in the peer VPC. - AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` + +// Allow a local VPC to resolve public DNS hostnames to +// private IP addresses when queried from instances in the peer VPC. +AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` } + type AccepterObservation struct { - // Allow a local VPC to resolve public DNS hostnames to - // private IP addresses when queried from instances in the peer VPC. - AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` + +// Allow a local VPC to resolve public DNS hostnames to +// private IP addresses when queried from instances in the peer VPC. +AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` } + type AccepterParameters struct { - // Allow a local VPC to resolve public DNS hostnames to - // private IP addresses when queried from instances in the peer VPC. - // +kubebuilder:validation:Optional - AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` + +// Allow a local VPC to resolve public DNS hostnames to +// private IP addresses when queried from instances in the peer VPC. +// +kubebuilder:validation:Optional +AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` } + type RequesterInitParameters struct { - // Allow a local VPC to resolve public DNS hostnames to - // private IP addresses when queried from instances in the peer VPC. - AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` + +// Allow a local VPC to resolve public DNS hostnames to +// private IP addresses when queried from instances in the peer VPC. +AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` } + type RequesterObservation struct { - // Allow a local VPC to resolve public DNS hostnames to - // private IP addresses when queried from instances in the peer VPC. - AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` + +// Allow a local VPC to resolve public DNS hostnames to +// private IP addresses when queried from instances in the peer VPC. +AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` } + type RequesterParameters struct { - // Allow a local VPC to resolve public DNS hostnames to - // private IP addresses when queried from instances in the peer VPC. - // +kubebuilder:validation:Optional - AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` + +// Allow a local VPC to resolve public DNS hostnames to +// private IP addresses when queried from instances in the peer VPC. +// +kubebuilder:validation:Optional +AllowRemoteVPCDNSResolution *bool `json:"allowRemoteVpcDnsResolution,omitempty" tf:"allow_remote_vpc_dns_resolution,omitempty"` } + type VPCPeeringConnectionInitParameters struct { - // An optional configuration block that allows for VPC Peering Connection options to be set for the VPC that accepts - // the peering connection (a maximum of one). - Accepter []AccepterInitParameters `json:"accepter,omitempty" tf:"accepter,omitempty"` - // Accept the peering (both VPCs need to be in the same AWS account and region). - AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` +// An optional configuration block that allows for VPC Peering Connection options to be set for the VPC that accepts +// the peering connection (a maximum of one). +Accepter []AccepterInitParameters `json:"accepter,omitempty" tf:"accepter,omitempty"` - // The AWS account ID of the owner of the peer VPC. - // Defaults to the account ID the AWS provider is currently connected to. - PeerOwnerID *string `json:"peerOwnerId,omitempty" tf:"peer_owner_id,omitempty"` +// Accept the peering (both VPCs need to be in the same AWS account and region). +AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - // The region of the accepter VPC of the VPC Peering Connection. auto_accept must be false, - // and use the aws_vpc_peering_connection_accepter to manage the accepter side. - PeerRegion *string `json:"peerRegion,omitempty" tf:"peer_region,omitempty"` +// The AWS account ID of the owner of the peer VPC. +// Defaults to the account ID the AWS provider is currently connected to. +PeerOwnerID *string `json:"peerOwnerId,omitempty" tf:"peer_owner_id,omitempty"` - // A optional configuration block that allows for VPC Peering Connection options to be set for the VPC that requests - // the peering connection (a maximum of one). - Requester []RequesterInitParameters `json:"requester,omitempty" tf:"requester,omitempty"` +// The region of the accepter VPC of the VPC Peering Connection. auto_accept must be false, +// and use the aws_vpc_peering_connection_accepter to manage the accepter side. +PeerRegion *string `json:"peerRegion,omitempty" tf:"peer_region,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A optional configuration block that allows for VPC Peering Connection options to be set for the VPC that requests +// the peering connection (a maximum of one). +Requester []RequesterInitParameters `json:"requester,omitempty" tf:"requester,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type VPCPeeringConnectionObservation struct { - // The status of the VPC Peering Connection request. - AcceptStatus *string `json:"acceptStatus,omitempty" tf:"accept_status,omitempty"` - // An optional configuration block that allows for VPC Peering Connection options to be set for the VPC that accepts - // the peering connection (a maximum of one). - Accepter []AccepterObservation `json:"accepter,omitempty" tf:"accepter,omitempty"` +// The status of the VPC Peering Connection request. +AcceptStatus *string `json:"acceptStatus,omitempty" tf:"accept_status,omitempty"` + +// An optional configuration block that allows for VPC Peering Connection options to be set for the VPC that accepts +// the peering connection (a maximum of one). +Accepter []AccepterObservation `json:"accepter,omitempty" tf:"accepter,omitempty"` - // Accept the peering (both VPCs need to be in the same AWS account and region). - AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` +// Accept the peering (both VPCs need to be in the same AWS account and region). +AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - // The ID of the VPC Peering Connection. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ID of the VPC Peering Connection. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The AWS account ID of the owner of the peer VPC. - // Defaults to the account ID the AWS provider is currently connected to. - PeerOwnerID *string `json:"peerOwnerId,omitempty" tf:"peer_owner_id,omitempty"` +// The AWS account ID of the owner of the peer VPC. +// Defaults to the account ID the AWS provider is currently connected to. +PeerOwnerID *string `json:"peerOwnerId,omitempty" tf:"peer_owner_id,omitempty"` - // The region of the accepter VPC of the VPC Peering Connection. auto_accept must be false, - // and use the aws_vpc_peering_connection_accepter to manage the accepter side. - PeerRegion *string `json:"peerRegion,omitempty" tf:"peer_region,omitempty"` +// The region of the accepter VPC of the VPC Peering Connection. auto_accept must be false, +// and use the aws_vpc_peering_connection_accepter to manage the accepter side. +PeerRegion *string `json:"peerRegion,omitempty" tf:"peer_region,omitempty"` - // The ID of the VPC with which you are creating the VPC Peering Connection. - PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` +// The ID of the VPC with which you are creating the VPC Peering Connection. +PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` - // A optional configuration block that allows for VPC Peering Connection options to be set for the VPC that requests - // the peering connection (a maximum of one). - Requester []RequesterObservation `json:"requester,omitempty" tf:"requester,omitempty"` +// A optional configuration block that allows for VPC Peering Connection options to be set for the VPC that requests +// the peering connection (a maximum of one). +Requester []RequesterObservation `json:"requester,omitempty" tf:"requester,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The ID of the requester VPC. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The ID of the requester VPC. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type VPCPeeringConnectionParameters struct { - // An optional configuration block that allows for VPC Peering Connection options to be set for the VPC that accepts - // the peering connection (a maximum of one). - // +kubebuilder:validation:Optional - Accepter []AccepterParameters `json:"accepter,omitempty" tf:"accepter,omitempty"` - - // Accept the peering (both VPCs need to be in the same AWS account and region). - // +kubebuilder:validation:Optional - AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` - - // The AWS account ID of the owner of the peer VPC. - // Defaults to the account ID the AWS provider is currently connected to. - // +kubebuilder:validation:Optional - PeerOwnerID *string `json:"peerOwnerId,omitempty" tf:"peer_owner_id,omitempty"` - - // The region of the accepter VPC of the VPC Peering Connection. auto_accept must be false, - // and use the aws_vpc_peering_connection_accepter to manage the accepter side. - // +kubebuilder:validation:Optional - PeerRegion *string `json:"peerRegion,omitempty" tf:"peer_region,omitempty"` - - // The ID of the VPC with which you are creating the VPC Peering Connection. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` - - // Reference to a VPC in ec2 to populate peerVpcId. - // +kubebuilder:validation:Optional - PeerVPCIDRef *v1.Reference `json:"peerVpcIdRef,omitempty" tf:"-"` - - // Selector for a VPC in ec2 to populate peerVpcId. - // +kubebuilder:validation:Optional - PeerVPCIDSelector *v1.Selector `json:"peerVpcIdSelector,omitempty" tf:"-"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // A optional configuration block that allows for VPC Peering Connection options to be set for the VPC that requests - // the peering connection (a maximum of one). - // +kubebuilder:validation:Optional - Requester []RequesterParameters `json:"requester,omitempty" tf:"requester,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // The ID of the requester VPC. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC - // +kubebuilder:validation:Optional - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` - - // Reference to a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` - - // Selector for a VPC in ec2 to populate vpcId. - // +kubebuilder:validation:Optional - VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` + +// An optional configuration block that allows for VPC Peering Connection options to be set for the VPC that accepts +// the peering connection (a maximum of one). +// +kubebuilder:validation:Optional +Accepter []AccepterParameters `json:"accepter,omitempty" tf:"accepter,omitempty"` + +// Accept the peering (both VPCs need to be in the same AWS account and region). +// +kubebuilder:validation:Optional +AutoAccept *bool `json:"autoAccept,omitempty" tf:"auto_accept,omitempty"` + +// The AWS account ID of the owner of the peer VPC. +// Defaults to the account ID the AWS provider is currently connected to. +// +kubebuilder:validation:Optional +PeerOwnerID *string `json:"peerOwnerId,omitempty" tf:"peer_owner_id,omitempty"` + +// The region of the accepter VPC of the VPC Peering Connection. auto_accept must be false, +// and use the aws_vpc_peering_connection_accepter to manage the accepter side. +// +kubebuilder:validation:Optional +PeerRegion *string `json:"peerRegion,omitempty" tf:"peer_region,omitempty"` + +// The ID of the VPC with which you are creating the VPC Peering Connection. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` + +// Reference to a VPC in ec2 to populate peerVpcId. +// +kubebuilder:validation:Optional +PeerVPCIDRef *v1.Reference `json:"peerVpcIdRef,omitempty" tf:"-"` + +// Selector for a VPC in ec2 to populate peerVpcId. +// +kubebuilder:validation:Optional +PeerVPCIDSelector *v1.Selector `json:"peerVpcIdSelector,omitempty" tf:"-"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A optional configuration block that allows for VPC Peering Connection options to be set for the VPC that requests +// the peering connection (a maximum of one). +// +kubebuilder:validation:Optional +Requester []RequesterParameters `json:"requester,omitempty" tf:"requester,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The ID of the requester VPC. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.VPC +// +kubebuilder:validation:Optional +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + +// Reference to a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` + +// Selector for a VPC in ec2 to populate vpcId. +// +kubebuilder:validation:Optional +VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` } // VPCPeeringConnectionSpec defines the desired state of VPCPeeringConnection type VPCPeeringConnectionSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider VPCPeeringConnectionParameters `json:"forProvider"` + ForProvider VPCPeeringConnectionParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -210,13 +231,13 @@ type VPCPeeringConnectionSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider VPCPeeringConnectionInitParameters `json:"initProvider,omitempty"` + InitProvider VPCPeeringConnectionInitParameters `json:"initProvider,omitempty"` } // VPCPeeringConnectionStatus defines the observed state of VPCPeeringConnection. type VPCPeeringConnectionStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider VPCPeeringConnectionObservation `json:"atProvider,omitempty"` + AtProvider VPCPeeringConnectionObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -231,9 +252,9 @@ type VPCPeeringConnectionStatus struct { type VPCPeeringConnection struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec VPCPeeringConnectionSpec `json:"spec"` - Status VPCPeeringConnectionStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec VPCPeeringConnectionSpec `json:"spec"` + Status VPCPeeringConnectionStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticache/v1alpha1/zz_cluster_types.go b/apis/elasticache/v1alpha1/zz_cluster_types.go index e8ef657..2789ab6 100755 --- a/apis/elasticache/v1alpha1/zz_cluster_types.go +++ b/apis/elasticache/v1alpha1/zz_cluster_types.go @@ -15,447 +15,469 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type CacheNodesInitParameters struct { + } + type CacheNodesObservation struct { - Address *string `json:"address,omitempty" tf:"address,omitempty"` - // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +Address *string `json:"address,omitempty" tf:"address,omitempty"` - // The ARN of the created ElastiCache Cluster. - OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` +// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // create the resource. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// The ARN of the created ElastiCache Cluster. +OutpostArn *string `json:"outpostArn,omitempty" tf:"outpost_arn,omitempty"` + +// create the resource. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` } + type CacheNodesParameters struct { + } + type ClusterInitParameters struct { - // Whether any database modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon ElastiCache Documentation for more information.. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type "redis" and if the engine version is 6 or higher. - // Defaults to true. - AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Whether any database modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon ElastiCache Documentation for more information.. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. +// Only supported for engine type "redis" and if the engine version is 6 or higher. +// Defaults to true. +AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are single-az or cross-az, default is single-az. If you want to choose cross-az, num_cache_nodes must be greater than 1. - AzMode *string `json:"azMode,omitempty" tf:"az_mode,omitempty"` +// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // – Name of the cache engine to be used for this cache cluster. Valid values are memcached or redis. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are single-az or cross-az, default is single-az. If you want to choose cross-az, num_cache_nodes must be greater than 1. +AzMode *string `json:"azMode,omitempty" tf:"az_mode,omitempty"` - // – Version number of the cache engine to be used. - // If not set, defaults to the latest version. - // See Describe Cache Engine Versions in the AWS Documentation for supported versions. - // When engine is redis and the version is 6 or higher, the major and minor version can be set, e.g., 6.2, - // or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. - // Otherwise, specify the full version desired, e.g., 5.0.6. - // The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// – Name of the cache engine to be used for this cache cluster. Valid values are memcached or redis. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Name of your final cluster snapshot. If omitted, no final snapshot will be made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// – Version number of the cache engine to be used. +// If not set, defaults to the latest version. +// See Describe Cache Engine Versions in the AWS Documentation for supported versions. +// When engine is redis and the version is 6 or higher, the major and minor version can be set, e.g., 6.2, +// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. +// Otherwise, specify the full version desired, e.g., 5.0.6. +// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The IP version to advertise in the discovery protocol. Valid values are ipv4 or ipv6. - IPDiscovery *string `json:"ipDiscovery,omitempty" tf:"ip_discovery,omitempty"` +// Name of your final cluster snapshot. If omitted, no final snapshot will be made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. - LogDeliveryConfiguration []LogDeliveryConfigurationInitParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` +// The IP version to advertise in the discovery protocol. Valid values are ipv4 or ipv6. +IPDiscovery *string `json:"ipDiscovery,omitempty" tf:"ip_discovery,omitempty"` - // ddd:hh24:mi (24H Clock UTC). - // The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. +LogDeliveryConfiguration []LogDeliveryConfigurationInitParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` - // The IP versions for cache cluster connections. IPv6 is supported with Redis engine 6.2 onword or Memcached version 1.6.6 for all Nitro system instances. Valid values are ipv4, ipv6 or dual_stack. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// ddd:hh24:mi (24H Clock UTC). +// The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // create the resource. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// The IP versions for cache cluster connections. IPv6 is supported with Redis engine 6.2 onword or Memcached version 1.6.6 for all Nitro system instances. Valid values are ipv4, ipv6 or dual_stack. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // east-1:012345678999:my_sns_topic. - NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` +// create the resource. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // – The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. - NumCacheNodes *float64 `json:"numCacheNodes,omitempty" tf:"num_cache_nodes,omitempty"` +// east-1:012345678999:my_sns_topic. +NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` - // Specify the outpost mode that will apply to the cache cluster creation. Valid values are "single-outpost" and "cross-outpost", however AWS currently only supports "single-outpost" mode. - OutpostMode *string `json:"outpostMode,omitempty" tf:"outpost_mode,omitempty"` +// – The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. +NumCacheNodes *float64 `json:"numCacheNodes,omitempty" tf:"num_cache_nodes,omitempty"` - // create the resource. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Specify the outpost mode that will apply to the cache cluster creation. Valid values are "single-outpost" and "cross-outpost", however AWS currently only supports "single-outpost" mode. +OutpostMode *string `json:"outpostMode,omitempty" tf:"outpost_mode,omitempty"` - // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of num_cache_nodes. If you want all the nodes in the same Availability Zone, use availability_zone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. - PreferredAvailabilityZones []*string `json:"preferredAvailabilityZones,omitempty" tf:"preferred_availability_zones,omitempty"` +// create the resource. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The outpost ARN in which the cache cluster will be created. - PreferredOutpostArn *string `json:"preferredOutpostArn,omitempty" tf:"preferred_outpost_arn,omitempty"` +// List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of num_cache_nodes. If you want all the nodes in the same Availability Zone, use availability_zone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. +PreferredAvailabilityZones []*string `json:"preferredAvailabilityZones,omitempty" tf:"preferred_availability_zones,omitempty"` - // element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing snapshot_arns forces a new resource. - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` +// The outpost ARN in which the cache cluster will be created. +PreferredOutpostArn *string `json:"preferredOutpostArn,omitempty" tf:"preferred_outpost_arn,omitempty"` - // Name of a snapshot from which to restore data into the new node group. Changing snapshot_name forces a new resource. - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` +// element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing snapshot_arns forces a new resource. +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// Name of a snapshot from which to restore data into the new node group. Changing snapshot_name forces a new resource. +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterObservation struct { - // Whether any database modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon ElastiCache Documentation for more information.. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // The ARN of the created ElastiCache Cluster. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Whether any database modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon ElastiCache Documentation for more information.. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// The ARN of the created ElastiCache Cluster. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type "redis" and if the engine version is 6 or higher. - // Defaults to true. - AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. +// Only supported for engine type "redis" and if the engine version is 6 or higher. +// Defaults to true. +AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are single-az or cross-az, default is single-az. If you want to choose cross-az, num_cache_nodes must be greater than 1. - AzMode *string `json:"azMode,omitempty" tf:"az_mode,omitempty"` +// Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are single-az or cross-az, default is single-az. If you want to choose cross-az, num_cache_nodes must be greater than 1. +AzMode *string `json:"azMode,omitempty" tf:"az_mode,omitempty"` - // List of node objects including id, address, port and availability_zone. - CacheNodes []CacheNodesObservation `json:"cacheNodes,omitempty" tf:"cache_nodes,omitempty"` +// List of node objects including id, address, port and availability_zone. +CacheNodes []CacheNodesObservation `json:"cacheNodes,omitempty" tf:"cache_nodes,omitempty"` - // (Memcached only) DNS name of the cache cluster without the port appended. - ClusterAddress *string `json:"clusterAddress,omitempty" tf:"cluster_address,omitempty"` +// (Memcached only) DNS name of the cache cluster without the port appended. +ClusterAddress *string `json:"clusterAddress,omitempty" tf:"cluster_address,omitempty"` - // (Memcached only) Configuration endpoint to allow host discovery. - ConfigurationEndpoint *string `json:"configurationEndpoint,omitempty" tf:"configuration_endpoint,omitempty"` +// (Memcached only) Configuration endpoint to allow host discovery. +ConfigurationEndpoint *string `json:"configurationEndpoint,omitempty" tf:"configuration_endpoint,omitempty"` - // – Name of the cache engine to be used for this cache cluster. Valid values are memcached or redis. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// – Name of the cache engine to be used for this cache cluster. Valid values are memcached or redis. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // – Version number of the cache engine to be used. - // If not set, defaults to the latest version. - // See Describe Cache Engine Versions in the AWS Documentation for supported versions. - // When engine is redis and the version is 6 or higher, the major and minor version can be set, e.g., 6.2, - // or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. - // Otherwise, specify the full version desired, e.g., 5.0.6. - // The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// – Version number of the cache engine to be used. +// If not set, defaults to the latest version. +// See Describe Cache Engine Versions in the AWS Documentation for supported versions. +// When engine is redis and the version is 6 or higher, the major and minor version can be set, e.g., 6.2, +// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. +// Otherwise, specify the full version desired, e.g., 5.0.6. +// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. - EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` +// Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. +EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` - // Name of your final cluster snapshot. If omitted, no final snapshot will be made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// Name of your final cluster snapshot. If omitted, no final snapshot will be made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The IP version to advertise in the discovery protocol. Valid values are ipv4 or ipv6. - IPDiscovery *string `json:"ipDiscovery,omitempty" tf:"ip_discovery,omitempty"` +// The IP version to advertise in the discovery protocol. Valid values are ipv4 or ipv6. +IPDiscovery *string `json:"ipDiscovery,omitempty" tf:"ip_discovery,omitempty"` - // Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. - LogDeliveryConfiguration []LogDeliveryConfigurationObservation `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` +// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. +LogDeliveryConfiguration []LogDeliveryConfigurationObservation `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` - // ddd:hh24:mi (24H Clock UTC). - // The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// ddd:hh24:mi (24H Clock UTC). +// The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // The IP versions for cache cluster connections. IPv6 is supported with Redis engine 6.2 onword or Memcached version 1.6.6 for all Nitro system instances. Valid values are ipv4, ipv6 or dual_stack. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// The IP versions for cache cluster connections. IPv6 is supported with Redis engine 6.2 onword or Memcached version 1.6.6 for all Nitro system instances. Valid values are ipv4, ipv6 or dual_stack. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // create the resource. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// create the resource. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // east-1:012345678999:my_sns_topic. - NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` +// east-1:012345678999:my_sns_topic. +NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` - // – The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. - NumCacheNodes *float64 `json:"numCacheNodes,omitempty" tf:"num_cache_nodes,omitempty"` +// – The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. +NumCacheNodes *float64 `json:"numCacheNodes,omitempty" tf:"num_cache_nodes,omitempty"` - // Specify the outpost mode that will apply to the cache cluster creation. Valid values are "single-outpost" and "cross-outpost", however AWS currently only supports "single-outpost" mode. - OutpostMode *string `json:"outpostMode,omitempty" tf:"outpost_mode,omitempty"` +// Specify the outpost mode that will apply to the cache cluster creation. Valid values are "single-outpost" and "cross-outpost", however AWS currently only supports "single-outpost" mode. +OutpostMode *string `json:"outpostMode,omitempty" tf:"outpost_mode,omitempty"` - // – The name of the parameter group to associate with this cache cluster. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// – The name of the parameter group to associate with this cache cluster. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // create the resource. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// create the resource. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of num_cache_nodes. If you want all the nodes in the same Availability Zone, use availability_zone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. - PreferredAvailabilityZones []*string `json:"preferredAvailabilityZones,omitempty" tf:"preferred_availability_zones,omitempty"` +// List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of num_cache_nodes. If you want all the nodes in the same Availability Zone, use availability_zone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. +PreferredAvailabilityZones []*string `json:"preferredAvailabilityZones,omitempty" tf:"preferred_availability_zones,omitempty"` - // The outpost ARN in which the cache cluster will be created. - PreferredOutpostArn *string `json:"preferredOutpostArn,omitempty" tf:"preferred_outpost_arn,omitempty"` +// The outpost ARN in which the cache cluster will be created. +PreferredOutpostArn *string `json:"preferredOutpostArn,omitempty" tf:"preferred_outpost_arn,omitempty"` - // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. - ReplicationGroupID *string `json:"replicationGroupId,omitempty" tf:"replication_group_id,omitempty"` +// ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. +ReplicationGroupID *string `json:"replicationGroupId,omitempty" tf:"replication_group_id,omitempty"` - // – One or more VPC security groups associated with the cache cluster - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +// – One or more VPC security groups associated with the cache cluster +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing snapshot_arns forces a new resource. - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` +// element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing snapshot_arns forces a new resource. +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - // Name of a snapshot from which to restore data into the new node group. Changing snapshot_name forces a new resource. - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` +// Name of a snapshot from which to restore data into the new node group. Changing snapshot_name forces a new resource. +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // create the resource. - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` +// create the resource. +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterParameters struct { - // Whether any database modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon ElastiCache Documentation for more information.. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - - // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type "redis" and if the engine version is 6 or higher. - // Defaults to true. - // +kubebuilder:validation:Optional - AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - - // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. - // +kubebuilder:validation:Optional - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - - // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are single-az or cross-az, default is single-az. If you want to choose cross-az, num_cache_nodes must be greater than 1. - // +kubebuilder:validation:Optional - AzMode *string `json:"azMode,omitempty" tf:"az_mode,omitempty"` - - // – Name of the cache engine to be used for this cache cluster. Valid values are memcached or redis. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // – Version number of the cache engine to be used. - // If not set, defaults to the latest version. - // See Describe Cache Engine Versions in the AWS Documentation for supported versions. - // When engine is redis and the version is 6 or higher, the major and minor version can be set, e.g., 6.2, - // or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. - // Otherwise, specify the full version desired, e.g., 5.0.6. - // The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - - // Name of your final cluster snapshot. If omitted, no final snapshot will be made. - // +kubebuilder:validation:Optional - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - - // The IP version to advertise in the discovery protocol. Valid values are ipv4 or ipv6. - // +kubebuilder:validation:Optional - IPDiscovery *string `json:"ipDiscovery,omitempty" tf:"ip_discovery,omitempty"` - - // Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. - // +kubebuilder:validation:Optional - LogDeliveryConfiguration []LogDeliveryConfigurationParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` - - // ddd:hh24:mi (24H Clock UTC). - // The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00. - // +kubebuilder:validation:Optional - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - - // The IP versions for cache cluster connections. IPv6 is supported with Redis engine 6.2 onword or Memcached version 1.6.6 for all Nitro system instances. Valid values are ipv4, ipv6 or dual_stack. - // +kubebuilder:validation:Optional - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - - // create the resource. - // +kubebuilder:validation:Optional - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - - // east-1:012345678999:my_sns_topic. - // +kubebuilder:validation:Optional - NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` - - // – The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. - // +kubebuilder:validation:Optional - NumCacheNodes *float64 `json:"numCacheNodes,omitempty" tf:"num_cache_nodes,omitempty"` - - // Specify the outpost mode that will apply to the cache cluster creation. Valid values are "single-outpost" and "cross-outpost", however AWS currently only supports "single-outpost" mode. - // +kubebuilder:validation:Optional - OutpostMode *string `json:"outpostMode,omitempty" tf:"outpost_mode,omitempty"` - - // – The name of the parameter group to associate with this cache cluster. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticache/v1alpha1.ParameterGroup - // +kubebuilder:validation:Optional - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - - // Reference to a ParameterGroup in elasticache to populate parameterGroupName. - // +kubebuilder:validation:Optional - ParameterGroupNameRef *v1.Reference `json:"parameterGroupNameRef,omitempty" tf:"-"` - - // Selector for a ParameterGroup in elasticache to populate parameterGroupName. - // +kubebuilder:validation:Optional - ParameterGroupNameSelector *v1.Selector `json:"parameterGroupNameSelector,omitempty" tf:"-"` - - // create the resource. - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of num_cache_nodes. If you want all the nodes in the same Availability Zone, use availability_zone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. - // +kubebuilder:validation:Optional - PreferredAvailabilityZones []*string `json:"preferredAvailabilityZones,omitempty" tf:"preferred_availability_zones,omitempty"` - - // The outpost ARN in which the cache cluster will be created. - // +kubebuilder:validation:Optional - PreferredOutpostArn *string `json:"preferredOutpostArn,omitempty" tf:"preferred_outpost_arn,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticache/v1alpha1.ReplicationGroup - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - ReplicationGroupID *string `json:"replicationGroupId,omitempty" tf:"replication_group_id,omitempty"` - - // Reference to a ReplicationGroup in elasticache to populate replicationGroupId. - // +kubebuilder:validation:Optional - ReplicationGroupIDRef *v1.Reference `json:"replicationGroupIdRef,omitempty" tf:"-"` - - // Selector for a ReplicationGroup in elasticache to populate replicationGroupId. - // +kubebuilder:validation:Optional - ReplicationGroupIDSelector *v1.Selector `json:"replicationGroupIdSelector,omitempty" tf:"-"` - - // References to SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` - - // – One or more VPC security groups associated with the cache cluster - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector - // +kubebuilder:validation:Optional - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - - // element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing snapshot_arns forces a new resource. - // +kubebuilder:validation:Optional - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - - // Name of a snapshot from which to restore data into the new node group. Changing snapshot_name forces a new resource. - // +kubebuilder:validation:Optional - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - - // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes - // +kubebuilder:validation:Optional - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - - // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 - // +kubebuilder:validation:Optional - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - - // create the resource. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticache/v1alpha1.SubnetGroup - // +kubebuilder:validation:Optional - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - - // Reference to a SubnetGroup in elasticache to populate subnetGroupName. - // +kubebuilder:validation:Optional - SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"` - - // Selector for a SubnetGroup in elasticache to populate subnetGroupName. - // +kubebuilder:validation:Optional - SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"` - - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Whether any database modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon ElastiCache Documentation for more information.. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. +// Only supported for engine type "redis" and if the engine version is 6 or higher. +// Defaults to true. +// +kubebuilder:validation:Optional +AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` + +// Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use preferred_availability_zones instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. +// +kubebuilder:validation:Optional +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + +// Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are single-az or cross-az, default is single-az. If you want to choose cross-az, num_cache_nodes must be greater than 1. +// +kubebuilder:validation:Optional +AzMode *string `json:"azMode,omitempty" tf:"az_mode,omitempty"` + +// – Name of the cache engine to be used for this cache cluster. Valid values are memcached or redis. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// – Version number of the cache engine to be used. +// If not set, defaults to the latest version. +// See Describe Cache Engine Versions in the AWS Documentation for supported versions. +// When engine is redis and the version is 6 or higher, the major and minor version can be set, e.g., 6.2, +// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. +// Otherwise, specify the full version desired, e.g., 5.0.6. +// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + +// Name of your final cluster snapshot. If omitted, no final snapshot will be made. +// +kubebuilder:validation:Optional +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` + +// The IP version to advertise in the discovery protocol. Valid values are ipv4 or ipv6. +// +kubebuilder:validation:Optional +IPDiscovery *string `json:"ipDiscovery,omitempty" tf:"ip_discovery,omitempty"` + +// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. +// +kubebuilder:validation:Optional +LogDeliveryConfiguration []LogDeliveryConfigurationParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` + +// ddd:hh24:mi (24H Clock UTC). +// The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00. +// +kubebuilder:validation:Optional +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` + +// The IP versions for cache cluster connections. IPv6 is supported with Redis engine 6.2 onword or Memcached version 1.6.6 for all Nitro system instances. Valid values are ipv4, ipv6 or dual_stack. +// +kubebuilder:validation:Optional +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + +// create the resource. +// +kubebuilder:validation:Optional +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` + +// east-1:012345678999:my_sns_topic. +// +kubebuilder:validation:Optional +NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` + +// – The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. +// +kubebuilder:validation:Optional +NumCacheNodes *float64 `json:"numCacheNodes,omitempty" tf:"num_cache_nodes,omitempty"` + +// Specify the outpost mode that will apply to the cache cluster creation. Valid values are "single-outpost" and "cross-outpost", however AWS currently only supports "single-outpost" mode. +// +kubebuilder:validation:Optional +OutpostMode *string `json:"outpostMode,omitempty" tf:"outpost_mode,omitempty"` + +// – The name of the parameter group to associate with this cache cluster. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticache/v1alpha1.ParameterGroup +// +kubebuilder:validation:Optional +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` + +// Reference to a ParameterGroup in elasticache to populate parameterGroupName. +// +kubebuilder:validation:Optional +ParameterGroupNameRef *v1.Reference `json:"parameterGroupNameRef,omitempty" tf:"-"` + +// Selector for a ParameterGroup in elasticache to populate parameterGroupName. +// +kubebuilder:validation:Optional +ParameterGroupNameSelector *v1.Selector `json:"parameterGroupNameSelector,omitempty" tf:"-"` + +// create the resource. +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of num_cache_nodes. If you want all the nodes in the same Availability Zone, use availability_zone instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. +// +kubebuilder:validation:Optional +PreferredAvailabilityZones []*string `json:"preferredAvailabilityZones,omitempty" tf:"preferred_availability_zones,omitempty"` + +// The outpost ARN in which the cache cluster will be created. +// +kubebuilder:validation:Optional +PreferredOutpostArn *string `json:"preferredOutpostArn,omitempty" tf:"preferred_outpost_arn,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticache/v1alpha1.ReplicationGroup +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +ReplicationGroupID *string `json:"replicationGroupId,omitempty" tf:"replication_group_id,omitempty"` + +// Reference to a ReplicationGroup in elasticache to populate replicationGroupId. +// +kubebuilder:validation:Optional +ReplicationGroupIDRef *v1.Reference `json:"replicationGroupIdRef,omitempty" tf:"-"` + +// Selector for a ReplicationGroup in elasticache to populate replicationGroupId. +// +kubebuilder:validation:Optional +ReplicationGroupIDSelector *v1.Selector `json:"replicationGroupIdSelector,omitempty" tf:"-"` + +// References to SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` + +// – One or more VPC security groups associated with the cache cluster +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector +// +kubebuilder:validation:Optional +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + +// element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing snapshot_arns forces a new resource. +// +kubebuilder:validation:Optional +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` + +// Name of a snapshot from which to restore data into the new node group. Changing snapshot_name forces a new resource. +// +kubebuilder:validation:Optional +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` + +// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes +// +kubebuilder:validation:Optional +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` + +// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 +// +kubebuilder:validation:Optional +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` + +// create the resource. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticache/v1alpha1.SubnetGroup +// +kubebuilder:validation:Optional +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` + +// Reference to a SubnetGroup in elasticache to populate subnetGroupName. +// +kubebuilder:validation:Optional +SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"` + +// Selector for a SubnetGroup in elasticache to populate subnetGroupName. +// +kubebuilder:validation:Optional +SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"` + +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type LogDeliveryConfigurationInitParameters struct { - // Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. - Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. - DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` +// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. +Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // Valid values are json or text - LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` +// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. +DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` - // Valid values are slow-log or engine-log. Max 1 of each. - LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` +// Valid values are json or text +LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` + +// Valid values are slow-log or engine-log. Max 1 of each. +LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` } + type LogDeliveryConfigurationObservation struct { - // Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. - Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. - DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` +// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. +Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + +// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. +DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` - // Valid values are json or text - LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` +// Valid values are json or text +LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` - // Valid values are slow-log or engine-log. Max 1 of each. - LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` +// Valid values are slow-log or engine-log. Max 1 of each. +LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` } + type LogDeliveryConfigurationParameters struct { - // Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. - // +kubebuilder:validation:Optional - Destination *string `json:"destination" tf:"destination,omitempty"` - // For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. - // +kubebuilder:validation:Optional - DestinationType *string `json:"destinationType" tf:"destination_type,omitempty"` +// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. +// +kubebuilder:validation:Optional +Destination *string `json:"destination" tf:"destination,omitempty"` + +// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. +// +kubebuilder:validation:Optional +DestinationType *string `json:"destinationType" tf:"destination_type,omitempty"` - // Valid values are json or text - // +kubebuilder:validation:Optional - LogFormat *string `json:"logFormat" tf:"log_format,omitempty"` +// Valid values are json or text +// +kubebuilder:validation:Optional +LogFormat *string `json:"logFormat" tf:"log_format,omitempty"` - // Valid values are slow-log or engine-log. Max 1 of each. - // +kubebuilder:validation:Optional - LogType *string `json:"logType" tf:"log_type,omitempty"` +// Valid values are slow-log or engine-log. Max 1 of each. +// +kubebuilder:validation:Optional +LogType *string `json:"logType" tf:"log_type,omitempty"` } // ClusterSpec defines the desired state of Cluster type ClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameters `json:"forProvider"` + ForProvider ClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -466,13 +488,13 @@ type ClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInitParameters `json:"initProvider,omitempty"` } // ClusterStatus defines the observed state of Cluster. type ClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterObservation `json:"atProvider,omitempty"` + AtProvider ClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -487,9 +509,9 @@ type ClusterStatus struct { type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSpec `json:"spec"` - Status ClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSpec `json:"spec"` + Status ClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticache/v1alpha1/zz_parametergroup_types.go b/apis/elasticache/v1alpha1/zz_parametergroup_types.go index 17a5545..5046fca 100755 --- a/apis/elasticache/v1alpha1/zz_parametergroup_types.go +++ b/apis/elasticache/v1alpha1/zz_parametergroup_types.go @@ -15,121 +15,136 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ParameterGroupInitParameters struct { - // The description of the ElastiCache parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the ElastiCache parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the ElastiCache parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The name of the ElastiCache parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// The family of the ElastiCache parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A list of ElastiCache parameters to apply. - Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The name of the ElastiCache parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of ElastiCache parameters to apply. +Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterGroupObservation struct { - // The AWS ARN associated with the parameter group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The description of the ElastiCache parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The AWS ARN associated with the parameter group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The family of the ElastiCache parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the ElastiCache parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The ElastiCache parameter group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The family of the ElastiCache parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // The name of the ElastiCache parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// The ElastiCache parameter group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A list of ElastiCache parameters to apply. - Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The name of the ElastiCache parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of ElastiCache parameters to apply. +Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterGroupParameters struct { - // The description of the ElastiCache parameter group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the ElastiCache parameter group. - // +kubebuilder:validation:Optional - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the ElastiCache parameter group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The name of the ElastiCache parameter group. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// The family of the ElastiCache parameter group. +// +kubebuilder:validation:Optional +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A list of ElastiCache parameters to apply. - // +kubebuilder:validation:Optional - Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The name of the ElastiCache parameter group. +// +kubebuilder:validation:Optional +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// A list of ElastiCache parameters to apply. +// +kubebuilder:validation:Optional +Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterInitParameters struct { - // The name of the ElastiCache parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // The value of the ElastiCache parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the ElastiCache parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the ElastiCache parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterObservation struct { - // The name of the ElastiCache parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // The value of the ElastiCache parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the ElastiCache parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the ElastiCache parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterParameters struct { - // The name of the ElastiCache parameter group. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` - // The value of the ElastiCache parameter. - // +kubebuilder:validation:Optional - Value *string `json:"value" tf:"value,omitempty"` +// The name of the ElastiCache parameter group. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` + +// The value of the ElastiCache parameter. +// +kubebuilder:validation:Optional +Value *string `json:"value" tf:"value,omitempty"` } // ParameterGroupSpec defines the desired state of ParameterGroup type ParameterGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ParameterGroupParameters `json:"forProvider"` + ForProvider ParameterGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -140,13 +155,13 @@ type ParameterGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ParameterGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ParameterGroupInitParameters `json:"initProvider,omitempty"` } // ParameterGroupStatus defines the observed state of ParameterGroup. type ParameterGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ParameterGroupObservation `json:"atProvider,omitempty"` + AtProvider ParameterGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -161,11 +176,11 @@ type ParameterGroupStatus struct { type ParameterGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ParameterGroupSpec `json:"spec"` - Status ParameterGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ParameterGroupSpec `json:"spec"` + Status ParameterGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticache/v1alpha1/zz_replicationgroup_types.go b/apis/elasticache/v1alpha1/zz_replicationgroup_types.go index da27716..899fbf9 100755 --- a/apis/elasticache/v1alpha1/zz_replicationgroup_types.go +++ b/apis/elasticache/v1alpha1/zz_replicationgroup_types.go @@ -15,480 +15,495 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ReplicationGroupInitParameters struct { - // Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Whether to enable encryption at rest. - AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"` +// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type "redis" and if the engine version is 6 or higher. - // Defaults to true. - AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Whether to enable encryption at rest. +AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"` - // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false. - AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"` +// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. +// Only supported for engine type "redis" and if the engine version is 6 or higher. +// Defaults to true. +AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. - DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"` +// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false. +AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"` - // created description for the replication group. Must not be empty. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. +DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"` - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// created description for the replication group. Must not be empty. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Version number of the cache engine to be used for the cache clusters in this replication group. - // If the version is 6 or higher, the major and minor version can be set, e.g., 6.2, - // or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. - // Otherwise, specify the full version desired, e.g., 5.0.6. - // The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// Version number of the cache engine to be used for the cache clusters in this replication group. +// If the version is 6 or higher, the major and minor version can be set, e.g., 6.2, +// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. +// Otherwise, specify the full version desired, e.g., 5.0.6. +// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set. - GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"` +// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. - LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationInitParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` +// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set. +GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"` - // ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00 - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. +LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationInitParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` - // Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. - MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"` +// ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00 +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. +MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"` - // east-1:012345678999:my_sns_topic - NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` +// Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // 00#. - NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"` +// east-1:012345678999:my_sns_topic +NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` - // Number of node groups (shards) for this Redis replication group. - // Changing this number will trigger a resizing operation before other settings modifications. - NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"` +// 00#. +NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"` - // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// Number of node groups (shards) for this Redis replication group. +// Changing this number will trigger a resizing operation before other settings modifications. +NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"` - // – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. - PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"` +// – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Number of replica nodes in each node group. - // Changing this number will trigger a resizing operation before other settings modifications. - // Valid values are 0 to 5. - ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"` +// List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. +PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"` - // List of cache security group names to associate with this replication group. - SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"` +// Number of replica nodes in each node group. +// Changing this number will trigger a resizing operation before other settings modifications. +// Valid values are 0 to 5. +ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"` - // – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas. - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` +// List of cache security group names to associate with this replication group. +SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"` - // Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` +// – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas. +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00 - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00 +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Whether to enable encryption in transit. - TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. - UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"` +// Whether to enable encryption in transit. +TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"` + +// User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. +UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"` } + type ReplicationGroupLogDeliveryConfigurationInitParameters struct { - // Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. - Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. - DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` +// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. +Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // Valid values are json or text - LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` +// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. +DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` - // Valid values are slow-log or engine-log. Max 1 of each. - LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` +// Valid values are json or text +LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` + +// Valid values are slow-log or engine-log. Max 1 of each. +LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` } + type ReplicationGroupLogDeliveryConfigurationObservation struct { - // Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. - Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. - DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` +// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. +Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` - // Valid values are json or text - LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` +// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. +DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` - // Valid values are slow-log or engine-log. Max 1 of each. - LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` +// Valid values are json or text +LogFormat *string `json:"logFormat,omitempty" tf:"log_format,omitempty"` + +// Valid values are slow-log or engine-log. Max 1 of each. +LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` } + type ReplicationGroupLogDeliveryConfigurationParameters struct { - // Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. - // +kubebuilder:validation:Optional - Destination *string `json:"destination" tf:"destination,omitempty"` - // For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. - // +kubebuilder:validation:Optional - DestinationType *string `json:"destinationType" tf:"destination_type,omitempty"` +// Name of either the CloudWatch Logs LogGroup or Kinesis Data Firehose resource. +// +kubebuilder:validation:Optional +Destination *string `json:"destination" tf:"destination,omitempty"` - // Valid values are json or text - // +kubebuilder:validation:Optional - LogFormat *string `json:"logFormat" tf:"log_format,omitempty"` +// For CloudWatch Logs use cloudwatch-logs or for Kinesis Data Firehose use kinesis-firehose. +// +kubebuilder:validation:Optional +DestinationType *string `json:"destinationType" tf:"destination_type,omitempty"` - // Valid values are slow-log or engine-log. Max 1 of each. - // +kubebuilder:validation:Optional - LogType *string `json:"logType" tf:"log_type,omitempty"` +// Valid values are json or text +// +kubebuilder:validation:Optional +LogFormat *string `json:"logFormat" tf:"log_format,omitempty"` + +// Valid values are slow-log or engine-log. Max 1 of each. +// +kubebuilder:validation:Optional +LogType *string `json:"logType" tf:"log_type,omitempty"` } + type ReplicationGroupObservation struct { - // Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // ARN of the created ElastiCache Replication Group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Whether to enable encryption at rest. - AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"` +// ARN of the created ElastiCache Replication Group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type "redis" and if the engine version is 6 or higher. - // Defaults to true. - AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Whether to enable encryption at rest. +AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"` - // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false. - AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"` +// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. +// Only supported for engine type "redis" and if the engine version is 6 or higher. +// Defaults to true. +AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // Indicates if cluster mode is enabled. - ClusterEnabled *bool `json:"clusterEnabled,omitempty" tf:"cluster_enabled,omitempty"` +// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false. +AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"` - // Address of the replication group configuration endpoint when cluster mode is enabled. - ConfigurationEndpointAddress *string `json:"configurationEndpointAddress,omitempty" tf:"configuration_endpoint_address,omitempty"` +// Indicates if cluster mode is enabled. +ClusterEnabled *bool `json:"clusterEnabled,omitempty" tf:"cluster_enabled,omitempty"` - // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. - DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"` +// Address of the replication group configuration endpoint when cluster mode is enabled. +ConfigurationEndpointAddress *string `json:"configurationEndpointAddress,omitempty" tf:"configuration_endpoint_address,omitempty"` - // created description for the replication group. Must not be empty. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. +DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"` - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// created description for the replication group. Must not be empty. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Version number of the cache engine to be used for the cache clusters in this replication group. - // If the version is 6 or higher, the major and minor version can be set, e.g., 6.2, - // or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. - // Otherwise, specify the full version desired, e.g., 5.0.6. - // The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. - EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` +// Version number of the cache engine to be used for the cache clusters in this replication group. +// If the version is 6 or higher, the major and minor version can be set, e.g., 6.2, +// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. +// Otherwise, specify the full version desired, e.g., 5.0.6. +// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. +EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` - // The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set. - GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"` +// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // ID of the ElastiCache Replication Group. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set. +GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"` - // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// ID of the ElastiCache Replication Group. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. - LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationObservation `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` +// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00 - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. +LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationObservation `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` - // Identifiers of all the nodes that are part of this replication group. - MemberClusters []*string `json:"memberClusters,omitempty" tf:"member_clusters,omitempty"` +// ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00 +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. - MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"` +// Identifiers of all the nodes that are part of this replication group. +MemberClusters []*string `json:"memberClusters,omitempty" tf:"member_clusters,omitempty"` - // Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. +MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"` - // east-1:012345678999:my_sns_topic - NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` +// Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // 00#. - NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"` +// east-1:012345678999:my_sns_topic +NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` - // Number of node groups (shards) for this Redis replication group. - // Changing this number will trigger a resizing operation before other settings modifications. - NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"` +// 00#. +NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"` - // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// Number of node groups (shards) for this Redis replication group. +// Changing this number will trigger a resizing operation before other settings modifications. +NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"` - // – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. - PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"` +// – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // (Redis only) Address of the endpoint for the primary node in the replication group, if the cluster mode is disabled. - PrimaryEndpointAddress *string `json:"primaryEndpointAddress,omitempty" tf:"primary_endpoint_address,omitempty"` +// List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. +PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"` - // (Redis only) Address of the endpoint for the reader node in the replication group, if the cluster mode is disabled. - ReaderEndpointAddress *string `json:"readerEndpointAddress,omitempty" tf:"reader_endpoint_address,omitempty"` +// (Redis only) Address of the endpoint for the primary node in the replication group, if the cluster mode is disabled. +PrimaryEndpointAddress *string `json:"primaryEndpointAddress,omitempty" tf:"primary_endpoint_address,omitempty"` - // Number of replica nodes in each node group. - // Changing this number will trigger a resizing operation before other settings modifications. - // Valid values are 0 to 5. - ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"` +// (Redis only) Address of the endpoint for the reader node in the replication group, if the cluster mode is disabled. +ReaderEndpointAddress *string `json:"readerEndpointAddress,omitempty" tf:"reader_endpoint_address,omitempty"` - // One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +// Number of replica nodes in each node group. +// Changing this number will trigger a resizing operation before other settings modifications. +// Valid values are 0 to 5. +ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"` - // List of cache security group names to associate with this replication group. - SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"` +// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas. - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` +// List of cache security group names to associate with this replication group. +SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"` - // Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` +// – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas. +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00 - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // Name of the cache subnet group to be used for the replication group. - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` +// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00 +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Name of the cache subnet group to be used for the replication group. +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Whether to enable encryption in transit. - TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. - UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"` +// Whether to enable encryption in transit. +TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"` + +// User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. +UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"` } + type ReplicationGroupParameters struct { - // Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - - // Whether to enable encryption at rest. - // +kubebuilder:validation:Optional - AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"` - - // Password used to access a password protected server. Can be specified only if transit_encryption_enabled = true. - // +kubebuilder:validation:Optional - AuthTokenSecretRef *v1.SecretKeySelector `json:"authTokenSecretRef,omitempty" tf:"-"` - - // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. - // Only supported for engine type "redis" and if the engine version is 6 or higher. - // Defaults to true. - // +kubebuilder:validation:Optional - AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - - // Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false. - // +kubebuilder:validation:Optional - AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"` - - // Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. - // +kubebuilder:validation:Optional - DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"` - - // created description for the replication group. Must not be empty. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // Version number of the cache engine to be used for the cache clusters in this replication group. - // If the version is 6 or higher, the major and minor version can be set, e.g., 6.2, - // or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. - // Otherwise, specify the full version desired, e.g., 5.0.6. - // The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - - // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. - // +kubebuilder:validation:Optional - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - - // The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set. - // +kubebuilder:validation:Optional - GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"` - - // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. - // +kubebuilder:validation:Optional - LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` - - // ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00 - // +kubebuilder:validation:Optional - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - - // Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. - // +kubebuilder:validation:Optional - MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"` - - // Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set. - // +kubebuilder:validation:Optional - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - - // east-1:012345678999:my_sns_topic - // +kubebuilder:validation:Optional - NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` - - // 00#. - // +kubebuilder:validation:Optional - NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"` - - // Number of node groups (shards) for this Redis replication group. - // Changing this number will trigger a resizing operation before other settings modifications. - // +kubebuilder:validation:Optional - NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"` - - // Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true. - // +kubebuilder:validation:Optional - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - - // – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. - // +kubebuilder:validation:Optional - PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Number of replica nodes in each node group. - // Changing this number will trigger a resizing operation before other settings modifications. - // Valid values are 0 to 5. - // +kubebuilder:validation:Optional - ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"` - - // References to SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` - - // One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector - // +kubebuilder:validation:Optional - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - - // List of cache security group names to associate with this replication group. - // +kubebuilder:validation:Optional - SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"` - - // – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas. - // +kubebuilder:validation:Optional - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - - // Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. - // +kubebuilder:validation:Optional - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - - // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes - // +kubebuilder:validation:Optional - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - - // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00 - // +kubebuilder:validation:Optional - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - - // Name of the cache subnet group to be used for the replication group. - // +crossplane:generate:reference:type=SubnetGroup - // +kubebuilder:validation:Optional - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - - // Reference to a SubnetGroup to populate subnetGroupName. - // +kubebuilder:validation:Optional - SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"` - - // Selector for a SubnetGroup to populate subnetGroupName. - // +kubebuilder:validation:Optional - SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"` - - // Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // Whether to enable encryption in transit. - // +kubebuilder:validation:Optional - TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"` - - // User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. - // +kubebuilder:validation:Optional - UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"` + +// Specifies whether any modifications are applied immediately, or during the next maintenance window. Default is false. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// Whether to enable encryption at rest. +// +kubebuilder:validation:Optional +AtRestEncryptionEnabled *bool `json:"atRestEncryptionEnabled,omitempty" tf:"at_rest_encryption_enabled,omitempty"` + +// Password used to access a password protected server. Can be specified only if transit_encryption_enabled = true. +// +kubebuilder:validation:Optional +AuthTokenSecretRef *v1.SecretKeySelector `json:"authTokenSecretRef,omitempty" tf:"-"` + +// Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. +// Only supported for engine type "redis" and if the engine version is 6 or higher. +// Defaults to true. +// +kubebuilder:validation:Optional +AutoMinorVersionUpgrade *string `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` + +// Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If enabled, num_cache_clusters must be greater than 1. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to false. +// +kubebuilder:validation:Optional +AutomaticFailoverEnabled *bool `json:"automaticFailoverEnabled,omitempty" tf:"automatic_failover_enabled,omitempty"` + +// Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. +// +kubebuilder:validation:Optional +DataTieringEnabled *bool `json:"dataTieringEnabled,omitempty" tf:"data_tiering_enabled,omitempty"` + +// created description for the replication group. Must not be empty. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Name of the cache engine to be used for the clusters in this replication group. The only valid value is redis. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// Version number of the cache engine to be used for the cache clusters in this replication group. +// If the version is 6 or higher, the major and minor version can be set, e.g., 6.2, +// or the minor version can be unspecified which will use the latest version at creation time, e.g., 6.x. +// Otherwise, specify the full version desired, e.g., 5.0.6. +// The actual engine version used is returned in the attribute engine_version_actual, see Attributes Reference below. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + +// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. +// +kubebuilder:validation:Optional +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` + +// The ID of the global replication group to which this replication group should belong. If this parameter is specified, the replication group is added to the specified global replication group as a secondary replication group; otherwise, the replication group is not part of any global replication group. If global_replication_group_id is set, the num_node_groups parameter cannot be set. +// +kubebuilder:validation:Optional +GlobalReplicationGroupID *string `json:"globalReplicationGroupId,omitempty" tf:"global_replication_group_id,omitempty"` + +// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if at_rest_encryption_enabled = true. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// Specifies the destination and format of Redis SLOWLOG or Redis Engine Log. See the documentation on Amazon ElastiCache. See Log Delivery Configuration below for more details. +// +kubebuilder:validation:Optional +LogDeliveryConfiguration []ReplicationGroupLogDeliveryConfigurationParameters `json:"logDeliveryConfiguration,omitempty" tf:"log_delivery_configuration,omitempty"` + +// ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:05:00-sun:09:00 +// +kubebuilder:validation:Optional +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` + +// Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic_failover_enabled must also be enabled. Defaults to false. +// +kubebuilder:validation:Optional +MultiAzEnabled *bool `json:"multiAzEnabled,omitempty" tf:"multi_az_enabled,omitempty"` + +// Instance class to be used. See AWS documentation for information on supported node types and guidance on selecting node types. Required unless global_replication_group_id is set. Cannot be set if global_replication_group_id is set. +// +kubebuilder:validation:Optional +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` + +// east-1:012345678999:my_sns_topic +// +kubebuilder:validation:Optional +NotificationTopicArn *string `json:"notificationTopicArn,omitempty" tf:"notification_topic_arn,omitempty"` + +// 00#. +// +kubebuilder:validation:Optional +NumCacheClusters *float64 `json:"numCacheClusters,omitempty" tf:"num_cache_clusters,omitempty"` + +// Number of node groups (shards) for this Redis replication group. +// Changing this number will trigger a resizing operation before other settings modifications. +// +kubebuilder:validation:Optional +NumNodeGroups *float64 `json:"numNodeGroups,omitempty" tf:"num_node_groups,omitempty"` + +// Name of the parameter group to associate with this replication group. If this argument is omitted, the default cache parameter group for the specified engine is used. To enable "cluster mode", i.e., data sharding, use a parameter group that has the parameter cluster-enabled set to true. +// +kubebuilder:validation:Optional +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` + +// – Port number on which each of the cache nodes will accept connections. For Memcache the default is 11211, and for Redis the default port is 6379. +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// List of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is considered. The first item in the list will be the primary node. Ignored when updating. +// +kubebuilder:validation:Optional +PreferredCacheClusterAzs []*string `json:"preferredCacheClusterAzs,omitempty" tf:"preferred_cache_cluster_azs,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Number of replica nodes in each node group. +// Changing this number will trigger a resizing operation before other settings modifications. +// Valid values are 0 to 5. +// +kubebuilder:validation:Optional +ReplicasPerNodeGroup *float64 `json:"replicasPerNodeGroup,omitempty" tf:"replicas_per_node_group,omitempty"` + +// References to SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` + +// One or more Amazon VPC security groups associated with this replication group. Use this parameter only when you are creating a replication group in an Amazon Virtual Private Cloud +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector +// +kubebuilder:validation:Optional +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + +// List of cache security group names to associate with this replication group. +// +kubebuilder:validation:Optional +SecurityGroupNames []*string `json:"securityGroupNames,omitempty" tf:"security_group_names,omitempty"` + +// – List of ARNs that identify Redis RDB snapshot files stored in Amazon S3. The names object names cannot contain any commas. +// +kubebuilder:validation:Optional +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` + +// Name of a snapshot from which to restore data into the new node group. Changing the snapshot_name forces a new resource. +// +kubebuilder:validation:Optional +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` + +// Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of snapshot_retention_limit is set to zero (0), backups are turned off. Please note that setting a snapshot_retention_limit is not supported on cache.t1.micro cache nodes +// +kubebuilder:validation:Optional +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` + +// Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. The minimum snapshot window is a 60 minute period. Example: 05:00-09:00 +// +kubebuilder:validation:Optional +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` + +// Name of the cache subnet group to be used for the replication group. +// +crossplane:generate:reference:type=SubnetGroup +// +kubebuilder:validation:Optional +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` + +// Reference to a SubnetGroup to populate subnetGroupName. +// +kubebuilder:validation:Optional +SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"` + +// Selector for a SubnetGroup to populate subnetGroupName. +// +kubebuilder:validation:Optional +SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"` + +// Map of tags to assign to the resource. Adding tags to this resource will add or overwrite any existing tags on the clusters in the replication group and not to the group itself. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Whether to enable encryption in transit. +// +kubebuilder:validation:Optional +TransitEncryptionEnabled *bool `json:"transitEncryptionEnabled,omitempty" tf:"transit_encryption_enabled,omitempty"` + +// User Group ID to associate with the replication group. Only a maximum of one (1) user group ID is valid. NOTE: This argument is a set because the AWS specification allows for multiple IDs. However, in practice, AWS only allows a maximum size of one. +// +kubebuilder:validation:Optional +UserGroupIds []*string `json:"userGroupIds,omitempty" tf:"user_group_ids,omitempty"` } // ReplicationGroupSpec defines the desired state of ReplicationGroup type ReplicationGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ReplicationGroupParameters `json:"forProvider"` + ForProvider ReplicationGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -499,13 +514,13 @@ type ReplicationGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ReplicationGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ReplicationGroupInitParameters `json:"initProvider,omitempty"` } // ReplicationGroupStatus defines the observed state of ReplicationGroup. type ReplicationGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ReplicationGroupObservation `json:"atProvider,omitempty"` + AtProvider ReplicationGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -520,9 +535,9 @@ type ReplicationGroupStatus struct { type ReplicationGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ReplicationGroupSpec `json:"spec"` - Status ReplicationGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ReplicationGroupSpec `json:"spec"` + Status ReplicationGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticache/v1alpha1/zz_subnetgroup_types.go b/apis/elasticache/v1alpha1/zz_subnetgroup_types.go index ea2d02e..4d27251 100755 --- a/apis/elasticache/v1alpha1/zz_subnetgroup_types.go +++ b/apis/elasticache/v1alpha1/zz_subnetgroup_types.go @@ -15,77 +15,87 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SubnetGroupInitParameters struct { - // – Description for the cache subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// – Description for the cache subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetGroupObservation struct { - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // – Description for the cache subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// – Description for the cache subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // – List of VPC Subnet IDs for the cache subnet group - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// – List of VPC Subnet IDs for the cache subnet group +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetGroupParameters struct { - // – Description for the cache subnet group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // References to Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` - - // Selector for a list of Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` - - // – List of VPC Subnet IDs for the cache subnet group - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet - // +crossplane:generate:reference:refFieldName=SubnetIDRefs - // +crossplane:generate:reference:selectorFieldName=SubnetIDSelector - // +kubebuilder:validation:Optional - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// – Description for the cache subnet group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// References to Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` + +// Selector for a list of Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + +// – List of VPC Subnet IDs for the cache subnet group +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet +// +crossplane:generate:reference:refFieldName=SubnetIDRefs +// +crossplane:generate:reference:selectorFieldName=SubnetIDSelector +// +kubebuilder:validation:Optional +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` + +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SubnetGroupSpec defines the desired state of SubnetGroup type SubnetGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SubnetGroupParameters `json:"forProvider"` + ForProvider SubnetGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -96,13 +106,13 @@ type SubnetGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` + InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` } // SubnetGroupStatus defines the observed state of SubnetGroup. type SubnetGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` + AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -117,9 +127,9 @@ type SubnetGroupStatus struct { type SubnetGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SubnetGroupSpec `json:"spec"` - Status SubnetGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SubnetGroupSpec `json:"spec"` + Status SubnetGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticache/v1alpha1/zz_user_types.go b/apis/elasticache/v1alpha1/zz_user_types.go index a1631d3..2059637 100755 --- a/apis/elasticache/v1alpha1/zz_user_types.go +++ b/apis/elasticache/v1alpha1/zz_user_types.go @@ -15,126 +15,142 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type AuthenticationModeInitParameters struct { - // Specifies the authentication type. Possible options are: password, no-password-required or iam. - Type *string `json:"type,omitempty" tf:"type,omitempty"` + +// Specifies the authentication type. Possible options are: password, no-password-required or iam. +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type AuthenticationModeObservation struct { - PasswordCount *float64 `json:"passwordCount,omitempty" tf:"password_count,omitempty"` - // Specifies the authentication type. Possible options are: password, no-password-required or iam. - Type *string `json:"type,omitempty" tf:"type,omitempty"` + +PasswordCount *float64 `json:"passwordCount,omitempty" tf:"password_count,omitempty"` + +// Specifies the authentication type. Possible options are: password, no-password-required or iam. +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type AuthenticationModeParameters struct { - // Specifies the passwords to use for authentication if type is set to password. - // +kubebuilder:validation:Optional - PasswordsSecretRef *[]v1.SecretKeySelector `json:"passwordsSecretRef,omitempty" tf:"-"` - // Specifies the authentication type. Possible options are: password, no-password-required or iam. - // +kubebuilder:validation:Optional - Type *string `json:"type" tf:"type,omitempty"` +// Specifies the passwords to use for authentication if type is set to password. +// +kubebuilder:validation:Optional +PasswordsSecretRef *[]v1.SecretKeySelector `json:"passwordsSecretRef,omitempty" tf:"-"` + +// Specifies the authentication type. Possible options are: password, no-password-required or iam. +// +kubebuilder:validation:Optional +Type *string `json:"type" tf:"type,omitempty"` } + type UserInitParameters struct { - // Access permissions string used for this user. See Specifying Permissions Using an Access String for more details. - AccessString *string `json:"accessString,omitempty" tf:"access_string,omitempty"` - // Denotes the user's authentication properties. Detailed below. - AuthenticationMode []AuthenticationModeInitParameters `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` +// Access permissions string used for this user. See Specifying Permissions Using an Access String for more details. +AccessString *string `json:"accessString,omitempty" tf:"access_string,omitempty"` + +// Denotes the user's authentication properties. Detailed below. +AuthenticationMode []AuthenticationModeInitParameters `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` - // The current supported value is REDIS. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The current supported value is REDIS. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Indicates a password is not required for this user. - NoPasswordRequired *bool `json:"noPasswordRequired,omitempty" tf:"no_password_required,omitempty"` +// Indicates a password is not required for this user. +NoPasswordRequired *bool `json:"noPasswordRequired,omitempty" tf:"no_password_required,omitempty"` - // A list of tags to be added to this resource. A tag is a key-value pair. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of tags to be added to this resource. A tag is a key-value pair. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The username of the user. - UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +// The username of the user. +UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` } + type UserObservation struct { - // Access permissions string used for this user. See Specifying Permissions Using an Access String for more details. - AccessString *string `json:"accessString,omitempty" tf:"access_string,omitempty"` - // The ARN of the created ElastiCache User. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Access permissions string used for this user. See Specifying Permissions Using an Access String for more details. +AccessString *string `json:"accessString,omitempty" tf:"access_string,omitempty"` + +// The ARN of the created ElastiCache User. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Denotes the user's authentication properties. Detailed below. - AuthenticationMode []AuthenticationModeObservation `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` +// Denotes the user's authentication properties. Detailed below. +AuthenticationMode []AuthenticationModeObservation `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` - // The current supported value is REDIS. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The current supported value is REDIS. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Indicates a password is not required for this user. - NoPasswordRequired *bool `json:"noPasswordRequired,omitempty" tf:"no_password_required,omitempty"` +// Indicates a password is not required for this user. +NoPasswordRequired *bool `json:"noPasswordRequired,omitempty" tf:"no_password_required,omitempty"` - // A list of tags to be added to this resource. A tag is a key-value pair. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of tags to be added to this resource. A tag is a key-value pair. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The username of the user. - UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +// The username of the user. +UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` } + type UserParameters struct { - // Access permissions string used for this user. See Specifying Permissions Using an Access String for more details. - // +kubebuilder:validation:Optional - AccessString *string `json:"accessString,omitempty" tf:"access_string,omitempty"` - // Denotes the user's authentication properties. Detailed below. - // +kubebuilder:validation:Optional - AuthenticationMode []AuthenticationModeParameters `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` +// Access permissions string used for this user. See Specifying Permissions Using an Access String for more details. +// +kubebuilder:validation:Optional +AccessString *string `json:"accessString,omitempty" tf:"access_string,omitempty"` + +// Denotes the user's authentication properties. Detailed below. +// +kubebuilder:validation:Optional +AuthenticationMode []AuthenticationModeParameters `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` - // The current supported value is REDIS. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The current supported value is REDIS. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Indicates a password is not required for this user. - // +kubebuilder:validation:Optional - NoPasswordRequired *bool `json:"noPasswordRequired,omitempty" tf:"no_password_required,omitempty"` +// Indicates a password is not required for this user. +// +kubebuilder:validation:Optional +NoPasswordRequired *bool `json:"noPasswordRequired,omitempty" tf:"no_password_required,omitempty"` - // Passwords used for this user. You can create up to two passwords for each user. - // +kubebuilder:validation:Optional - PasswordsSecretRef *[]v1.SecretKeySelector `json:"passwordsSecretRef,omitempty" tf:"-"` +// Passwords used for this user. You can create up to two passwords for each user. +// +kubebuilder:validation:Optional +PasswordsSecretRef *[]v1.SecretKeySelector `json:"passwordsSecretRef,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A list of tags to be added to this resource. A tag is a key-value pair. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of tags to be added to this resource. A tag is a key-value pair. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The username of the user. - // +kubebuilder:validation:Optional - UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +// The username of the user. +// +kubebuilder:validation:Optional +UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` } // UserSpec defines the desired state of User type UserSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider UserParameters `json:"forProvider"` + ForProvider UserParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -145,13 +161,13 @@ type UserSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider UserInitParameters `json:"initProvider,omitempty"` + InitProvider UserInitParameters `json:"initProvider,omitempty"` } // UserStatus defines the observed state of User. type UserStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider UserObservation `json:"atProvider,omitempty"` + AtProvider UserObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -166,12 +182,12 @@ type UserStatus struct { type User struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.accessString) || (has(self.initProvider) && has(self.initProvider.accessString))",message="spec.forProvider.accessString is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.userName) || (has(self.initProvider) && has(self.initProvider.userName))",message="spec.forProvider.userName is a required parameter" - Spec UserSpec `json:"spec"` - Status UserStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.accessString) || (has(self.initProvider) && has(self.initProvider.accessString))",message="spec.forProvider.accessString is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.userName) || (has(self.initProvider) && has(self.initProvider.userName))",message="spec.forProvider.userName is a required parameter" + Spec UserSpec `json:"spec"` + Status UserStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticache/v1alpha1/zz_usergroup_types.go b/apis/elasticache/v1alpha1/zz_usergroup_types.go index 5e0f9f4..12662d5 100755 --- a/apis/elasticache/v1alpha1/zz_usergroup_types.go +++ b/apis/elasticache/v1alpha1/zz_usergroup_types.go @@ -15,80 +15,89 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type UserGroupInitParameters struct { - // The current supported value is REDIS. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The current supported value is REDIS. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type UserGroupObservation struct { - // The ARN that identifies the user group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The current supported value is REDIS. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The ARN that identifies the user group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The user group identifier. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The current supported value is REDIS. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The user group identifier. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The list of user IDs that belong to the user group. - UserIds []*string `json:"userIds,omitempty" tf:"user_ids,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The list of user IDs that belong to the user group. +UserIds []*string `json:"userIds,omitempty" tf:"user_ids,omitempty"` } + type UserGroupParameters struct { - // The current supported value is REDIS. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // References to User to populate userIds. - // +kubebuilder:validation:Optional - UserIDRefs []v1.Reference `json:"userIdRefs,omitempty" tf:"-"` - - // Selector for a list of User to populate userIds. - // +kubebuilder:validation:Optional - UserIDSelector *v1.Selector `json:"userIdSelector,omitempty" tf:"-"` - - // The list of user IDs that belong to the user group. - // +crossplane:generate:reference:type=User - // +crossplane:generate:reference:refFieldName=UserIDRefs - // +crossplane:generate:reference:selectorFieldName=UserIDSelector - // +kubebuilder:validation:Optional - UserIds []*string `json:"userIds,omitempty" tf:"user_ids,omitempty"` + +// The current supported value is REDIS. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// References to User to populate userIds. +// +kubebuilder:validation:Optional +UserIDRefs []v1.Reference `json:"userIdRefs,omitempty" tf:"-"` + +// Selector for a list of User to populate userIds. +// +kubebuilder:validation:Optional +UserIDSelector *v1.Selector `json:"userIdSelector,omitempty" tf:"-"` + +// The list of user IDs that belong to the user group. +// +crossplane:generate:reference:type=User +// +crossplane:generate:reference:refFieldName=UserIDRefs +// +crossplane:generate:reference:selectorFieldName=UserIDSelector +// +kubebuilder:validation:Optional +UserIds []*string `json:"userIds,omitempty" tf:"user_ids,omitempty"` } // UserGroupSpec defines the desired state of UserGroup type UserGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider UserGroupParameters `json:"forProvider"` + ForProvider UserGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -99,13 +108,13 @@ type UserGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider UserGroupInitParameters `json:"initProvider,omitempty"` + InitProvider UserGroupInitParameters `json:"initProvider,omitempty"` } // UserGroupStatus defines the observed state of UserGroup. type UserGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider UserGroupObservation `json:"atProvider,omitempty"` + AtProvider UserGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -120,10 +129,10 @@ type UserGroupStatus struct { type UserGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec UserGroupSpec `json:"spec"` - Status UserGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec UserGroupSpec `json:"spec"` + Status UserGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticsearch/v1alpha1/zz_domain_types.go b/apis/elasticsearch/v1alpha1/zz_domain_types.go index 41eac60..5e61536 100755 --- a/apis/elasticsearch/v1alpha1/zz_domain_types.go +++ b/apis/elasticsearch/v1alpha1/zz_domain_types.go @@ -15,844 +15,949 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type AdvancedSecurityOptionsInitParameters struct { - // Whether advanced security is enabled. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Whether the internal user database is enabled. If not set, defaults to false by the AWS API. - InternalUserDatabaseEnabled *bool `json:"internalUserDatabaseEnabled,omitempty" tf:"internal_user_database_enabled,omitempty"` +// Whether advanced security is enabled. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Configuration block for the main user. Detailed below. - MasterUserOptions []MasterUserOptionsInitParameters `json:"masterUserOptions,omitempty" tf:"master_user_options,omitempty"` +// Whether the internal user database is enabled. If not set, defaults to false by the AWS API. +InternalUserDatabaseEnabled *bool `json:"internalUserDatabaseEnabled,omitempty" tf:"internal_user_database_enabled,omitempty"` + +// Configuration block for the main user. Detailed below. +MasterUserOptions []MasterUserOptionsInitParameters `json:"masterUserOptions,omitempty" tf:"master_user_options,omitempty"` } + type AdvancedSecurityOptionsObservation struct { - // Whether advanced security is enabled. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Whether the internal user database is enabled. If not set, defaults to false by the AWS API. - InternalUserDatabaseEnabled *bool `json:"internalUserDatabaseEnabled,omitempty" tf:"internal_user_database_enabled,omitempty"` +// Whether advanced security is enabled. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Whether the internal user database is enabled. If not set, defaults to false by the AWS API. +InternalUserDatabaseEnabled *bool `json:"internalUserDatabaseEnabled,omitempty" tf:"internal_user_database_enabled,omitempty"` - // Configuration block for the main user. Detailed below. - MasterUserOptions []MasterUserOptionsObservation `json:"masterUserOptions,omitempty" tf:"master_user_options,omitempty"` +// Configuration block for the main user. Detailed below. +MasterUserOptions []MasterUserOptionsObservation `json:"masterUserOptions,omitempty" tf:"master_user_options,omitempty"` } + type AdvancedSecurityOptionsParameters struct { - // Whether advanced security is enabled. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` - // Whether the internal user database is enabled. If not set, defaults to false by the AWS API. - // +kubebuilder:validation:Optional - InternalUserDatabaseEnabled *bool `json:"internalUserDatabaseEnabled,omitempty" tf:"internal_user_database_enabled,omitempty"` +// Whether advanced security is enabled. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// Whether the internal user database is enabled. If not set, defaults to false by the AWS API. +// +kubebuilder:validation:Optional +InternalUserDatabaseEnabled *bool `json:"internalUserDatabaseEnabled,omitempty" tf:"internal_user_database_enabled,omitempty"` - // Configuration block for the main user. Detailed below. - // +kubebuilder:validation:Optional - MasterUserOptions []MasterUserOptionsParameters `json:"masterUserOptions,omitempty" tf:"master_user_options,omitempty"` +// Configuration block for the main user. Detailed below. +// +kubebuilder:validation:Optional +MasterUserOptions []MasterUserOptionsParameters `json:"masterUserOptions,omitempty" tf:"master_user_options,omitempty"` } + type AutoTuneOptionsInitParameters struct { - // The Auto-Tune desired state for the domain. Valid values: ENABLED or DISABLED. - DesiredState *string `json:"desiredState,omitempty" tf:"desired_state,omitempty"` - // Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. - MaintenanceSchedule []MaintenanceScheduleInitParameters `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` +// The Auto-Tune desired state for the domain. Valid values: ENABLED or DISABLED. +DesiredState *string `json:"desiredState,omitempty" tf:"desired_state,omitempty"` + +// Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. +MaintenanceSchedule []MaintenanceScheduleInitParameters `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` - // Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK. - RollbackOnDisable *string `json:"rollbackOnDisable,omitempty" tf:"rollback_on_disable,omitempty"` +// Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK. +RollbackOnDisable *string `json:"rollbackOnDisable,omitempty" tf:"rollback_on_disable,omitempty"` } + type AutoTuneOptionsObservation struct { - // The Auto-Tune desired state for the domain. Valid values: ENABLED or DISABLED. - DesiredState *string `json:"desiredState,omitempty" tf:"desired_state,omitempty"` - // Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. - MaintenanceSchedule []MaintenanceScheduleObservation `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` +// The Auto-Tune desired state for the domain. Valid values: ENABLED or DISABLED. +DesiredState *string `json:"desiredState,omitempty" tf:"desired_state,omitempty"` + +// Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. +MaintenanceSchedule []MaintenanceScheduleObservation `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` - // Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK. - RollbackOnDisable *string `json:"rollbackOnDisable,omitempty" tf:"rollback_on_disable,omitempty"` +// Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK. +RollbackOnDisable *string `json:"rollbackOnDisable,omitempty" tf:"rollback_on_disable,omitempty"` } + type AutoTuneOptionsParameters struct { - // The Auto-Tune desired state for the domain. Valid values: ENABLED or DISABLED. - // +kubebuilder:validation:Optional - DesiredState *string `json:"desiredState" tf:"desired_state,omitempty"` - // Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. - // +kubebuilder:validation:Optional - MaintenanceSchedule []MaintenanceScheduleParameters `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` +// The Auto-Tune desired state for the domain. Valid values: ENABLED or DISABLED. +// +kubebuilder:validation:Optional +DesiredState *string `json:"desiredState" tf:"desired_state,omitempty"` - // Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK. - // +kubebuilder:validation:Optional - RollbackOnDisable *string `json:"rollbackOnDisable,omitempty" tf:"rollback_on_disable,omitempty"` +// Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below. +// +kubebuilder:validation:Optional +MaintenanceSchedule []MaintenanceScheduleParameters `json:"maintenanceSchedule,omitempty" tf:"maintenance_schedule,omitempty"` + +// Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values: DEFAULT_ROLLBACK or NO_ROLLBACK. +// +kubebuilder:validation:Optional +RollbackOnDisable *string `json:"rollbackOnDisable,omitempty" tf:"rollback_on_disable,omitempty"` } + type ClusterConfigInitParameters struct { - // Configuration block containing cold storage configuration. Detailed below. - ColdStorageOptions []ColdStorageOptionsInitParameters `json:"coldStorageOptions,omitempty" tf:"cold_storage_options,omitempty"` - // Number of dedicated main nodes in the cluster. - DedicatedMasterCount *float64 `json:"dedicatedMasterCount,omitempty" tf:"dedicated_master_count,omitempty"` +// Configuration block containing cold storage configuration. Detailed below. +ColdStorageOptions []ColdStorageOptionsInitParameters `json:"coldStorageOptions,omitempty" tf:"cold_storage_options,omitempty"` - // Whether dedicated main nodes are enabled for the cluster. - DedicatedMasterEnabled *bool `json:"dedicatedMasterEnabled,omitempty" tf:"dedicated_master_enabled,omitempty"` +// Number of dedicated main nodes in the cluster. +DedicatedMasterCount *float64 `json:"dedicatedMasterCount,omitempty" tf:"dedicated_master_count,omitempty"` - // Instance type of the dedicated main nodes in the cluster. - DedicatedMasterType *string `json:"dedicatedMasterType,omitempty" tf:"dedicated_master_type,omitempty"` +// Whether dedicated main nodes are enabled for the cluster. +DedicatedMasterEnabled *bool `json:"dedicatedMasterEnabled,omitempty" tf:"dedicated_master_enabled,omitempty"` - // Number of instances in the cluster. - InstanceCount *float64 `json:"instanceCount,omitempty" tf:"instance_count,omitempty"` +// Instance type of the dedicated main nodes in the cluster. +DedicatedMasterType *string `json:"dedicatedMasterType,omitempty" tf:"dedicated_master_type,omitempty"` - // Instance type of data nodes in the cluster. - InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` +// Number of instances in the cluster. +InstanceCount *float64 `json:"instanceCount,omitempty" tf:"instance_count,omitempty"` - // Number of warm nodes in the cluster. Valid values are between 2 and 150. warm_count can be only and must be set when warm_enabled is set to true. - WarmCount *float64 `json:"warmCount,omitempty" tf:"warm_count,omitempty"` +// Instance type of data nodes in the cluster. +InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` - // Whether to enable warm storage. - WarmEnabled *bool `json:"warmEnabled,omitempty" tf:"warm_enabled,omitempty"` +// Number of warm nodes in the cluster. Valid values are between 2 and 150. warm_count can be only and must be set when warm_enabled is set to true. +WarmCount *float64 `json:"warmCount,omitempty" tf:"warm_count,omitempty"` - // Instance type for the Elasticsearch cluster's warm nodes. Valid values are ultrawarm1.medium.elasticsearch, ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. warm_type can be only and must be set when warm_enabled is set to true. - WarmType *string `json:"warmType,omitempty" tf:"warm_type,omitempty"` +// Whether to enable warm storage. +WarmEnabled *bool `json:"warmEnabled,omitempty" tf:"warm_enabled,omitempty"` - // Configuration block containing zone awareness settings. Detailed below. - ZoneAwarenessConfig []ZoneAwarenessConfigInitParameters `json:"zoneAwarenessConfig,omitempty" tf:"zone_awareness_config,omitempty"` +// Instance type for the Elasticsearch cluster's warm nodes. Valid values are ultrawarm1.medium.elasticsearch, ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. warm_type can be only and must be set when warm_enabled is set to true. +WarmType *string `json:"warmType,omitempty" tf:"warm_type,omitempty"` - // Whether zone awareness is enabled, set to true for multi-az deployment. To enable awareness with three Availability Zones, the availability_zone_count within the zone_awareness_config must be set to 3. - ZoneAwarenessEnabled *bool `json:"zoneAwarenessEnabled,omitempty" tf:"zone_awareness_enabled,omitempty"` +// Configuration block containing zone awareness settings. Detailed below. +ZoneAwarenessConfig []ZoneAwarenessConfigInitParameters `json:"zoneAwarenessConfig,omitempty" tf:"zone_awareness_config,omitempty"` + +// Whether zone awareness is enabled, set to true for multi-az deployment. To enable awareness with three Availability Zones, the availability_zone_count within the zone_awareness_config must be set to 3. +ZoneAwarenessEnabled *bool `json:"zoneAwarenessEnabled,omitempty" tf:"zone_awareness_enabled,omitempty"` } + type ClusterConfigObservation struct { - // Configuration block containing cold storage configuration. Detailed below. - ColdStorageOptions []ColdStorageOptionsObservation `json:"coldStorageOptions,omitempty" tf:"cold_storage_options,omitempty"` - // Number of dedicated main nodes in the cluster. - DedicatedMasterCount *float64 `json:"dedicatedMasterCount,omitempty" tf:"dedicated_master_count,omitempty"` +// Configuration block containing cold storage configuration. Detailed below. +ColdStorageOptions []ColdStorageOptionsObservation `json:"coldStorageOptions,omitempty" tf:"cold_storage_options,omitempty"` - // Whether dedicated main nodes are enabled for the cluster. - DedicatedMasterEnabled *bool `json:"dedicatedMasterEnabled,omitempty" tf:"dedicated_master_enabled,omitempty"` +// Number of dedicated main nodes in the cluster. +DedicatedMasterCount *float64 `json:"dedicatedMasterCount,omitempty" tf:"dedicated_master_count,omitempty"` - // Instance type of the dedicated main nodes in the cluster. - DedicatedMasterType *string `json:"dedicatedMasterType,omitempty" tf:"dedicated_master_type,omitempty"` +// Whether dedicated main nodes are enabled for the cluster. +DedicatedMasterEnabled *bool `json:"dedicatedMasterEnabled,omitempty" tf:"dedicated_master_enabled,omitempty"` - // Number of instances in the cluster. - InstanceCount *float64 `json:"instanceCount,omitempty" tf:"instance_count,omitempty"` +// Instance type of the dedicated main nodes in the cluster. +DedicatedMasterType *string `json:"dedicatedMasterType,omitempty" tf:"dedicated_master_type,omitempty"` - // Instance type of data nodes in the cluster. - InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` +// Number of instances in the cluster. +InstanceCount *float64 `json:"instanceCount,omitempty" tf:"instance_count,omitempty"` - // Number of warm nodes in the cluster. Valid values are between 2 and 150. warm_count can be only and must be set when warm_enabled is set to true. - WarmCount *float64 `json:"warmCount,omitempty" tf:"warm_count,omitempty"` +// Instance type of data nodes in the cluster. +InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` - // Whether to enable warm storage. - WarmEnabled *bool `json:"warmEnabled,omitempty" tf:"warm_enabled,omitempty"` +// Number of warm nodes in the cluster. Valid values are between 2 and 150. warm_count can be only and must be set when warm_enabled is set to true. +WarmCount *float64 `json:"warmCount,omitempty" tf:"warm_count,omitempty"` - // Instance type for the Elasticsearch cluster's warm nodes. Valid values are ultrawarm1.medium.elasticsearch, ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. warm_type can be only and must be set when warm_enabled is set to true. - WarmType *string `json:"warmType,omitempty" tf:"warm_type,omitempty"` +// Whether to enable warm storage. +WarmEnabled *bool `json:"warmEnabled,omitempty" tf:"warm_enabled,omitempty"` - // Configuration block containing zone awareness settings. Detailed below. - ZoneAwarenessConfig []ZoneAwarenessConfigObservation `json:"zoneAwarenessConfig,omitempty" tf:"zone_awareness_config,omitempty"` +// Instance type for the Elasticsearch cluster's warm nodes. Valid values are ultrawarm1.medium.elasticsearch, ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. warm_type can be only and must be set when warm_enabled is set to true. +WarmType *string `json:"warmType,omitempty" tf:"warm_type,omitempty"` - // Whether zone awareness is enabled, set to true for multi-az deployment. To enable awareness with three Availability Zones, the availability_zone_count within the zone_awareness_config must be set to 3. - ZoneAwarenessEnabled *bool `json:"zoneAwarenessEnabled,omitempty" tf:"zone_awareness_enabled,omitempty"` +// Configuration block containing zone awareness settings. Detailed below. +ZoneAwarenessConfig []ZoneAwarenessConfigObservation `json:"zoneAwarenessConfig,omitempty" tf:"zone_awareness_config,omitempty"` + +// Whether zone awareness is enabled, set to true for multi-az deployment. To enable awareness with three Availability Zones, the availability_zone_count within the zone_awareness_config must be set to 3. +ZoneAwarenessEnabled *bool `json:"zoneAwarenessEnabled,omitempty" tf:"zone_awareness_enabled,omitempty"` } + type ClusterConfigParameters struct { - // Configuration block containing cold storage configuration. Detailed below. - // +kubebuilder:validation:Optional - ColdStorageOptions []ColdStorageOptionsParameters `json:"coldStorageOptions,omitempty" tf:"cold_storage_options,omitempty"` - // Number of dedicated main nodes in the cluster. - // +kubebuilder:validation:Optional - DedicatedMasterCount *float64 `json:"dedicatedMasterCount,omitempty" tf:"dedicated_master_count,omitempty"` +// Configuration block containing cold storage configuration. Detailed below. +// +kubebuilder:validation:Optional +ColdStorageOptions []ColdStorageOptionsParameters `json:"coldStorageOptions,omitempty" tf:"cold_storage_options,omitempty"` + +// Number of dedicated main nodes in the cluster. +// +kubebuilder:validation:Optional +DedicatedMasterCount *float64 `json:"dedicatedMasterCount,omitempty" tf:"dedicated_master_count,omitempty"` - // Whether dedicated main nodes are enabled for the cluster. - // +kubebuilder:validation:Optional - DedicatedMasterEnabled *bool `json:"dedicatedMasterEnabled,omitempty" tf:"dedicated_master_enabled,omitempty"` +// Whether dedicated main nodes are enabled for the cluster. +// +kubebuilder:validation:Optional +DedicatedMasterEnabled *bool `json:"dedicatedMasterEnabled,omitempty" tf:"dedicated_master_enabled,omitempty"` - // Instance type of the dedicated main nodes in the cluster. - // +kubebuilder:validation:Optional - DedicatedMasterType *string `json:"dedicatedMasterType,omitempty" tf:"dedicated_master_type,omitempty"` +// Instance type of the dedicated main nodes in the cluster. +// +kubebuilder:validation:Optional +DedicatedMasterType *string `json:"dedicatedMasterType,omitempty" tf:"dedicated_master_type,omitempty"` - // Number of instances in the cluster. - // +kubebuilder:validation:Optional - InstanceCount *float64 `json:"instanceCount,omitempty" tf:"instance_count,omitempty"` +// Number of instances in the cluster. +// +kubebuilder:validation:Optional +InstanceCount *float64 `json:"instanceCount,omitempty" tf:"instance_count,omitempty"` - // Instance type of data nodes in the cluster. - // +kubebuilder:validation:Optional - InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` +// Instance type of data nodes in the cluster. +// +kubebuilder:validation:Optional +InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` - // Number of warm nodes in the cluster. Valid values are between 2 and 150. warm_count can be only and must be set when warm_enabled is set to true. - // +kubebuilder:validation:Optional - WarmCount *float64 `json:"warmCount,omitempty" tf:"warm_count,omitempty"` +// Number of warm nodes in the cluster. Valid values are between 2 and 150. warm_count can be only and must be set when warm_enabled is set to true. +// +kubebuilder:validation:Optional +WarmCount *float64 `json:"warmCount,omitempty" tf:"warm_count,omitempty"` - // Whether to enable warm storage. - // +kubebuilder:validation:Optional - WarmEnabled *bool `json:"warmEnabled,omitempty" tf:"warm_enabled,omitempty"` +// Whether to enable warm storage. +// +kubebuilder:validation:Optional +WarmEnabled *bool `json:"warmEnabled,omitempty" tf:"warm_enabled,omitempty"` - // Instance type for the Elasticsearch cluster's warm nodes. Valid values are ultrawarm1.medium.elasticsearch, ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. warm_type can be only and must be set when warm_enabled is set to true. - // +kubebuilder:validation:Optional - WarmType *string `json:"warmType,omitempty" tf:"warm_type,omitempty"` +// Instance type for the Elasticsearch cluster's warm nodes. Valid values are ultrawarm1.medium.elasticsearch, ultrawarm1.large.elasticsearch and ultrawarm1.xlarge.elasticsearch. warm_type can be only and must be set when warm_enabled is set to true. +// +kubebuilder:validation:Optional +WarmType *string `json:"warmType,omitempty" tf:"warm_type,omitempty"` - // Configuration block containing zone awareness settings. Detailed below. - // +kubebuilder:validation:Optional - ZoneAwarenessConfig []ZoneAwarenessConfigParameters `json:"zoneAwarenessConfig,omitempty" tf:"zone_awareness_config,omitempty"` +// Configuration block containing zone awareness settings. Detailed below. +// +kubebuilder:validation:Optional +ZoneAwarenessConfig []ZoneAwarenessConfigParameters `json:"zoneAwarenessConfig,omitempty" tf:"zone_awareness_config,omitempty"` - // Whether zone awareness is enabled, set to true for multi-az deployment. To enable awareness with three Availability Zones, the availability_zone_count within the zone_awareness_config must be set to 3. - // +kubebuilder:validation:Optional - ZoneAwarenessEnabled *bool `json:"zoneAwarenessEnabled,omitempty" tf:"zone_awareness_enabled,omitempty"` +// Whether zone awareness is enabled, set to true for multi-az deployment. To enable awareness with three Availability Zones, the availability_zone_count within the zone_awareness_config must be set to 3. +// +kubebuilder:validation:Optional +ZoneAwarenessEnabled *bool `json:"zoneAwarenessEnabled,omitempty" tf:"zone_awareness_enabled,omitempty"` } + type CognitoOptionsInitParameters struct { - // Whether Amazon Cognito authentication with Kibana is enabled or not. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // ID of the Cognito Identity Pool to use. - IdentityPoolID *string `json:"identityPoolId,omitempty" tf:"identity_pool_id,omitempty"` +// Whether Amazon Cognito authentication with Kibana is enabled or not. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// ID of the Cognito Identity Pool to use. +IdentityPoolID *string `json:"identityPoolId,omitempty" tf:"identity_pool_id,omitempty"` - // ARN of the IAM role that has the AmazonESCognitoAccess policy attached. - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` +// ARN of the IAM role that has the AmazonESCognitoAccess policy attached. +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` - // ID of the Cognito User Pool to use. - UserPoolID *string `json:"userPoolId,omitempty" tf:"user_pool_id,omitempty"` +// ID of the Cognito User Pool to use. +UserPoolID *string `json:"userPoolId,omitempty" tf:"user_pool_id,omitempty"` } + type CognitoOptionsObservation struct { - // Whether Amazon Cognito authentication with Kibana is enabled or not. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // ID of the Cognito Identity Pool to use. - IdentityPoolID *string `json:"identityPoolId,omitempty" tf:"identity_pool_id,omitempty"` +// Whether Amazon Cognito authentication with Kibana is enabled or not. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // ARN of the IAM role that has the AmazonESCognitoAccess policy attached. - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` +// ID of the Cognito Identity Pool to use. +IdentityPoolID *string `json:"identityPoolId,omitempty" tf:"identity_pool_id,omitempty"` - // ID of the Cognito User Pool to use. - UserPoolID *string `json:"userPoolId,omitempty" tf:"user_pool_id,omitempty"` +// ARN of the IAM role that has the AmazonESCognitoAccess policy attached. +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` + +// ID of the Cognito User Pool to use. +UserPoolID *string `json:"userPoolId,omitempty" tf:"user_pool_id,omitempty"` } + type CognitoOptionsParameters struct { - // Whether Amazon Cognito authentication with Kibana is enabled or not. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // ID of the Cognito Identity Pool to use. - // +kubebuilder:validation:Optional - IdentityPoolID *string `json:"identityPoolId" tf:"identity_pool_id,omitempty"` +// Whether Amazon Cognito authentication with Kibana is enabled or not. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// ID of the Cognito Identity Pool to use. +// +kubebuilder:validation:Optional +IdentityPoolID *string `json:"identityPoolId" tf:"identity_pool_id,omitempty"` - // ARN of the IAM role that has the AmazonESCognitoAccess policy attached. - // +kubebuilder:validation:Optional - RoleArn *string `json:"roleArn" tf:"role_arn,omitempty"` +// ARN of the IAM role that has the AmazonESCognitoAccess policy attached. +// +kubebuilder:validation:Optional +RoleArn *string `json:"roleArn" tf:"role_arn,omitempty"` - // ID of the Cognito User Pool to use. - // +kubebuilder:validation:Optional - UserPoolID *string `json:"userPoolId" tf:"user_pool_id,omitempty"` +// ID of the Cognito User Pool to use. +// +kubebuilder:validation:Optional +UserPoolID *string `json:"userPoolId" tf:"user_pool_id,omitempty"` } + type ColdStorageOptionsInitParameters struct { - // Boolean to enable cold storage for an Elasticsearch domain. Defaults to false. Master and ultrawarm nodes must be enabled for cold storage. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Boolean to enable cold storage for an Elasticsearch domain. Defaults to false. Master and ultrawarm nodes must be enabled for cold storage. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type ColdStorageOptionsObservation struct { - // Boolean to enable cold storage for an Elasticsearch domain. Defaults to false. Master and ultrawarm nodes must be enabled for cold storage. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Boolean to enable cold storage for an Elasticsearch domain. Defaults to false. Master and ultrawarm nodes must be enabled for cold storage. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type ColdStorageOptionsParameters struct { - // Boolean to enable cold storage for an Elasticsearch domain. Defaults to false. Master and ultrawarm nodes must be enabled for cold storage. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Boolean to enable cold storage for an Elasticsearch domain. Defaults to false. Master and ultrawarm nodes must be enabled for cold storage. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type DomainEndpointOptionsInitParameters struct { - // Fully qualified domain for your custom endpoint. - CustomEndpoint *string `json:"customEndpoint,omitempty" tf:"custom_endpoint,omitempty"` - // ACM certificate ARN for your custom endpoint. - CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn,omitempty" tf:"custom_endpoint_certificate_arn,omitempty"` +// Fully qualified domain for your custom endpoint. +CustomEndpoint *string `json:"customEndpoint,omitempty" tf:"custom_endpoint,omitempty"` - // Whether to enable custom endpoint for the Elasticsearch domain. - CustomEndpointEnabled *bool `json:"customEndpointEnabled,omitempty" tf:"custom_endpoint_enabled,omitempty"` +// ACM certificate ARN for your custom endpoint. +CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn,omitempty" tf:"custom_endpoint_certificate_arn,omitempty"` - // Whether or not to require HTTPS. Defaults to true. - EnforceHTTPS *bool `json:"enforceHttps,omitempty" tf:"enforce_https,omitempty"` +// Whether to enable custom endpoint for the Elasticsearch domain. +CustomEndpointEnabled *bool `json:"customEndpointEnabled,omitempty" tf:"custom_endpoint_enabled,omitempty"` - // Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 and Policy-Min-TLS-1-2-2019-07. - TLSSecurityPolicy *string `json:"tlsSecurityPolicy,omitempty" tf:"tls_security_policy,omitempty"` +// Whether or not to require HTTPS. Defaults to true. +EnforceHTTPS *bool `json:"enforceHttps,omitempty" tf:"enforce_https,omitempty"` + +// Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 and Policy-Min-TLS-1-2-2019-07. +TLSSecurityPolicy *string `json:"tlsSecurityPolicy,omitempty" tf:"tls_security_policy,omitempty"` } + type DomainEndpointOptionsObservation struct { - // Fully qualified domain for your custom endpoint. - CustomEndpoint *string `json:"customEndpoint,omitempty" tf:"custom_endpoint,omitempty"` - // ACM certificate ARN for your custom endpoint. - CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn,omitempty" tf:"custom_endpoint_certificate_arn,omitempty"` +// Fully qualified domain for your custom endpoint. +CustomEndpoint *string `json:"customEndpoint,omitempty" tf:"custom_endpoint,omitempty"` + +// ACM certificate ARN for your custom endpoint. +CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn,omitempty" tf:"custom_endpoint_certificate_arn,omitempty"` - // Whether to enable custom endpoint for the Elasticsearch domain. - CustomEndpointEnabled *bool `json:"customEndpointEnabled,omitempty" tf:"custom_endpoint_enabled,omitempty"` +// Whether to enable custom endpoint for the Elasticsearch domain. +CustomEndpointEnabled *bool `json:"customEndpointEnabled,omitempty" tf:"custom_endpoint_enabled,omitempty"` - // Whether or not to require HTTPS. Defaults to true. - EnforceHTTPS *bool `json:"enforceHttps,omitempty" tf:"enforce_https,omitempty"` +// Whether or not to require HTTPS. Defaults to true. +EnforceHTTPS *bool `json:"enforceHttps,omitempty" tf:"enforce_https,omitempty"` - // Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 and Policy-Min-TLS-1-2-2019-07. - TLSSecurityPolicy *string `json:"tlsSecurityPolicy,omitempty" tf:"tls_security_policy,omitempty"` +// Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 and Policy-Min-TLS-1-2-2019-07. +TLSSecurityPolicy *string `json:"tlsSecurityPolicy,omitempty" tf:"tls_security_policy,omitempty"` } + type DomainEndpointOptionsParameters struct { - // Fully qualified domain for your custom endpoint. - // +kubebuilder:validation:Optional - CustomEndpoint *string `json:"customEndpoint,omitempty" tf:"custom_endpoint,omitempty"` - // ACM certificate ARN for your custom endpoint. - // +kubebuilder:validation:Optional - CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn,omitempty" tf:"custom_endpoint_certificate_arn,omitempty"` +// Fully qualified domain for your custom endpoint. +// +kubebuilder:validation:Optional +CustomEndpoint *string `json:"customEndpoint,omitempty" tf:"custom_endpoint,omitempty"` + +// ACM certificate ARN for your custom endpoint. +// +kubebuilder:validation:Optional +CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn,omitempty" tf:"custom_endpoint_certificate_arn,omitempty"` - // Whether to enable custom endpoint for the Elasticsearch domain. - // +kubebuilder:validation:Optional - CustomEndpointEnabled *bool `json:"customEndpointEnabled,omitempty" tf:"custom_endpoint_enabled,omitempty"` +// Whether to enable custom endpoint for the Elasticsearch domain. +// +kubebuilder:validation:Optional +CustomEndpointEnabled *bool `json:"customEndpointEnabled,omitempty" tf:"custom_endpoint_enabled,omitempty"` - // Whether or not to require HTTPS. Defaults to true. - // +kubebuilder:validation:Optional - EnforceHTTPS *bool `json:"enforceHttps,omitempty" tf:"enforce_https,omitempty"` +// Whether or not to require HTTPS. Defaults to true. +// +kubebuilder:validation:Optional +EnforceHTTPS *bool `json:"enforceHttps,omitempty" tf:"enforce_https,omitempty"` - // Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 and Policy-Min-TLS-1-2-2019-07. - // +kubebuilder:validation:Optional - TLSSecurityPolicy *string `json:"tlsSecurityPolicy,omitempty" tf:"tls_security_policy,omitempty"` +// Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values: Policy-Min-TLS-1-0-2019-07 and Policy-Min-TLS-1-2-2019-07. +// +kubebuilder:validation:Optional +TLSSecurityPolicy *string `json:"tlsSecurityPolicy,omitempty" tf:"tls_security_policy,omitempty"` } + type DomainInitParameters struct { - // IAM policy document specifying the access policies for the domain. - AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Key-value string pairs to specify advanced configuration options. - AdvancedOptions map[string]*string `json:"advancedOptions,omitempty" tf:"advanced_options,omitempty"` +// IAM policy document specifying the access policies for the domain. +AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Configuration block for fine-grained access control. Detailed below. - AdvancedSecurityOptions []AdvancedSecurityOptionsInitParameters `json:"advancedSecurityOptions,omitempty" tf:"advanced_security_options,omitempty"` +// Key-value string pairs to specify advanced configuration options. +AdvancedOptions map[string]*string `json:"advancedOptions,omitempty" tf:"advanced_options,omitempty"` - // Configuration block for the Auto-Tune options of the domain. Detailed below. - AutoTuneOptions []AutoTuneOptionsInitParameters `json:"autoTuneOptions,omitempty" tf:"auto_tune_options,omitempty"` +// Configuration block for fine-grained access control. Detailed below. +AdvancedSecurityOptions []AdvancedSecurityOptionsInitParameters `json:"advancedSecurityOptions,omitempty" tf:"advanced_security_options,omitempty"` - // Configuration block for the cluster of the domain. Detailed below. - ClusterConfig []ClusterConfigInitParameters `json:"clusterConfig,omitempty" tf:"cluster_config,omitempty"` +// Configuration block for the Auto-Tune options of the domain. Detailed below. +AutoTuneOptions []AutoTuneOptionsInitParameters `json:"autoTuneOptions,omitempty" tf:"auto_tune_options,omitempty"` - // Configuration block for authenticating Kibana with Cognito. Detailed below. - CognitoOptions []CognitoOptionsInitParameters `json:"cognitoOptions,omitempty" tf:"cognito_options,omitempty"` +// Configuration block for the cluster of the domain. Detailed below. +ClusterConfig []ClusterConfigInitParameters `json:"clusterConfig,omitempty" tf:"cluster_config,omitempty"` - // Configuration block for domain endpoint HTTP(S) related options. Detailed below. - DomainEndpointOptions []DomainEndpointOptionsInitParameters `json:"domainEndpointOptions,omitempty" tf:"domain_endpoint_options,omitempty"` +// Configuration block for authenticating Kibana with Cognito. Detailed below. +CognitoOptions []CognitoOptionsInitParameters `json:"cognitoOptions,omitempty" tf:"cognito_options,omitempty"` - // Configuration block for EBS related options, may be required based on chosen instance size. Detailed below. - EBSOptions []EBSOptionsInitParameters `json:"ebsOptions,omitempty" tf:"ebs_options,omitempty"` +// Configuration block for domain endpoint HTTP(S) related options. Detailed below. +DomainEndpointOptions []DomainEndpointOptionsInitParameters `json:"domainEndpointOptions,omitempty" tf:"domain_endpoint_options,omitempty"` - // Version of Elasticsearch to deploy. Defaults to 1.5. - ElasticsearchVersion *string `json:"elasticsearchVersion,omitempty" tf:"elasticsearch_version,omitempty"` +// Configuration block for EBS related options, may be required based on chosen instance size. Detailed below. +EBSOptions []EBSOptionsInitParameters `json:"ebsOptions,omitempty" tf:"ebs_options,omitempty"` - // Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below. - EncryptAtRest []EncryptAtRestInitParameters `json:"encryptAtRest,omitempty" tf:"encrypt_at_rest,omitempty"` +// Version of Elasticsearch to deploy. Defaults to 1.5. +ElasticsearchVersion *string `json:"elasticsearchVersion,omitempty" tf:"elasticsearch_version,omitempty"` - // Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below. - LogPublishingOptions []LogPublishingOptionsInitParameters `json:"logPublishingOptions,omitempty" tf:"log_publishing_options,omitempty"` +// Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below. +EncryptAtRest []EncryptAtRestInitParameters `json:"encryptAtRest,omitempty" tf:"encrypt_at_rest,omitempty"` - // Configuration block for node-to-node encryption options. Detailed below. - NodeToNodeEncryption []NodeToNodeEncryptionInitParameters `json:"nodeToNodeEncryption,omitempty" tf:"node_to_node_encryption,omitempty"` +// Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below. +LogPublishingOptions []LogPublishingOptionsInitParameters `json:"logPublishingOptions,omitempty" tf:"log_publishing_options,omitempty"` - // Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running Elasticsearch 5.3 and later, Amazon ES takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions of Elasticsearch, Amazon ES takes daily automated snapshots. - SnapshotOptions []SnapshotOptionsInitParameters `json:"snapshotOptions,omitempty" tf:"snapshot_options,omitempty"` +// Configuration block for node-to-node encryption options. Detailed below. +NodeToNodeEncryption []NodeToNodeEncryptionInitParameters `json:"nodeToNodeEncryption,omitempty" tf:"node_to_node_encryption,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running Elasticsearch 5.3 and later, Amazon ES takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions of Elasticsearch, Amazon ES takes daily automated snapshots. +SnapshotOptions []SnapshotOptionsInitParameters `json:"snapshotOptions,omitempty" tf:"snapshot_options,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below. - VPCOptions []VPCOptionsInitParameters `json:"vpcOptions,omitempty" tf:"vpc_options,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below. +VPCOptions []VPCOptionsInitParameters `json:"vpcOptions,omitempty" tf:"vpc_options,omitempty"` } + type DomainObservation struct { - // IAM policy document specifying the access policies for the domain. - AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Key-value string pairs to specify advanced configuration options. - AdvancedOptions map[string]*string `json:"advancedOptions,omitempty" tf:"advanced_options,omitempty"` +// IAM policy document specifying the access policies for the domain. +AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Configuration block for fine-grained access control. Detailed below. - AdvancedSecurityOptions []AdvancedSecurityOptionsObservation `json:"advancedSecurityOptions,omitempty" tf:"advanced_security_options,omitempty"` +// Key-value string pairs to specify advanced configuration options. +AdvancedOptions map[string]*string `json:"advancedOptions,omitempty" tf:"advanced_options,omitempty"` - // ARN of the domain. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Configuration block for fine-grained access control. Detailed below. +AdvancedSecurityOptions []AdvancedSecurityOptionsObservation `json:"advancedSecurityOptions,omitempty" tf:"advanced_security_options,omitempty"` - // Configuration block for the Auto-Tune options of the domain. Detailed below. - AutoTuneOptions []AutoTuneOptionsObservation `json:"autoTuneOptions,omitempty" tf:"auto_tune_options,omitempty"` +// ARN of the domain. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Configuration block for the cluster of the domain. Detailed below. - ClusterConfig []ClusterConfigObservation `json:"clusterConfig,omitempty" tf:"cluster_config,omitempty"` +// Configuration block for the Auto-Tune options of the domain. Detailed below. +AutoTuneOptions []AutoTuneOptionsObservation `json:"autoTuneOptions,omitempty" tf:"auto_tune_options,omitempty"` - // Configuration block for authenticating Kibana with Cognito. Detailed below. - CognitoOptions []CognitoOptionsObservation `json:"cognitoOptions,omitempty" tf:"cognito_options,omitempty"` +// Configuration block for the cluster of the domain. Detailed below. +ClusterConfig []ClusterConfigObservation `json:"clusterConfig,omitempty" tf:"cluster_config,omitempty"` - // Configuration block for domain endpoint HTTP(S) related options. Detailed below. - DomainEndpointOptions []DomainEndpointOptionsObservation `json:"domainEndpointOptions,omitempty" tf:"domain_endpoint_options,omitempty"` +// Configuration block for authenticating Kibana with Cognito. Detailed below. +CognitoOptions []CognitoOptionsObservation `json:"cognitoOptions,omitempty" tf:"cognito_options,omitempty"` - // Unique identifier for the domain. - DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` +// Configuration block for domain endpoint HTTP(S) related options. Detailed below. +DomainEndpointOptions []DomainEndpointOptionsObservation `json:"domainEndpointOptions,omitempty" tf:"domain_endpoint_options,omitempty"` - // Configuration block for EBS related options, may be required based on chosen instance size. Detailed below. - EBSOptions []EBSOptionsObservation `json:"ebsOptions,omitempty" tf:"ebs_options,omitempty"` +// Unique identifier for the domain. +DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` - // Version of Elasticsearch to deploy. Defaults to 1.5. - ElasticsearchVersion *string `json:"elasticsearchVersion,omitempty" tf:"elasticsearch_version,omitempty"` +// Configuration block for EBS related options, may be required based on chosen instance size. Detailed below. +EBSOptions []EBSOptionsObservation `json:"ebsOptions,omitempty" tf:"ebs_options,omitempty"` - // Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below. - EncryptAtRest []EncryptAtRestObservation `json:"encryptAtRest,omitempty" tf:"encrypt_at_rest,omitempty"` +// Version of Elasticsearch to deploy. Defaults to 1.5. +ElasticsearchVersion *string `json:"elasticsearchVersion,omitempty" tf:"elasticsearch_version,omitempty"` - // Domain-specific endpoint used to submit index, search, and data upload requests. - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below. +EncryptAtRest []EncryptAtRestObservation `json:"encryptAtRest,omitempty" tf:"encrypt_at_rest,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Domain-specific endpoint used to submit index, search, and data upload requests. +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // Domain-specific endpoint for kibana without https scheme. - KibanaEndpoint *string `json:"kibanaEndpoint,omitempty" tf:"kibana_endpoint,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below. - LogPublishingOptions []LogPublishingOptionsObservation `json:"logPublishingOptions,omitempty" tf:"log_publishing_options,omitempty"` +// Domain-specific endpoint for kibana without https scheme. +KibanaEndpoint *string `json:"kibanaEndpoint,omitempty" tf:"kibana_endpoint,omitempty"` - // Configuration block for node-to-node encryption options. Detailed below. - NodeToNodeEncryption []NodeToNodeEncryptionObservation `json:"nodeToNodeEncryption,omitempty" tf:"node_to_node_encryption,omitempty"` +// Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below. +LogPublishingOptions []LogPublishingOptionsObservation `json:"logPublishingOptions,omitempty" tf:"log_publishing_options,omitempty"` - // Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running Elasticsearch 5.3 and later, Amazon ES takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions of Elasticsearch, Amazon ES takes daily automated snapshots. - SnapshotOptions []SnapshotOptionsObservation `json:"snapshotOptions,omitempty" tf:"snapshot_options,omitempty"` +// Configuration block for node-to-node encryption options. Detailed below. +NodeToNodeEncryption []NodeToNodeEncryptionObservation `json:"nodeToNodeEncryption,omitempty" tf:"node_to_node_encryption,omitempty"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running Elasticsearch 5.3 and later, Amazon ES takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions of Elasticsearch, Amazon ES takes daily automated snapshots. +SnapshotOptions []SnapshotOptionsObservation `json:"snapshotOptions,omitempty" tf:"snapshot_options,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below. - VPCOptions []VPCOptionsObservation `json:"vpcOptions,omitempty" tf:"vpc_options,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below. +VPCOptions []VPCOptionsObservation `json:"vpcOptions,omitempty" tf:"vpc_options,omitempty"` } + type DomainParameters struct { - // IAM policy document specifying the access policies for the domain. - // +kubebuilder:validation:Optional - AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Key-value string pairs to specify advanced configuration options. - // +kubebuilder:validation:Optional - AdvancedOptions map[string]*string `json:"advancedOptions,omitempty" tf:"advanced_options,omitempty"` +// IAM policy document specifying the access policies for the domain. +// +kubebuilder:validation:Optional +AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Configuration block for fine-grained access control. Detailed below. - // +kubebuilder:validation:Optional - AdvancedSecurityOptions []AdvancedSecurityOptionsParameters `json:"advancedSecurityOptions,omitempty" tf:"advanced_security_options,omitempty"` +// Key-value string pairs to specify advanced configuration options. +// +kubebuilder:validation:Optional +AdvancedOptions map[string]*string `json:"advancedOptions,omitempty" tf:"advanced_options,omitempty"` - // Configuration block for the Auto-Tune options of the domain. Detailed below. - // +kubebuilder:validation:Optional - AutoTuneOptions []AutoTuneOptionsParameters `json:"autoTuneOptions,omitempty" tf:"auto_tune_options,omitempty"` +// Configuration block for fine-grained access control. Detailed below. +// +kubebuilder:validation:Optional +AdvancedSecurityOptions []AdvancedSecurityOptionsParameters `json:"advancedSecurityOptions,omitempty" tf:"advanced_security_options,omitempty"` - // Configuration block for the cluster of the domain. Detailed below. - // +kubebuilder:validation:Optional - ClusterConfig []ClusterConfigParameters `json:"clusterConfig,omitempty" tf:"cluster_config,omitempty"` +// Configuration block for the Auto-Tune options of the domain. Detailed below. +// +kubebuilder:validation:Optional +AutoTuneOptions []AutoTuneOptionsParameters `json:"autoTuneOptions,omitempty" tf:"auto_tune_options,omitempty"` - // Configuration block for authenticating Kibana with Cognito. Detailed below. - // +kubebuilder:validation:Optional - CognitoOptions []CognitoOptionsParameters `json:"cognitoOptions,omitempty" tf:"cognito_options,omitempty"` +// Configuration block for the cluster of the domain. Detailed below. +// +kubebuilder:validation:Optional +ClusterConfig []ClusterConfigParameters `json:"clusterConfig,omitempty" tf:"cluster_config,omitempty"` - // Configuration block for domain endpoint HTTP(S) related options. Detailed below. - // +kubebuilder:validation:Optional - DomainEndpointOptions []DomainEndpointOptionsParameters `json:"domainEndpointOptions,omitempty" tf:"domain_endpoint_options,omitempty"` +// Configuration block for authenticating Kibana with Cognito. Detailed below. +// +kubebuilder:validation:Optional +CognitoOptions []CognitoOptionsParameters `json:"cognitoOptions,omitempty" tf:"cognito_options,omitempty"` - // Configuration block for EBS related options, may be required based on chosen instance size. Detailed below. - // +kubebuilder:validation:Optional - EBSOptions []EBSOptionsParameters `json:"ebsOptions,omitempty" tf:"ebs_options,omitempty"` +// Configuration block for domain endpoint HTTP(S) related options. Detailed below. +// +kubebuilder:validation:Optional +DomainEndpointOptions []DomainEndpointOptionsParameters `json:"domainEndpointOptions,omitempty" tf:"domain_endpoint_options,omitempty"` - // Version of Elasticsearch to deploy. Defaults to 1.5. - // +kubebuilder:validation:Optional - ElasticsearchVersion *string `json:"elasticsearchVersion,omitempty" tf:"elasticsearch_version,omitempty"` +// Configuration block for EBS related options, may be required based on chosen instance size. Detailed below. +// +kubebuilder:validation:Optional +EBSOptions []EBSOptionsParameters `json:"ebsOptions,omitempty" tf:"ebs_options,omitempty"` - // Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below. - // +kubebuilder:validation:Optional - EncryptAtRest []EncryptAtRestParameters `json:"encryptAtRest,omitempty" tf:"encrypt_at_rest,omitempty"` +// Version of Elasticsearch to deploy. Defaults to 1.5. +// +kubebuilder:validation:Optional +ElasticsearchVersion *string `json:"elasticsearchVersion,omitempty" tf:"elasticsearch_version,omitempty"` - // Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below. - // +kubebuilder:validation:Optional - LogPublishingOptions []LogPublishingOptionsParameters `json:"logPublishingOptions,omitempty" tf:"log_publishing_options,omitempty"` +// Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below. +// +kubebuilder:validation:Optional +EncryptAtRest []EncryptAtRestParameters `json:"encryptAtRest,omitempty" tf:"encrypt_at_rest,omitempty"` - // Configuration block for node-to-node encryption options. Detailed below. - // +kubebuilder:validation:Optional - NodeToNodeEncryption []NodeToNodeEncryptionParameters `json:"nodeToNodeEncryption,omitempty" tf:"node_to_node_encryption,omitempty"` +// Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below. +// +kubebuilder:validation:Optional +LogPublishingOptions []LogPublishingOptionsParameters `json:"logPublishingOptions,omitempty" tf:"log_publishing_options,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Configuration block for node-to-node encryption options. Detailed below. +// +kubebuilder:validation:Optional +NodeToNodeEncryption []NodeToNodeEncryptionParameters `json:"nodeToNodeEncryption,omitempty" tf:"node_to_node_encryption,omitempty"` - // Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running Elasticsearch 5.3 and later, Amazon ES takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions of Elasticsearch, Amazon ES takes daily automated snapshots. - // +kubebuilder:validation:Optional - SnapshotOptions []SnapshotOptionsParameters `json:"snapshotOptions,omitempty" tf:"snapshot_options,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running Elasticsearch 5.3 and later, Amazon ES takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions of Elasticsearch, Amazon ES takes daily automated snapshots. +// +kubebuilder:validation:Optional +SnapshotOptions []SnapshotOptionsParameters `json:"snapshotOptions,omitempty" tf:"snapshot_options,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below. - // +kubebuilder:validation:Optional - VPCOptions []VPCOptionsParameters `json:"vpcOptions,omitempty" tf:"vpc_options,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below. +// +kubebuilder:validation:Optional +VPCOptions []VPCOptionsParameters `json:"vpcOptions,omitempty" tf:"vpc_options,omitempty"` } + type DurationInitParameters struct { - // The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: HOURS. - Unit *string `json:"unit,omitempty" tf:"unit,omitempty"` - // An integer specifying the value of the duration of an Auto-Tune maintenance window. - Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +// The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: HOURS. +Unit *string `json:"unit,omitempty" tf:"unit,omitempty"` + +// An integer specifying the value of the duration of an Auto-Tune maintenance window. +Value *float64 `json:"value,omitempty" tf:"value,omitempty"` } + type DurationObservation struct { - // The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: HOURS. - Unit *string `json:"unit,omitempty" tf:"unit,omitempty"` - // An integer specifying the value of the duration of an Auto-Tune maintenance window. - Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +// The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: HOURS. +Unit *string `json:"unit,omitempty" tf:"unit,omitempty"` + +// An integer specifying the value of the duration of an Auto-Tune maintenance window. +Value *float64 `json:"value,omitempty" tf:"value,omitempty"` } + type DurationParameters struct { - // The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: HOURS. - // +kubebuilder:validation:Optional - Unit *string `json:"unit" tf:"unit,omitempty"` - // An integer specifying the value of the duration of an Auto-Tune maintenance window. - // +kubebuilder:validation:Optional - Value *float64 `json:"value" tf:"value,omitempty"` +// The unit of time specifying the duration of an Auto-Tune maintenance window. Valid values: HOURS. +// +kubebuilder:validation:Optional +Unit *string `json:"unit" tf:"unit,omitempty"` + +// An integer specifying the value of the duration of an Auto-Tune maintenance window. +// +kubebuilder:validation:Optional +Value *float64 `json:"value" tf:"value,omitempty"` } + type EBSOptionsInitParameters struct { - // Whether EBS volumes are attached to data nodes in the domain. - EBSEnabled *bool `json:"ebsEnabled,omitempty" tf:"ebs_enabled,omitempty"` - // Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Whether EBS volumes are attached to data nodes in the domain. +EBSEnabled *bool `json:"ebsEnabled,omitempty" tf:"ebs_enabled,omitempty"` + +// Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type. - Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` +// Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type. +Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` - // Size of EBS volumes attached to data nodes (in GiB). - VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` +// Size of EBS volumes attached to data nodes (in GiB). +VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` - // Type of EBS volumes attached to data nodes. - VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +// Type of EBS volumes attached to data nodes. +VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` } + type EBSOptionsObservation struct { - // Whether EBS volumes are attached to data nodes in the domain. - EBSEnabled *bool `json:"ebsEnabled,omitempty" tf:"ebs_enabled,omitempty"` - // Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Whether EBS volumes are attached to data nodes in the domain. +EBSEnabled *bool `json:"ebsEnabled,omitempty" tf:"ebs_enabled,omitempty"` + +// Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type. - Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` +// Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type. +Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` - // Size of EBS volumes attached to data nodes (in GiB). - VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` +// Size of EBS volumes attached to data nodes (in GiB). +VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` - // Type of EBS volumes attached to data nodes. - VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +// Type of EBS volumes attached to data nodes. +VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` } + type EBSOptionsParameters struct { - // Whether EBS volumes are attached to data nodes in the domain. - // +kubebuilder:validation:Optional - EBSEnabled *bool `json:"ebsEnabled" tf:"ebs_enabled,omitempty"` - // Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types. - // +kubebuilder:validation:Optional - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Whether EBS volumes are attached to data nodes in the domain. +// +kubebuilder:validation:Optional +EBSEnabled *bool `json:"ebsEnabled" tf:"ebs_enabled,omitempty"` + +// Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types. +// +kubebuilder:validation:Optional +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type. - // +kubebuilder:validation:Optional - Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` +// Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type. +// +kubebuilder:validation:Optional +Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` - // Size of EBS volumes attached to data nodes (in GiB). - // +kubebuilder:validation:Optional - VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` +// Size of EBS volumes attached to data nodes (in GiB). +// +kubebuilder:validation:Optional +VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` - // Type of EBS volumes attached to data nodes. - // +kubebuilder:validation:Optional - VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +// Type of EBS volumes attached to data nodes. +// +kubebuilder:validation:Optional +VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` } + type EncryptAtRestInitParameters struct { - // Whether to enable encryption at rest. If the encrypt_at_rest block is not provided then this defaults to false. Enabling encryption on new domains requires elasticsearch_version 5.1 or greater. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the aws/es service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// Whether to enable encryption at rest. If the encrypt_at_rest block is not provided then this defaults to false. Enabling encryption on new domains requires elasticsearch_version 5.1 or greater. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the aws/es service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` } + type EncryptAtRestObservation struct { - // Whether to enable encryption at rest. If the encrypt_at_rest block is not provided then this defaults to false. Enabling encryption on new domains requires elasticsearch_version 5.1 or greater. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the aws/es service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// Whether to enable encryption at rest. If the encrypt_at_rest block is not provided then this defaults to false. Enabling encryption on new domains requires elasticsearch_version 5.1 or greater. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the aws/es service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` } + type EncryptAtRestParameters struct { - // Whether to enable encryption at rest. If the encrypt_at_rest block is not provided then this defaults to false. Enabling encryption on new domains requires elasticsearch_version 5.1 or greater. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` - // KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the aws/es service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// Whether to enable encryption at rest. If the encrypt_at_rest block is not provided then this defaults to false. Enabling encryption on new domains requires elasticsearch_version 5.1 or greater. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the aws/es service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` } + type LogPublishingOptionsInitParameters struct { - // ARN of the Cloudwatch log group to which log needs to be published. - CloudwatchLogGroupArn *string `json:"cloudwatchLogGroupArn,omitempty" tf:"cloudwatch_log_group_arn,omitempty"` - // Whether given log publishing option is enabled or not. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// ARN of the Cloudwatch log group to which log needs to be published. +CloudwatchLogGroupArn *string `json:"cloudwatchLogGroupArn,omitempty" tf:"cloudwatch_log_group_arn,omitempty"` + +// Whether given log publishing option is enabled or not. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS. - LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` +// Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS. +LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` } + type LogPublishingOptionsObservation struct { - // ARN of the Cloudwatch log group to which log needs to be published. - CloudwatchLogGroupArn *string `json:"cloudwatchLogGroupArn,omitempty" tf:"cloudwatch_log_group_arn,omitempty"` - // Whether given log publishing option is enabled or not. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// ARN of the Cloudwatch log group to which log needs to be published. +CloudwatchLogGroupArn *string `json:"cloudwatchLogGroupArn,omitempty" tf:"cloudwatch_log_group_arn,omitempty"` - // Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS. - LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` +// Whether given log publishing option is enabled or not. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS. +LogType *string `json:"logType,omitempty" tf:"log_type,omitempty"` } + type LogPublishingOptionsParameters struct { - // ARN of the Cloudwatch log group to which log needs to be published. - // +kubebuilder:validation:Optional - CloudwatchLogGroupArn *string `json:"cloudwatchLogGroupArn" tf:"cloudwatch_log_group_arn,omitempty"` - // Whether given log publishing option is enabled or not. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// ARN of the Cloudwatch log group to which log needs to be published. +// +kubebuilder:validation:Optional +CloudwatchLogGroupArn *string `json:"cloudwatchLogGroupArn" tf:"cloudwatch_log_group_arn,omitempty"` - // Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS. - // +kubebuilder:validation:Optional - LogType *string `json:"logType" tf:"log_type,omitempty"` +// Whether given log publishing option is enabled or not. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Type of Elasticsearch log. Valid values: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS, ES_APPLICATION_LOGS, AUDIT_LOGS. +// +kubebuilder:validation:Optional +LogType *string `json:"logType" tf:"log_type,omitempty"` } + type MaintenanceScheduleInitParameters struct { - // A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule. - CronExpressionForRecurrence *string `json:"cronExpressionForRecurrence,omitempty" tf:"cron_expression_for_recurrence,omitempty"` - // Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. - Duration []DurationInitParameters `json:"duration,omitempty" tf:"duration,omitempty"` +// A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule. +CronExpressionForRecurrence *string `json:"cronExpressionForRecurrence,omitempty" tf:"cron_expression_for_recurrence,omitempty"` - // Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. - StartAt *string `json:"startAt,omitempty" tf:"start_at,omitempty"` +// Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. +Duration []DurationInitParameters `json:"duration,omitempty" tf:"duration,omitempty"` + +// Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. +StartAt *string `json:"startAt,omitempty" tf:"start_at,omitempty"` } + type MaintenanceScheduleObservation struct { - // A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule. - CronExpressionForRecurrence *string `json:"cronExpressionForRecurrence,omitempty" tf:"cron_expression_for_recurrence,omitempty"` - // Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. - Duration []DurationObservation `json:"duration,omitempty" tf:"duration,omitempty"` +// A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule. +CronExpressionForRecurrence *string `json:"cronExpressionForRecurrence,omitempty" tf:"cron_expression_for_recurrence,omitempty"` + +// Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. +Duration []DurationObservation `json:"duration,omitempty" tf:"duration,omitempty"` - // Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. - StartAt *string `json:"startAt,omitempty" tf:"start_at,omitempty"` +// Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. +StartAt *string `json:"startAt,omitempty" tf:"start_at,omitempty"` } + type MaintenanceScheduleParameters struct { - // A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule. - // +kubebuilder:validation:Optional - CronExpressionForRecurrence *string `json:"cronExpressionForRecurrence" tf:"cron_expression_for_recurrence,omitempty"` - // Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. - // +kubebuilder:validation:Optional - Duration []DurationParameters `json:"duration" tf:"duration,omitempty"` +// A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule. +// +kubebuilder:validation:Optional +CronExpressionForRecurrence *string `json:"cronExpressionForRecurrence" tf:"cron_expression_for_recurrence,omitempty"` + +// Configuration block for the duration of the Auto-Tune maintenance window. Detailed below. +// +kubebuilder:validation:Optional +Duration []DurationParameters `json:"duration" tf:"duration,omitempty"` - // Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. - // +kubebuilder:validation:Optional - StartAt *string `json:"startAt" tf:"start_at,omitempty"` +// Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format. +// +kubebuilder:validation:Optional +StartAt *string `json:"startAt" tf:"start_at,omitempty"` } + type MasterUserOptionsInitParameters struct { - // ARN for the main user. Only specify if internal_user_database_enabled is not set or set to false. - MasterUserArn *string `json:"masterUserArn,omitempty" tf:"master_user_arn,omitempty"` - // Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. - MasterUserName *string `json:"masterUserName,omitempty" tf:"master_user_name,omitempty"` +// ARN for the main user. Only specify if internal_user_database_enabled is not set or set to false. +MasterUserArn *string `json:"masterUserArn,omitempty" tf:"master_user_arn,omitempty"` + +// Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. +MasterUserName *string `json:"masterUserName,omitempty" tf:"master_user_name,omitempty"` } + type MasterUserOptionsObservation struct { - // ARN for the main user. Only specify if internal_user_database_enabled is not set or set to false. - MasterUserArn *string `json:"masterUserArn,omitempty" tf:"master_user_arn,omitempty"` - // Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. - MasterUserName *string `json:"masterUserName,omitempty" tf:"master_user_name,omitempty"` +// ARN for the main user. Only specify if internal_user_database_enabled is not set or set to false. +MasterUserArn *string `json:"masterUserArn,omitempty" tf:"master_user_arn,omitempty"` + +// Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. +MasterUserName *string `json:"masterUserName,omitempty" tf:"master_user_name,omitempty"` } + type MasterUserOptionsParameters struct { - // ARN for the main user. Only specify if internal_user_database_enabled is not set or set to false. - // +kubebuilder:validation:Optional - MasterUserArn *string `json:"masterUserArn,omitempty" tf:"master_user_arn,omitempty"` - // Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. - // +kubebuilder:validation:Optional - MasterUserName *string `json:"masterUserName,omitempty" tf:"master_user_name,omitempty"` +// ARN for the main user. Only specify if internal_user_database_enabled is not set or set to false. +// +kubebuilder:validation:Optional +MasterUserArn *string `json:"masterUserArn,omitempty" tf:"master_user_arn,omitempty"` + +// Main user's username, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. +// +kubebuilder:validation:Optional +MasterUserName *string `json:"masterUserName,omitempty" tf:"master_user_name,omitempty"` - // Main user's password, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. - // +kubebuilder:validation:Optional - MasterUserPasswordSecretRef *v1.SecretKeySelector `json:"masterUserPasswordSecretRef,omitempty" tf:"-"` +// Main user's password, which is stored in the Amazon Elasticsearch Service domain's internal database. Only specify if internal_user_database_enabled is set to true. +// +kubebuilder:validation:Optional +MasterUserPasswordSecretRef *v1.SecretKeySelector `json:"masterUserPasswordSecretRef,omitempty" tf:"-"` } + type NodeToNodeEncryptionInitParameters struct { - // Whether to enable node-to-node encryption. If the node_to_node_encryption block is not provided then this defaults to false. Enabling node-to-node encryption of a new domain requires an elasticsearch_version of 6.0 or greater. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Whether to enable node-to-node encryption. If the node_to_node_encryption block is not provided then this defaults to false. Enabling node-to-node encryption of a new domain requires an elasticsearch_version of 6.0 or greater. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type NodeToNodeEncryptionObservation struct { - // Whether to enable node-to-node encryption. If the node_to_node_encryption block is not provided then this defaults to false. Enabling node-to-node encryption of a new domain requires an elasticsearch_version of 6.0 or greater. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Whether to enable node-to-node encryption. If the node_to_node_encryption block is not provided then this defaults to false. Enabling node-to-node encryption of a new domain requires an elasticsearch_version of 6.0 or greater. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type NodeToNodeEncryptionParameters struct { - // Whether to enable node-to-node encryption. If the node_to_node_encryption block is not provided then this defaults to false. Enabling node-to-node encryption of a new domain requires an elasticsearch_version of 6.0 or greater. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// Whether to enable node-to-node encryption. If the node_to_node_encryption block is not provided then this defaults to false. Enabling node-to-node encryption of a new domain requires an elasticsearch_version of 6.0 or greater. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` } + type SnapshotOptionsInitParameters struct { - // Hour during which the service takes an automated daily snapshot of the indices in the domain. - AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour,omitempty" tf:"automated_snapshot_start_hour,omitempty"` + +// Hour during which the service takes an automated daily snapshot of the indices in the domain. +AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour,omitempty" tf:"automated_snapshot_start_hour,omitempty"` } + type SnapshotOptionsObservation struct { - // Hour during which the service takes an automated daily snapshot of the indices in the domain. - AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour,omitempty" tf:"automated_snapshot_start_hour,omitempty"` + +// Hour during which the service takes an automated daily snapshot of the indices in the domain. +AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour,omitempty" tf:"automated_snapshot_start_hour,omitempty"` } + type SnapshotOptionsParameters struct { - // Hour during which the service takes an automated daily snapshot of the indices in the domain. - // +kubebuilder:validation:Optional - AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour" tf:"automated_snapshot_start_hour,omitempty"` + +// Hour during which the service takes an automated daily snapshot of the indices in the domain. +// +kubebuilder:validation:Optional +AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour" tf:"automated_snapshot_start_hour,omitempty"` } + type VPCOptionsInitParameters struct { - // List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + +// List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` } + type VPCOptionsObservation struct { - // If the domain was created inside a VPC, the names of the availability zones the configured subnet_ids were created inside. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +// If the domain was created inside a VPC, the names of the availability zones the configured subnet_ids were created inside. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // If the domain was created inside a VPC, the ID of the VPC. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` + +// If the domain was created inside a VPC, the ID of the VPC. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type VPCOptionsParameters struct { - // List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. - // +kubebuilder:validation:Optional - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. - // +kubebuilder:validation:Optional - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// List of VPC Security Group IDs to be applied to the Elasticsearch domain endpoints. If omitted, the default Security Group for the VPC will be used. +// +kubebuilder:validation:Optional +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + +// List of VPC Subnet IDs for the Elasticsearch domain endpoints to be created in. +// +kubebuilder:validation:Optional +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` } + type ZoneAwarenessConfigInitParameters struct { - // Number of Availability Zones for the domain to use with zone_awareness_enabled. Defaults to 2. Valid values: 2 or 3. - AvailabilityZoneCount *float64 `json:"availabilityZoneCount,omitempty" tf:"availability_zone_count,omitempty"` + +// Number of Availability Zones for the domain to use with zone_awareness_enabled. Defaults to 2. Valid values: 2 or 3. +AvailabilityZoneCount *float64 `json:"availabilityZoneCount,omitempty" tf:"availability_zone_count,omitempty"` } + type ZoneAwarenessConfigObservation struct { - // Number of Availability Zones for the domain to use with zone_awareness_enabled. Defaults to 2. Valid values: 2 or 3. - AvailabilityZoneCount *float64 `json:"availabilityZoneCount,omitempty" tf:"availability_zone_count,omitempty"` + +// Number of Availability Zones for the domain to use with zone_awareness_enabled. Defaults to 2. Valid values: 2 or 3. +AvailabilityZoneCount *float64 `json:"availabilityZoneCount,omitempty" tf:"availability_zone_count,omitempty"` } + type ZoneAwarenessConfigParameters struct { - // Number of Availability Zones for the domain to use with zone_awareness_enabled. Defaults to 2. Valid values: 2 or 3. - // +kubebuilder:validation:Optional - AvailabilityZoneCount *float64 `json:"availabilityZoneCount,omitempty" tf:"availability_zone_count,omitempty"` + +// Number of Availability Zones for the domain to use with zone_awareness_enabled. Defaults to 2. Valid values: 2 or 3. +// +kubebuilder:validation:Optional +AvailabilityZoneCount *float64 `json:"availabilityZoneCount,omitempty" tf:"availability_zone_count,omitempty"` } // DomainSpec defines the desired state of Domain type DomainSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider DomainParameters `json:"forProvider"` + ForProvider DomainParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -863,18 +968,18 @@ type DomainSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider DomainInitParameters `json:"initProvider,omitempty"` + InitProvider DomainInitParameters `json:"initProvider,omitempty"` } // DomainStatus defines the observed state of Domain. type DomainStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider DomainObservation `json:"atProvider,omitempty"` + AtProvider DomainObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true -// Domain is the Schema for the Domains API. +// Domain is the Schema for the Domains API. // +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" // +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" @@ -884,9 +989,9 @@ type DomainStatus struct { type Domain struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec DomainSpec `json:"spec"` - Status DomainStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec DomainSpec `json:"spec"` + Status DomainStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticsearch/v1alpha1/zz_domainpolicy_types.go b/apis/elasticsearch/v1alpha1/zz_domainpolicy_types.go index a87c0b7..1b3526d 100755 --- a/apis/elasticsearch/v1alpha1/zz_domainpolicy_types.go +++ b/apis/elasticsearch/v1alpha1/zz_domainpolicy_types.go @@ -15,54 +15,63 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type DomainPolicyInitParameters struct { - // IAM policy document specifying the access policies for the domain - AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` + +// IAM policy document specifying the access policies for the domain +AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` } + type DomainPolicyObservation struct { - // IAM policy document specifying the access policies for the domain - AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Name of the domain. - DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` +// IAM policy document specifying the access policies for the domain +AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` + +// Name of the domain. +DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` } + type DomainPolicyParameters struct { - // IAM policy document specifying the access policies for the domain - // +kubebuilder:validation:Optional - AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` - // Name of the domain. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticsearch/v1alpha1.Domain - // +kubebuilder:validation:Optional - DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` +// IAM policy document specifying the access policies for the domain +// +kubebuilder:validation:Optional +AccessPolicies *string `json:"accessPolicies,omitempty" tf:"access_policies,omitempty"` + +// Name of the domain. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/elasticsearch/v1alpha1.Domain +// +kubebuilder:validation:Optional +DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` - // Reference to a Domain in elasticsearch to populate domainName. - // +kubebuilder:validation:Optional - DomainNameRef *v1.Reference `json:"domainNameRef,omitempty" tf:"-"` +// Reference to a Domain in elasticsearch to populate domainName. +// +kubebuilder:validation:Optional +DomainNameRef *v1.Reference `json:"domainNameRef,omitempty" tf:"-"` - // Selector for a Domain in elasticsearch to populate domainName. - // +kubebuilder:validation:Optional - DomainNameSelector *v1.Selector `json:"domainNameSelector,omitempty" tf:"-"` +// Selector for a Domain in elasticsearch to populate domainName. +// +kubebuilder:validation:Optional +DomainNameSelector *v1.Selector `json:"domainNameSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` } // DomainPolicySpec defines the desired state of DomainPolicy type DomainPolicySpec struct { v1.ResourceSpec `json:",inline"` - ForProvider DomainPolicyParameters `json:"forProvider"` + ForProvider DomainPolicyParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -73,13 +82,13 @@ type DomainPolicySpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider DomainPolicyInitParameters `json:"initProvider,omitempty"` + InitProvider DomainPolicyInitParameters `json:"initProvider,omitempty"` } // DomainPolicyStatus defines the observed state of DomainPolicy. type DomainPolicyStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider DomainPolicyObservation `json:"atProvider,omitempty"` + AtProvider DomainPolicyObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -94,10 +103,10 @@ type DomainPolicyStatus struct { type DomainPolicy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.accessPolicies) || (has(self.initProvider) && has(self.initProvider.accessPolicies))",message="spec.forProvider.accessPolicies is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec DomainPolicySpec `json:"spec"` - Status DomainPolicyStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.accessPolicies) || (has(self.initProvider) && has(self.initProvider.accessPolicies))",message="spec.forProvider.accessPolicies is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec DomainPolicySpec `json:"spec"` + Status DomainPolicyStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/elasticsearch/v1alpha1/zz_domainsamloptions_types.go b/apis/elasticsearch/v1alpha1/zz_domainsamloptions_types.go index 7d43172..624f05b 100755 --- a/apis/elasticsearch/v1alpha1/zz_domainsamloptions_types.go +++ b/apis/elasticsearch/v1alpha1/zz_domainsamloptions_types.go @@ -15,141 +15,162 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type DomainSAMLOptionsInitParameters struct { - // The SAML authentication options for an AWS Elasticsearch Domain. - SAMLOptions []SAMLOptionsInitParameters `json:"samlOptions,omitempty" tf:"saml_options,omitempty"` + +// The SAML authentication options for an AWS Elasticsearch Domain. +SAMLOptions []SAMLOptionsInitParameters `json:"samlOptions,omitempty" tf:"saml_options,omitempty"` } + type DomainSAMLOptionsObservation struct { - // The name of the domain the SAML options are associated with. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The SAML authentication options for an AWS Elasticsearch Domain. - SAMLOptions []SAMLOptionsObservation `json:"samlOptions,omitempty" tf:"saml_options,omitempty"` +// The name of the domain the SAML options are associated with. +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// The SAML authentication options for an AWS Elasticsearch Domain. +SAMLOptions []SAMLOptionsObservation `json:"samlOptions,omitempty" tf:"saml_options,omitempty"` } + type DomainSAMLOptionsParameters struct { - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - // The SAML authentication options for an AWS Elasticsearch Domain. - // +kubebuilder:validation:Optional - SAMLOptions []SAMLOptionsParameters `json:"samlOptions,omitempty" tf:"saml_options,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// The SAML authentication options for an AWS Elasticsearch Domain. +// +kubebuilder:validation:Optional +SAMLOptions []SAMLOptionsParameters `json:"samlOptions,omitempty" tf:"saml_options,omitempty"` } + type IdpInitParameters struct { - // The unique Entity ID of the application in SAML Identity Provider. - EntityID *string `json:"entityId,omitempty" tf:"entity_id,omitempty"` - // The Metadata of the SAML application in xml format. - MetadataContent *string `json:"metadataContent,omitempty" tf:"metadata_content,omitempty"` +// The unique Entity ID of the application in SAML Identity Provider. +EntityID *string `json:"entityId,omitempty" tf:"entity_id,omitempty"` + +// The Metadata of the SAML application in xml format. +MetadataContent *string `json:"metadataContent,omitempty" tf:"metadata_content,omitempty"` } + type IdpObservation struct { - // The unique Entity ID of the application in SAML Identity Provider. - EntityID *string `json:"entityId,omitempty" tf:"entity_id,omitempty"` - // The Metadata of the SAML application in xml format. - MetadataContent *string `json:"metadataContent,omitempty" tf:"metadata_content,omitempty"` +// The unique Entity ID of the application in SAML Identity Provider. +EntityID *string `json:"entityId,omitempty" tf:"entity_id,omitempty"` + +// The Metadata of the SAML application in xml format. +MetadataContent *string `json:"metadataContent,omitempty" tf:"metadata_content,omitempty"` } + type IdpParameters struct { - // The unique Entity ID of the application in SAML Identity Provider. - // +kubebuilder:validation:Optional - EntityID *string `json:"entityId" tf:"entity_id,omitempty"` - // The Metadata of the SAML application in xml format. - // +kubebuilder:validation:Optional - MetadataContent *string `json:"metadataContent" tf:"metadata_content,omitempty"` +// The unique Entity ID of the application in SAML Identity Provider. +// +kubebuilder:validation:Optional +EntityID *string `json:"entityId" tf:"entity_id,omitempty"` + +// The Metadata of the SAML application in xml format. +// +kubebuilder:validation:Optional +MetadataContent *string `json:"metadataContent" tf:"metadata_content,omitempty"` } + type SAMLOptionsInitParameters struct { - // Whether SAML authentication is enabled. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Information from your identity provider. - Idp []IdpInitParameters `json:"idp,omitempty" tf:"idp,omitempty"` +// Whether SAML authentication is enabled. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // This backend role from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. - MasterBackendRole *string `json:"masterBackendRole,omitempty" tf:"master_backend_role,omitempty"` +// Information from your identity provider. +Idp []IdpInitParameters `json:"idp,omitempty" tf:"idp,omitempty"` - // Element of the SAML assertion to use for backend roles. Default is roles. - RolesKey *string `json:"rolesKey,omitempty" tf:"roles_key,omitempty"` +// This backend role from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. +MasterBackendRole *string `json:"masterBackendRole,omitempty" tf:"master_backend_role,omitempty"` - // Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. - SessionTimeoutMinutes *float64 `json:"sessionTimeoutMinutes,omitempty" tf:"session_timeout_minutes,omitempty"` +// Element of the SAML assertion to use for backend roles. Default is roles. +RolesKey *string `json:"rolesKey,omitempty" tf:"roles_key,omitempty"` - // Custom SAML attribute to use for user names. Default is an empty string - "". This will cause Elasticsearch to use the NameID element of the Subject, which is the default location for name identifiers in the SAML specification. - SubjectKey *string `json:"subjectKey,omitempty" tf:"subject_key,omitempty"` +// Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. +SessionTimeoutMinutes *float64 `json:"sessionTimeoutMinutes,omitempty" tf:"session_timeout_minutes,omitempty"` + +// Custom SAML attribute to use for user names. Default is an empty string - "". This will cause Elasticsearch to use the NameID element of the Subject, which is the default location for name identifiers in the SAML specification. +SubjectKey *string `json:"subjectKey,omitempty" tf:"subject_key,omitempty"` } + type SAMLOptionsObservation struct { - // Whether SAML authentication is enabled. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Information from your identity provider. - Idp []IdpObservation `json:"idp,omitempty" tf:"idp,omitempty"` +// Whether SAML authentication is enabled. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Information from your identity provider. +Idp []IdpObservation `json:"idp,omitempty" tf:"idp,omitempty"` - // This backend role from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. - MasterBackendRole *string `json:"masterBackendRole,omitempty" tf:"master_backend_role,omitempty"` +// This backend role from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. +MasterBackendRole *string `json:"masterBackendRole,omitempty" tf:"master_backend_role,omitempty"` - // Element of the SAML assertion to use for backend roles. Default is roles. - RolesKey *string `json:"rolesKey,omitempty" tf:"roles_key,omitempty"` +// Element of the SAML assertion to use for backend roles. Default is roles. +RolesKey *string `json:"rolesKey,omitempty" tf:"roles_key,omitempty"` - // Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. - SessionTimeoutMinutes *float64 `json:"sessionTimeoutMinutes,omitempty" tf:"session_timeout_minutes,omitempty"` +// Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. +SessionTimeoutMinutes *float64 `json:"sessionTimeoutMinutes,omitempty" tf:"session_timeout_minutes,omitempty"` - // Custom SAML attribute to use for user names. Default is an empty string - "". This will cause Elasticsearch to use the NameID element of the Subject, which is the default location for name identifiers in the SAML specification. - SubjectKey *string `json:"subjectKey,omitempty" tf:"subject_key,omitempty"` +// Custom SAML attribute to use for user names. Default is an empty string - "". This will cause Elasticsearch to use the NameID element of the Subject, which is the default location for name identifiers in the SAML specification. +SubjectKey *string `json:"subjectKey,omitempty" tf:"subject_key,omitempty"` } + type SAMLOptionsParameters struct { - // Whether SAML authentication is enabled. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Information from your identity provider. - // +kubebuilder:validation:Optional - Idp []IdpParameters `json:"idp,omitempty" tf:"idp,omitempty"` +// Whether SAML authentication is enabled. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Information from your identity provider. +// +kubebuilder:validation:Optional +Idp []IdpParameters `json:"idp,omitempty" tf:"idp,omitempty"` - // This backend role from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. - // +kubebuilder:validation:Optional - MasterBackendRole *string `json:"masterBackendRole,omitempty" tf:"master_backend_role,omitempty"` +// This backend role from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. +// +kubebuilder:validation:Optional +MasterBackendRole *string `json:"masterBackendRole,omitempty" tf:"master_backend_role,omitempty"` - // This username from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. - // +kubebuilder:validation:Optional - MasterUserNameSecretRef *v1.SecretKeySelector `json:"masterUserNameSecretRef,omitempty" tf:"-"` +// This username from the SAML IdP receives full permissions to the cluster, equivalent to a new master user. +// +kubebuilder:validation:Optional +MasterUserNameSecretRef *v1.SecretKeySelector `json:"masterUserNameSecretRef,omitempty" tf:"-"` - // Element of the SAML assertion to use for backend roles. Default is roles. - // +kubebuilder:validation:Optional - RolesKey *string `json:"rolesKey,omitempty" tf:"roles_key,omitempty"` +// Element of the SAML assertion to use for backend roles. Default is roles. +// +kubebuilder:validation:Optional +RolesKey *string `json:"rolesKey,omitempty" tf:"roles_key,omitempty"` - // Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. - // +kubebuilder:validation:Optional - SessionTimeoutMinutes *float64 `json:"sessionTimeoutMinutes,omitempty" tf:"session_timeout_minutes,omitempty"` +// Duration of a session in minutes after a user logs in. Default is 60. Maximum value is 1,440. +// +kubebuilder:validation:Optional +SessionTimeoutMinutes *float64 `json:"sessionTimeoutMinutes,omitempty" tf:"session_timeout_minutes,omitempty"` - // Custom SAML attribute to use for user names. Default is an empty string - "". This will cause Elasticsearch to use the NameID element of the Subject, which is the default location for name identifiers in the SAML specification. - // +kubebuilder:validation:Optional - SubjectKey *string `json:"subjectKey,omitempty" tf:"subject_key,omitempty"` +// Custom SAML attribute to use for user names. Default is an empty string - "". This will cause Elasticsearch to use the NameID element of the Subject, which is the default location for name identifiers in the SAML specification. +// +kubebuilder:validation:Optional +SubjectKey *string `json:"subjectKey,omitempty" tf:"subject_key,omitempty"` } // DomainSAMLOptionsSpec defines the desired state of DomainSAMLOptions type DomainSAMLOptionsSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider DomainSAMLOptionsParameters `json:"forProvider"` + ForProvider DomainSAMLOptionsParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -160,18 +181,18 @@ type DomainSAMLOptionsSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider DomainSAMLOptionsInitParameters `json:"initProvider,omitempty"` + InitProvider DomainSAMLOptionsInitParameters `json:"initProvider,omitempty"` } // DomainSAMLOptionsStatus defines the observed state of DomainSAMLOptions. type DomainSAMLOptionsStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider DomainSAMLOptionsObservation `json:"atProvider,omitempty"` + AtProvider DomainSAMLOptionsObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true -// DomainSAMLOptions is the Schema for the DomainSAMLOptionss API. +// DomainSAMLOptions is the Schema for the DomainSAMLOptionss API. // +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" // +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" @@ -181,9 +202,9 @@ type DomainSAMLOptionsStatus struct { type DomainSAMLOptions struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec DomainSAMLOptionsSpec `json:"spec"` - Status DomainSAMLOptionsStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec DomainSAMLOptionsSpec `json:"spec"` + Status DomainSAMLOptionsStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/iam/v1alpha1/zz_role_types.go b/apis/iam/v1alpha1/zz_role_types.go index 0eb00d5..0e62f6f 100755 --- a/apis/iam/v1alpha1/zz_role_types.go +++ b/apis/iam/v1alpha1/zz_role_types.go @@ -15,178 +15,200 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type InlinePolicyInitParameters struct { - // Friendly name of the role. See IAM Identifiers for more information. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Policy document as a JSON formatted string. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// Friendly name of the role. See IAM Identifiers for more information. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Policy document as a JSON formatted string. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` } + type InlinePolicyObservation struct { - // Friendly name of the role. See IAM Identifiers for more information. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Policy document as a JSON formatted string. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// Friendly name of the role. See IAM Identifiers for more information. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Policy document as a JSON formatted string. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` } + type InlinePolicyParameters struct { - // Friendly name of the role. See IAM Identifiers for more information. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Policy document as a JSON formatted string. - // +kubebuilder:validation:Optional - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// Friendly name of the role. See IAM Identifiers for more information. +// +kubebuilder:validation:Optional +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Policy document as a JSON formatted string. +// +kubebuilder:validation:Optional +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` } + type RoleInitParameters struct { - // Policy that grants an entity permission to assume the role. - AssumeRolePolicy *string `json:"assumeRolePolicy,omitempty" tf:"assume_role_policy,omitempty"` - // Description of the role. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Policy that grants an entity permission to assume the role. +AssumeRolePolicy *string `json:"assumeRolePolicy,omitempty" tf:"assume_role_policy,omitempty"` + +// Description of the role. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Whether to force detaching any policies the role has before destroying it. Defaults to false. - ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty" tf:"force_detach_policies,omitempty"` +// Whether to force detaching any policies the role has before destroying it. Defaults to false. +ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty" tf:"force_detach_policies,omitempty"` - // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Crossplane will not manage any inline policies in this resource. Configuring one empty block (i.e., inline_policy {}) will cause Crossplane to remove all inline policies added out of band on apply. - InlinePolicy []InlinePolicyInitParameters `json:"inlinePolicy,omitempty" tf:"inline_policy,omitempty"` +// Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Crossplane will not manage any inline policies in this resource. Configuring one empty block (i.e., inline_policy {}) will cause Crossplane to remove all inline policies added out of band on apply. +InlinePolicy []InlinePolicyInitParameters `json:"inlinePolicy,omitempty" tf:"inline_policy,omitempty"` - // Set of exclusive IAM managed policy ARNs to attach to the IAM role. If this attribute is not configured, Crossplane will ignore policy attachments to this resource. When configured, Crossplane will align the role's managed policy attachments with this set by attaching or detaching managed policies. Configuring an empty set (i.e., managed_policy_arns = []) will cause Crossplane to remove all managed policy attachments. - ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty" tf:"managed_policy_arns,omitempty"` +// Set of exclusive IAM managed policy ARNs to attach to the IAM role. If this attribute is not configured, Crossplane will ignore policy attachments to this resource. When configured, Crossplane will align the role's managed policy attachments with this set by attaching or detaching managed policies. Configuring an empty set (i.e., managed_policy_arns = []) will cause Crossplane to remove all managed policy attachments. +ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty" tf:"managed_policy_arns,omitempty"` - // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. - MaxSessionDuration *float64 `json:"maxSessionDuration,omitempty" tf:"max_session_duration,omitempty"` +// Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. +MaxSessionDuration *float64 `json:"maxSessionDuration,omitempty" tf:"max_session_duration,omitempty"` - // Path to the role. See IAM Identifiers for more information. - Path *string `json:"path,omitempty" tf:"path,omitempty"` +// Path to the role. See IAM Identifiers for more information. +Path *string `json:"path,omitempty" tf:"path,omitempty"` - // ARN of the policy that is used to set the permissions boundary for the role. - PermissionsBoundary *string `json:"permissionsBoundary,omitempty" tf:"permissions_boundary,omitempty"` +// ARN of the policy that is used to set the permissions boundary for the role. +PermissionsBoundary *string `json:"permissionsBoundary,omitempty" tf:"permissions_boundary,omitempty"` - // Key-value mapping of tags for the IAM role. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value mapping of tags for the IAM role. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type RoleLastUsedInitParameters struct { + } + type RoleLastUsedObservation struct { - LastUsedDate *string `json:"lastUsedDate,omitempty" tf:"last_used_date,omitempty"` - // The name of the AWS Region in which the role was last used. - Region *string `json:"region,omitempty" tf:"region,omitempty"` + +LastUsedDate *string `json:"lastUsedDate,omitempty" tf:"last_used_date,omitempty"` + +// The name of the AWS Region in which the role was last used. +Region *string `json:"region,omitempty" tf:"region,omitempty"` } + type RoleLastUsedParameters struct { + } + type RoleObservation struct { - // Amazon Resource Name (ARN) specifying the role. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Policy that grants an entity permission to assume the role. - AssumeRolePolicy *string `json:"assumeRolePolicy,omitempty" tf:"assume_role_policy,omitempty"` +// Amazon Resource Name (ARN) specifying the role. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Policy that grants an entity permission to assume the role. +AssumeRolePolicy *string `json:"assumeRolePolicy,omitempty" tf:"assume_role_policy,omitempty"` - // Creation date of the IAM role. - CreateDate *string `json:"createDate,omitempty" tf:"create_date,omitempty"` +// Creation date of the IAM role. +CreateDate *string `json:"createDate,omitempty" tf:"create_date,omitempty"` - // Description of the role. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Description of the role. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Whether to force detaching any policies the role has before destroying it. Defaults to false. - ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty" tf:"force_detach_policies,omitempty"` +// Whether to force detaching any policies the role has before destroying it. Defaults to false. +ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty" tf:"force_detach_policies,omitempty"` - // Name of the role. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Name of the role. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Crossplane will not manage any inline policies in this resource. Configuring one empty block (i.e., inline_policy {}) will cause Crossplane to remove all inline policies added out of band on apply. - InlinePolicy []InlinePolicyObservation `json:"inlinePolicy,omitempty" tf:"inline_policy,omitempty"` +// Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Crossplane will not manage any inline policies in this resource. Configuring one empty block (i.e., inline_policy {}) will cause Crossplane to remove all inline policies added out of band on apply. +InlinePolicy []InlinePolicyObservation `json:"inlinePolicy,omitempty" tf:"inline_policy,omitempty"` - // Set of exclusive IAM managed policy ARNs to attach to the IAM role. If this attribute is not configured, Crossplane will ignore policy attachments to this resource. When configured, Crossplane will align the role's managed policy attachments with this set by attaching or detaching managed policies. Configuring an empty set (i.e., managed_policy_arns = []) will cause Crossplane to remove all managed policy attachments. - ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty" tf:"managed_policy_arns,omitempty"` +// Set of exclusive IAM managed policy ARNs to attach to the IAM role. If this attribute is not configured, Crossplane will ignore policy attachments to this resource. When configured, Crossplane will align the role's managed policy attachments with this set by attaching or detaching managed policies. Configuring an empty set (i.e., managed_policy_arns = []) will cause Crossplane to remove all managed policy attachments. +ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty" tf:"managed_policy_arns,omitempty"` - // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. - MaxSessionDuration *float64 `json:"maxSessionDuration,omitempty" tf:"max_session_duration,omitempty"` +// Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. +MaxSessionDuration *float64 `json:"maxSessionDuration,omitempty" tf:"max_session_duration,omitempty"` - // Path to the role. See IAM Identifiers for more information. - Path *string `json:"path,omitempty" tf:"path,omitempty"` +// Path to the role. See IAM Identifiers for more information. +Path *string `json:"path,omitempty" tf:"path,omitempty"` - // ARN of the policy that is used to set the permissions boundary for the role. - PermissionsBoundary *string `json:"permissionsBoundary,omitempty" tf:"permissions_boundary,omitempty"` +// ARN of the policy that is used to set the permissions boundary for the role. +PermissionsBoundary *string `json:"permissionsBoundary,omitempty" tf:"permissions_boundary,omitempty"` - // Contains information about the last time that an IAM role was used. See role_last_used for details. - RoleLastUsed []RoleLastUsedObservation `json:"roleLastUsed,omitempty" tf:"role_last_used,omitempty"` +// Contains information about the last time that an IAM role was used. See role_last_used for details. +RoleLastUsed []RoleLastUsedObservation `json:"roleLastUsed,omitempty" tf:"role_last_used,omitempty"` - // Key-value mapping of tags for the IAM role. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value mapping of tags for the IAM role. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Stable and unique string identifying the role. - UniqueID *string `json:"uniqueId,omitempty" tf:"unique_id,omitempty"` +// Stable and unique string identifying the role. +UniqueID *string `json:"uniqueId,omitempty" tf:"unique_id,omitempty"` } + type RoleParameters struct { - // Policy that grants an entity permission to assume the role. - // +kubebuilder:validation:Optional - AssumeRolePolicy *string `json:"assumeRolePolicy,omitempty" tf:"assume_role_policy,omitempty"` - // Description of the role. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Policy that grants an entity permission to assume the role. +// +kubebuilder:validation:Optional +AssumeRolePolicy *string `json:"assumeRolePolicy,omitempty" tf:"assume_role_policy,omitempty"` + +// Description of the role. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Whether to force detaching any policies the role has before destroying it. Defaults to false. - // +kubebuilder:validation:Optional - ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty" tf:"force_detach_policies,omitempty"` +// Whether to force detaching any policies the role has before destroying it. Defaults to false. +// +kubebuilder:validation:Optional +ForceDetachPolicies *bool `json:"forceDetachPolicies,omitempty" tf:"force_detach_policies,omitempty"` - // Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Crossplane will not manage any inline policies in this resource. Configuring one empty block (i.e., inline_policy {}) will cause Crossplane to remove all inline policies added out of band on apply. - // +kubebuilder:validation:Optional - InlinePolicy []InlinePolicyParameters `json:"inlinePolicy,omitempty" tf:"inline_policy,omitempty"` +// Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, Crossplane will not manage any inline policies in this resource. Configuring one empty block (i.e., inline_policy {}) will cause Crossplane to remove all inline policies added out of band on apply. +// +kubebuilder:validation:Optional +InlinePolicy []InlinePolicyParameters `json:"inlinePolicy,omitempty" tf:"inline_policy,omitempty"` - // Set of exclusive IAM managed policy ARNs to attach to the IAM role. If this attribute is not configured, Crossplane will ignore policy attachments to this resource. When configured, Crossplane will align the role's managed policy attachments with this set by attaching or detaching managed policies. Configuring an empty set (i.e., managed_policy_arns = []) will cause Crossplane to remove all managed policy attachments. - // +kubebuilder:validation:Optional - ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty" tf:"managed_policy_arns,omitempty"` +// Set of exclusive IAM managed policy ARNs to attach to the IAM role. If this attribute is not configured, Crossplane will ignore policy attachments to this resource. When configured, Crossplane will align the role's managed policy attachments with this set by attaching or detaching managed policies. Configuring an empty set (i.e., managed_policy_arns = []) will cause Crossplane to remove all managed policy attachments. +// +kubebuilder:validation:Optional +ManagedPolicyArns []*string `json:"managedPolicyArns,omitempty" tf:"managed_policy_arns,omitempty"` - // Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. - // +kubebuilder:validation:Optional - MaxSessionDuration *float64 `json:"maxSessionDuration,omitempty" tf:"max_session_duration,omitempty"` +// Maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. +// +kubebuilder:validation:Optional +MaxSessionDuration *float64 `json:"maxSessionDuration,omitempty" tf:"max_session_duration,omitempty"` - // Path to the role. See IAM Identifiers for more information. - // +kubebuilder:validation:Optional - Path *string `json:"path,omitempty" tf:"path,omitempty"` +// Path to the role. See IAM Identifiers for more information. +// +kubebuilder:validation:Optional +Path *string `json:"path,omitempty" tf:"path,omitempty"` - // ARN of the policy that is used to set the permissions boundary for the role. - // +kubebuilder:validation:Optional - PermissionsBoundary *string `json:"permissionsBoundary,omitempty" tf:"permissions_boundary,omitempty"` +// ARN of the policy that is used to set the permissions boundary for the role. +// +kubebuilder:validation:Optional +PermissionsBoundary *string `json:"permissionsBoundary,omitempty" tf:"permissions_boundary,omitempty"` - // Key-value mapping of tags for the IAM role. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value mapping of tags for the IAM role. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // RoleSpec defines the desired state of Role type RoleSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider RoleParameters `json:"forProvider"` + ForProvider RoleParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -197,13 +219,13 @@ type RoleSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider RoleInitParameters `json:"initProvider,omitempty"` + InitProvider RoleInitParameters `json:"initProvider,omitempty"` } // RoleStatus defines the observed state of Role. type RoleStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider RoleObservation `json:"atProvider,omitempty"` + AtProvider RoleObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -218,9 +240,9 @@ type RoleStatus struct { type Role struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.assumeRolePolicy) || (has(self.initProvider) && has(self.initProvider.assumeRolePolicy))",message="spec.forProvider.assumeRolePolicy is a required parameter" - Spec RoleSpec `json:"spec"` - Status RoleStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.assumeRolePolicy) || (has(self.initProvider) && has(self.initProvider.assumeRolePolicy))",message="spec.forProvider.assumeRolePolicy is a required parameter" + Spec RoleSpec `json:"spec"` + Status RoleStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/kafka/v1alpha1/zz_cluster_types.go b/apis/kafka/v1alpha1/zz_cluster_types.go index ae7d693..ade630f 100755 --- a/apis/kafka/v1alpha1/zz_cluster_types.go +++ b/apis/kafka/v1alpha1/zz_cluster_types.go @@ -15,798 +15,935 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type BrokerLogsInitParameters struct { - CloudwatchLogs []CloudwatchLogsInitParameters `json:"cloudwatchLogs,omitempty" tf:"cloudwatch_logs,omitempty"` - Firehose []FirehoseInitParameters `json:"firehose,omitempty" tf:"firehose,omitempty"` - S3 []S3InitParameters `json:"s3,omitempty" tf:"s3,omitempty"` +CloudwatchLogs []CloudwatchLogsInitParameters `json:"cloudwatchLogs,omitempty" tf:"cloudwatch_logs,omitempty"` + +Firehose []FirehoseInitParameters `json:"firehose,omitempty" tf:"firehose,omitempty"` + +S3 []S3InitParameters `json:"s3,omitempty" tf:"s3,omitempty"` } + type BrokerLogsObservation struct { - CloudwatchLogs []CloudwatchLogsObservation `json:"cloudwatchLogs,omitempty" tf:"cloudwatch_logs,omitempty"` - Firehose []FirehoseObservation `json:"firehose,omitempty" tf:"firehose,omitempty"` - S3 []S3Observation `json:"s3,omitempty" tf:"s3,omitempty"` +CloudwatchLogs []CloudwatchLogsObservation `json:"cloudwatchLogs,omitempty" tf:"cloudwatch_logs,omitempty"` + +Firehose []FirehoseObservation `json:"firehose,omitempty" tf:"firehose,omitempty"` + +S3 []S3Observation `json:"s3,omitempty" tf:"s3,omitempty"` } + type BrokerLogsParameters struct { - // +kubebuilder:validation:Optional - CloudwatchLogs []CloudwatchLogsParameters `json:"cloudwatchLogs,omitempty" tf:"cloudwatch_logs,omitempty"` - // +kubebuilder:validation:Optional - Firehose []FirehoseParameters `json:"firehose,omitempty" tf:"firehose,omitempty"` +// +kubebuilder:validation:Optional +CloudwatchLogs []CloudwatchLogsParameters `json:"cloudwatchLogs,omitempty" tf:"cloudwatch_logs,omitempty"` + +// +kubebuilder:validation:Optional +Firehose []FirehoseParameters `json:"firehose,omitempty" tf:"firehose,omitempty"` - // +kubebuilder:validation:Optional - S3 []S3Parameters `json:"s3,omitempty" tf:"s3,omitempty"` +// +kubebuilder:validation:Optional +S3 []S3Parameters `json:"s3,omitempty" tf:"s3,omitempty"` } + type BrokerNodeGroupInfoInitParameters struct { - // The distribution of broker nodes across availability zones (documentation). Currently the only valid value is DEFAULT. - AzDistribution *string `json:"azDistribution,omitempty" tf:"az_distribution,omitempty"` - // Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible (documentation). - ConnectivityInfo []ConnectivityInfoInitParameters `json:"connectivityInfo,omitempty" tf:"connectivity_info,omitempty"` +// The distribution of broker nodes across availability zones (documentation). Currently the only valid value is DEFAULT. +AzDistribution *string `json:"azDistribution,omitempty" tf:"az_distribution,omitempty"` - // Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. (Pricing info) - InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` +// Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible (documentation). +ConnectivityInfo []ConnectivityInfoInitParameters `json:"connectivityInfo,omitempty" tf:"connectivity_info,omitempty"` - // A block that contains information about storage volumes attached to MSK broker nodes. See below. - StorageInfo []StorageInfoInitParameters `json:"storageInfo,omitempty" tf:"storage_info,omitempty"` +// Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. (Pricing info) +InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` + +// A block that contains information about storage volumes attached to MSK broker nodes. See below. +StorageInfo []StorageInfoInitParameters `json:"storageInfo,omitempty" tf:"storage_info,omitempty"` } + type BrokerNodeGroupInfoObservation struct { - // The distribution of broker nodes across availability zones (documentation). Currently the only valid value is DEFAULT. - AzDistribution *string `json:"azDistribution,omitempty" tf:"az_distribution,omitempty"` - // A list of subnets to connect to in client VPC (documentation). - ClientSubnets []*string `json:"clientSubnets,omitempty" tf:"client_subnets,omitempty"` +// The distribution of broker nodes across availability zones (documentation). Currently the only valid value is DEFAULT. +AzDistribution *string `json:"azDistribution,omitempty" tf:"az_distribution,omitempty"` - // Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible (documentation). - ConnectivityInfo []ConnectivityInfoObservation `json:"connectivityInfo,omitempty" tf:"connectivity_info,omitempty"` +// A list of subnets to connect to in client VPC (documentation). +ClientSubnets []*string `json:"clientSubnets,omitempty" tf:"client_subnets,omitempty"` - // Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. (Pricing info) - InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` +// Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible (documentation). +ConnectivityInfo []ConnectivityInfoObservation `json:"connectivityInfo,omitempty" tf:"connectivity_info,omitempty"` - // A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster. - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` +// Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. (Pricing info) +InstanceType *string `json:"instanceType,omitempty" tf:"instance_type,omitempty"` - // A block that contains information about storage volumes attached to MSK broker nodes. See below. - StorageInfo []StorageInfoObservation `json:"storageInfo,omitempty" tf:"storage_info,omitempty"` +// A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster. +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` + +// A block that contains information about storage volumes attached to MSK broker nodes. See below. +StorageInfo []StorageInfoObservation `json:"storageInfo,omitempty" tf:"storage_info,omitempty"` } + type BrokerNodeGroupInfoParameters struct { - // The distribution of broker nodes across availability zones (documentation). Currently the only valid value is DEFAULT. - // +kubebuilder:validation:Optional - AzDistribution *string `json:"azDistribution,omitempty" tf:"az_distribution,omitempty"` - // A list of subnets to connect to in client VPC (documentation). - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet - // +kubebuilder:validation:Optional - ClientSubnets []*string `json:"clientSubnets,omitempty" tf:"client_subnets,omitempty"` +// The distribution of broker nodes across availability zones (documentation). Currently the only valid value is DEFAULT. +// +kubebuilder:validation:Optional +AzDistribution *string `json:"azDistribution,omitempty" tf:"az_distribution,omitempty"` - // References to Subnet in ec2 to populate clientSubnets. - // +kubebuilder:validation:Optional - ClientSubnetsRefs []v1.Reference `json:"clientSubnetsRefs,omitempty" tf:"-"` +// A list of subnets to connect to in client VPC (documentation). +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet +// +kubebuilder:validation:Optional +ClientSubnets []*string `json:"clientSubnets,omitempty" tf:"client_subnets,omitempty"` - // Selector for a list of Subnet in ec2 to populate clientSubnets. - // +kubebuilder:validation:Optional - ClientSubnetsSelector *v1.Selector `json:"clientSubnetsSelector,omitempty" tf:"-"` +// References to Subnet in ec2 to populate clientSubnets. +// +kubebuilder:validation:Optional +ClientSubnetsRefs []v1.Reference `json:"clientSubnetsRefs,omitempty" tf:"-"` - // Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible (documentation). - // +kubebuilder:validation:Optional - ConnectivityInfo []ConnectivityInfoParameters `json:"connectivityInfo,omitempty" tf:"connectivity_info,omitempty"` +// Selector for a list of Subnet in ec2 to populate clientSubnets. +// +kubebuilder:validation:Optional +ClientSubnetsSelector *v1.Selector `json:"clientSubnetsSelector,omitempty" tf:"-"` - // Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. (Pricing info) - // +kubebuilder:validation:Optional - InstanceType *string `json:"instanceType" tf:"instance_type,omitempty"` +// Information about the cluster access configuration. See below. For security reasons, you can't turn on public access while creating an MSK cluster. However, you can update an existing cluster to make it publicly accessible. You can also create a new cluster and then update it to make it publicly accessible (documentation). +// +kubebuilder:validation:Optional +ConnectivityInfo []ConnectivityInfoParameters `json:"connectivityInfo,omitempty" tf:"connectivity_info,omitempty"` - // A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +kubebuilder:validation:Optional - SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` +// Specify the instance type to use for the kafka brokersE.g., kafka.m5.large. (Pricing info) +// +kubebuilder:validation:Optional +InstanceType *string `json:"instanceType" tf:"instance_type,omitempty"` - // References to SecurityGroup in ec2 to populate securityGroups. - // +kubebuilder:validation:Optional - SecurityGroupsRefs []v1.Reference `json:"securityGroupsRefs,omitempty" tf:"-"` +// A list of the security groups to associate with the elastic network interfaces to control who can communicate with the cluster. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +kubebuilder:validation:Optional +SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` - // Selector for a list of SecurityGroup in ec2 to populate securityGroups. - // +kubebuilder:validation:Optional - SecurityGroupsSelector *v1.Selector `json:"securityGroupsSelector,omitempty" tf:"-"` +// References to SecurityGroup in ec2 to populate securityGroups. +// +kubebuilder:validation:Optional +SecurityGroupsRefs []v1.Reference `json:"securityGroupsRefs,omitempty" tf:"-"` - // A block that contains information about storage volumes attached to MSK broker nodes. See below. - // +kubebuilder:validation:Optional - StorageInfo []StorageInfoParameters `json:"storageInfo,omitempty" tf:"storage_info,omitempty"` +// Selector for a list of SecurityGroup in ec2 to populate securityGroups. +// +kubebuilder:validation:Optional +SecurityGroupsSelector *v1.Selector `json:"securityGroupsSelector,omitempty" tf:"-"` + +// A block that contains information about storage volumes attached to MSK broker nodes. See below. +// +kubebuilder:validation:Optional +StorageInfo []StorageInfoParameters `json:"storageInfo,omitempty" tf:"storage_info,omitempty"` } + type ClientAuthenticationInitParameters struct { - // Configuration block for specifying SASL client authentication. See below. - Sasl []SaslInitParameters `json:"sasl,omitempty" tf:"sasl,omitempty"` - // Configuration block for specifying TLS client authentication. See below. - TLS []TLSInitParameters `json:"tls,omitempty" tf:"tls,omitempty"` +// Configuration block for specifying SASL client authentication. See below. +Sasl []SaslInitParameters `json:"sasl,omitempty" tf:"sasl,omitempty"` - // Enables unauthenticated access. - Unauthenticated *bool `json:"unauthenticated,omitempty" tf:"unauthenticated,omitempty"` +// Configuration block for specifying TLS client authentication. See below. +TLS []TLSInitParameters `json:"tls,omitempty" tf:"tls,omitempty"` + +// Enables unauthenticated access. +Unauthenticated *bool `json:"unauthenticated,omitempty" tf:"unauthenticated,omitempty"` } + type ClientAuthenticationObservation struct { - // Configuration block for specifying SASL client authentication. See below. - Sasl []SaslObservation `json:"sasl,omitempty" tf:"sasl,omitempty"` - // Configuration block for specifying TLS client authentication. See below. - TLS []TLSObservation `json:"tls,omitempty" tf:"tls,omitempty"` +// Configuration block for specifying SASL client authentication. See below. +Sasl []SaslObservation `json:"sasl,omitempty" tf:"sasl,omitempty"` + +// Configuration block for specifying TLS client authentication. See below. +TLS []TLSObservation `json:"tls,omitempty" tf:"tls,omitempty"` - // Enables unauthenticated access. - Unauthenticated *bool `json:"unauthenticated,omitempty" tf:"unauthenticated,omitempty"` +// Enables unauthenticated access. +Unauthenticated *bool `json:"unauthenticated,omitempty" tf:"unauthenticated,omitempty"` } + type ClientAuthenticationParameters struct { - // Configuration block for specifying SASL client authentication. See below. - // +kubebuilder:validation:Optional - Sasl []SaslParameters `json:"sasl,omitempty" tf:"sasl,omitempty"` - // Configuration block for specifying TLS client authentication. See below. - // +kubebuilder:validation:Optional - TLS []TLSParameters `json:"tls,omitempty" tf:"tls,omitempty"` +// Configuration block for specifying SASL client authentication. See below. +// +kubebuilder:validation:Optional +Sasl []SaslParameters `json:"sasl,omitempty" tf:"sasl,omitempty"` + +// Configuration block for specifying TLS client authentication. See below. +// +kubebuilder:validation:Optional +TLS []TLSParameters `json:"tls,omitempty" tf:"tls,omitempty"` - // Enables unauthenticated access. - // +kubebuilder:validation:Optional - Unauthenticated *bool `json:"unauthenticated,omitempty" tf:"unauthenticated,omitempty"` +// Enables unauthenticated access. +// +kubebuilder:validation:Optional +Unauthenticated *bool `json:"unauthenticated,omitempty" tf:"unauthenticated,omitempty"` } + type CloudwatchLogsInitParameters struct { - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Name of the Cloudwatch Log Group to deliver logs to. - LogGroup *string `json:"logGroup,omitempty" tf:"log_group,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Name of the Cloudwatch Log Group to deliver logs to. +LogGroup *string `json:"logGroup,omitempty" tf:"log_group,omitempty"` } + type CloudwatchLogsObservation struct { - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Name of the Cloudwatch Log Group to deliver logs to. - LogGroup *string `json:"logGroup,omitempty" tf:"log_group,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Name of the Cloudwatch Log Group to deliver logs to. +LogGroup *string `json:"logGroup,omitempty" tf:"log_group,omitempty"` } + type CloudwatchLogsParameters struct { - // Controls whether provisioned throughput is enabled or not. Default value: false. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` - // Name of the Cloudwatch Log Group to deliver logs to. - // +kubebuilder:validation:Optional - LogGroup *string `json:"logGroup,omitempty" tf:"log_group,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// Name of the Cloudwatch Log Group to deliver logs to. +// +kubebuilder:validation:Optional +LogGroup *string `json:"logGroup,omitempty" tf:"log_group,omitempty"` } + type ClusterInitParameters struct { - // Configuration block for the broker nodes of the Kafka cluster. - BrokerNodeGroupInfo []BrokerNodeGroupInfoInitParameters `json:"brokerNodeGroupInfo,omitempty" tf:"broker_node_group_info,omitempty"` - // Configuration block for specifying a client authentication. See below. - ClientAuthentication []ClientAuthenticationInitParameters `json:"clientAuthentication,omitempty" tf:"client_authentication,omitempty"` +// Configuration block for the broker nodes of the Kafka cluster. +BrokerNodeGroupInfo []BrokerNodeGroupInfoInitParameters `json:"brokerNodeGroupInfo,omitempty" tf:"broker_node_group_info,omitempty"` + +// Configuration block for specifying a client authentication. See below. +ClientAuthentication []ClientAuthenticationInitParameters `json:"clientAuthentication,omitempty" tf:"client_authentication,omitempty"` - // Name of the MSK cluster. - ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` +// Name of the MSK cluster. +ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` - // Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below. - ConfigurationInfo []ConfigurationInfoInitParameters `json:"configurationInfo,omitempty" tf:"configuration_info,omitempty"` +// Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below. +ConfigurationInfo []ConfigurationInfoInitParameters `json:"configurationInfo,omitempty" tf:"configuration_info,omitempty"` - // Configuration block for specifying encryption. See below. - EncryptionInfo []EncryptionInfoInitParameters `json:"encryptionInfo,omitempty" tf:"encryption_info,omitempty"` +// Configuration block for specifying encryption. See below. +EncryptionInfo []EncryptionInfoInitParameters `json:"encryptionInfo,omitempty" tf:"encryption_info,omitempty"` - // Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch - EnhancedMonitoring *string `json:"enhancedMonitoring,omitempty" tf:"enhanced_monitoring,omitempty"` +// Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch +EnhancedMonitoring *string `json:"enhancedMonitoring,omitempty" tf:"enhanced_monitoring,omitempty"` - // Specify the desired Kafka software version. - KafkaVersion *string `json:"kafkaVersion,omitempty" tf:"kafka_version,omitempty"` +// Specify the desired Kafka software version. +KafkaVersion *string `json:"kafkaVersion,omitempty" tf:"kafka_version,omitempty"` - // Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below. - LoggingInfo []LoggingInfoInitParameters `json:"loggingInfo,omitempty" tf:"logging_info,omitempty"` +// Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below. +LoggingInfo []LoggingInfoInitParameters `json:"loggingInfo,omitempty" tf:"logging_info,omitempty"` - // The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets. - NumberOfBrokerNodes *float64 `json:"numberOfBrokerNodes,omitempty" tf:"number_of_broker_nodes,omitempty"` +// The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets. +NumberOfBrokerNodes *float64 `json:"numberOfBrokerNodes,omitempty" tf:"number_of_broker_nodes,omitempty"` - // Configuration block for JMX and Node monitoring for the MSK cluster. See below. - OpenMonitoring []OpenMonitoringInitParameters `json:"openMonitoring,omitempty" tf:"open_monitoring,omitempty"` +// Configuration block for JMX and Node monitoring for the MSK cluster. See below. +OpenMonitoring []OpenMonitoringInitParameters `json:"openMonitoring,omitempty" tf:"open_monitoring,omitempty"` - // Controls storage mode for supported storage tiers. Valid values are: LOCAL or TIERED. - StorageMode *string `json:"storageMode,omitempty" tf:"storage_mode,omitempty"` +// Controls storage mode for supported storage tiers. Valid values are: LOCAL or TIERED. +StorageMode *string `json:"storageMode,omitempty" tf:"storage_mode,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterObservation struct { - // Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Comma separated list of one or more hostname:port pairs of kafka brokers suitable to bootstrap connectivity to the kafka cluster. Contains a value if encryption_info.0.encryption_in_transit.0.client_broker is set to PLAINTEXT or TLS_PLAINTEXT. The resource sorts values alphabetically. AWS may not always return all endpoints so this value is not guaranteed to be stable across applies. - BootstrapBrokers *string `json:"bootstrapBrokers,omitempty" tf:"bootstrap_brokers,omitempty"` +// Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Comma separated list of one or more hostname:port pairs of kafka brokers suitable to bootstrap connectivity to the kafka cluster. Contains a value if encryption_info.0.encryption_in_transit.0.client_broker is set to PLAINTEXT or TLS_PLAINTEXT. The resource sorts values alphabetically. AWS may not always return all endpoints so this value is not guaranteed to be stable across applies. +BootstrapBrokers *string `json:"bootstrapBrokers,omitempty" tf:"bootstrap_brokers,omitempty"` - // One or more DNS names (or IP addresses) and SASL IAM port pairs. For example, b-1-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9198,b-2-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9198,b-3-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9198. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.iam is set to true and broker_node_group_info.0.connectivity_info.0.public_access.0.type is set to SERVICE_PROVIDED_EIPS and the cluster fulfill all other requirements for public access. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. - BootstrapBrokersPublicSaslIAM *string `json:"bootstrapBrokersPublicSaslIam,omitempty" tf:"bootstrap_brokers_public_sasl_iam,omitempty"` +// One or more DNS names (or IP addresses) and SASL IAM port pairs. For example, b-1-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9198,b-2-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9198,b-3-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9198. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.iam is set to true and broker_node_group_info.0.connectivity_info.0.public_access.0.type is set to SERVICE_PROVIDED_EIPS and the cluster fulfill all other requirements for public access. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. +BootstrapBrokersPublicSaslIAM *string `json:"bootstrapBrokersPublicSaslIam,omitempty" tf:"bootstrap_brokers_public_sasl_iam,omitempty"` - // One or more DNS names (or IP addresses) and SASL SCRAM port pairs. For example, b-1-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9196,b-2-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9196,b-3-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9196. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.scram is set to true and broker_node_group_info.0.connectivity_info.0.public_access.0.type is set to SERVICE_PROVIDED_EIPS and the cluster fulfill all other requirements for public access. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. - BootstrapBrokersPublicSaslScram *string `json:"bootstrapBrokersPublicSaslScram,omitempty" tf:"bootstrap_brokers_public_sasl_scram,omitempty"` +// One or more DNS names (or IP addresses) and SASL SCRAM port pairs. For example, b-1-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9196,b-2-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9196,b-3-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9196. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.scram is set to true and broker_node_group_info.0.connectivity_info.0.public_access.0.type is set to SERVICE_PROVIDED_EIPS and the cluster fulfill all other requirements for public access. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. +BootstrapBrokersPublicSaslScram *string `json:"bootstrapBrokersPublicSaslScram,omitempty" tf:"bootstrap_brokers_public_sasl_scram,omitempty"` - // One or more DNS names (or IP addresses) and TLS port pairs. For example, b-1-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9194,b-2-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9194,b-3-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9194. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and broker_node_group_info.0.connectivity_info.0.public_access.0.type is set to SERVICE_PROVIDED_EIPS and the cluster fulfill all other requirements for public access. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. - BootstrapBrokersPublicTLS *string `json:"bootstrapBrokersPublicTls,omitempty" tf:"bootstrap_brokers_public_tls,omitempty"` +// One or more DNS names (or IP addresses) and TLS port pairs. For example, b-1-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9194,b-2-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9194,b-3-public.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9194. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and broker_node_group_info.0.connectivity_info.0.public_access.0.type is set to SERVICE_PROVIDED_EIPS and the cluster fulfill all other requirements for public access. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. +BootstrapBrokersPublicTLS *string `json:"bootstrapBrokersPublicTls,omitempty" tf:"bootstrap_brokers_public_tls,omitempty"` - // One or more DNS names (or IP addresses) and SASL IAM port pairs. For example, b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9098,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9098,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9098. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.iam is set to true. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. - BootstrapBrokersSaslIAM *string `json:"bootstrapBrokersSaslIam,omitempty" tf:"bootstrap_brokers_sasl_iam,omitempty"` +// One or more DNS names (or IP addresses) and SASL IAM port pairs. For example, b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9098,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9098,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9098. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.iam is set to true. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. +BootstrapBrokersSaslIAM *string `json:"bootstrapBrokersSaslIam,omitempty" tf:"bootstrap_brokers_sasl_iam,omitempty"` - // One or more DNS names (or IP addresses) and SASL SCRAM port pairs. For example, b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9096,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9096,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9096. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.scram is set to true. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. - BootstrapBrokersSaslScram *string `json:"bootstrapBrokersSaslScram,omitempty" tf:"bootstrap_brokers_sasl_scram,omitempty"` +// One or more DNS names (or IP addresses) and SASL SCRAM port pairs. For example, b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9096,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9096,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9096. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS and client_authentication.0.sasl.0.scram is set to true. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. +BootstrapBrokersSaslScram *string `json:"bootstrapBrokersSaslScram,omitempty" tf:"bootstrap_brokers_sasl_scram,omitempty"` - // One or more DNS names (or IP addresses) and TLS port pairs. For example, b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. - BootstrapBrokersTLS *string `json:"bootstrapBrokersTls,omitempty" tf:"bootstrap_brokers_tls,omitempty"` +// One or more DNS names (or IP addresses) and TLS port pairs. For example, b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094. This attribute will have a value if encryption_info.0.encryption_in_transit.0.client_broker is set to TLS_PLAINTEXT or TLS. The resource sorts the list alphabetically. AWS may not always return all endpoints so the values may not be stable across applies. +BootstrapBrokersTLS *string `json:"bootstrapBrokersTls,omitempty" tf:"bootstrap_brokers_tls,omitempty"` - // Configuration block for the broker nodes of the Kafka cluster. - BrokerNodeGroupInfo []BrokerNodeGroupInfoObservation `json:"brokerNodeGroupInfo,omitempty" tf:"broker_node_group_info,omitempty"` +// Configuration block for the broker nodes of the Kafka cluster. +BrokerNodeGroupInfo []BrokerNodeGroupInfoObservation `json:"brokerNodeGroupInfo,omitempty" tf:"broker_node_group_info,omitempty"` - // Configuration block for specifying a client authentication. See below. - ClientAuthentication []ClientAuthenticationObservation `json:"clientAuthentication,omitempty" tf:"client_authentication,omitempty"` +// Configuration block for specifying a client authentication. See below. +ClientAuthentication []ClientAuthenticationObservation `json:"clientAuthentication,omitempty" tf:"client_authentication,omitempty"` - // Name of the MSK cluster. - ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` +// Name of the MSK cluster. +ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` - // Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below. - ConfigurationInfo []ConfigurationInfoObservation `json:"configurationInfo,omitempty" tf:"configuration_info,omitempty"` +// Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below. +ConfigurationInfo []ConfigurationInfoObservation `json:"configurationInfo,omitempty" tf:"configuration_info,omitempty"` - // Current version of the MSK Cluster used for updates, e.g., K13V1IB3VIYZZH - CurrentVersion *string `json:"currentVersion,omitempty" tf:"current_version,omitempty"` +// Current version of the MSK Cluster used for updates, e.g., K13V1IB3VIYZZH +CurrentVersion *string `json:"currentVersion,omitempty" tf:"current_version,omitempty"` - // Configuration block for specifying encryption. See below. - EncryptionInfo []EncryptionInfoObservation `json:"encryptionInfo,omitempty" tf:"encryption_info,omitempty"` +// Configuration block for specifying encryption. See below. +EncryptionInfo []EncryptionInfoObservation `json:"encryptionInfo,omitempty" tf:"encryption_info,omitempty"` - // Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch - EnhancedMonitoring *string `json:"enhancedMonitoring,omitempty" tf:"enhanced_monitoring,omitempty"` +// Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch +EnhancedMonitoring *string `json:"enhancedMonitoring,omitempty" tf:"enhanced_monitoring,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Specify the desired Kafka software version. - KafkaVersion *string `json:"kafkaVersion,omitempty" tf:"kafka_version,omitempty"` +// Specify the desired Kafka software version. +KafkaVersion *string `json:"kafkaVersion,omitempty" tf:"kafka_version,omitempty"` - // Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below. - LoggingInfo []LoggingInfoObservation `json:"loggingInfo,omitempty" tf:"logging_info,omitempty"` +// Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below. +LoggingInfo []LoggingInfoObservation `json:"loggingInfo,omitempty" tf:"logging_info,omitempty"` - // The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets. - NumberOfBrokerNodes *float64 `json:"numberOfBrokerNodes,omitempty" tf:"number_of_broker_nodes,omitempty"` +// The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets. +NumberOfBrokerNodes *float64 `json:"numberOfBrokerNodes,omitempty" tf:"number_of_broker_nodes,omitempty"` - // Configuration block for JMX and Node monitoring for the MSK cluster. See below. - OpenMonitoring []OpenMonitoringObservation `json:"openMonitoring,omitempty" tf:"open_monitoring,omitempty"` +// Configuration block for JMX and Node monitoring for the MSK cluster. See below. +OpenMonitoring []OpenMonitoringObservation `json:"openMonitoring,omitempty" tf:"open_monitoring,omitempty"` - // Controls storage mode for supported storage tiers. Valid values are: LOCAL or TIERED. - StorageMode *string `json:"storageMode,omitempty" tf:"storage_mode,omitempty"` +// Controls storage mode for supported storage tiers. Valid values are: LOCAL or TIERED. +StorageMode *string `json:"storageMode,omitempty" tf:"storage_mode,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster. The returned values are sorted alphabetically. The AWS API may not return all endpoints, so this value is not guaranteed to be stable across applies. - ZookeeperConnectString *string `json:"zookeeperConnectString,omitempty" tf:"zookeeper_connect_string,omitempty"` +// A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster. The returned values are sorted alphabetically. The AWS API may not return all endpoints, so this value is not guaranteed to be stable across applies. +ZookeeperConnectString *string `json:"zookeeperConnectString,omitempty" tf:"zookeeper_connect_string,omitempty"` - // A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster via TLS. The returned values are sorted alphabetically. The AWS API may not return all endpoints, so this value is not guaranteed to be stable across applies. - ZookeeperConnectStringTLS *string `json:"zookeeperConnectStringTls,omitempty" tf:"zookeeper_connect_string_tls,omitempty"` +// A comma separated list of one or more hostname:port pairs to use to connect to the Apache Zookeeper cluster via TLS. The returned values are sorted alphabetically. The AWS API may not return all endpoints, so this value is not guaranteed to be stable across applies. +ZookeeperConnectStringTLS *string `json:"zookeeperConnectStringTls,omitempty" tf:"zookeeper_connect_string_tls,omitempty"` } + type ClusterParameters struct { - // Configuration block for the broker nodes of the Kafka cluster. - // +kubebuilder:validation:Optional - BrokerNodeGroupInfo []BrokerNodeGroupInfoParameters `json:"brokerNodeGroupInfo,omitempty" tf:"broker_node_group_info,omitempty"` - // Configuration block for specifying a client authentication. See below. - // +kubebuilder:validation:Optional - ClientAuthentication []ClientAuthenticationParameters `json:"clientAuthentication,omitempty" tf:"client_authentication,omitempty"` +// Configuration block for the broker nodes of the Kafka cluster. +// +kubebuilder:validation:Optional +BrokerNodeGroupInfo []BrokerNodeGroupInfoParameters `json:"brokerNodeGroupInfo,omitempty" tf:"broker_node_group_info,omitempty"` + +// Configuration block for specifying a client authentication. See below. +// +kubebuilder:validation:Optional +ClientAuthentication []ClientAuthenticationParameters `json:"clientAuthentication,omitempty" tf:"client_authentication,omitempty"` - // Name of the MSK cluster. - // +kubebuilder:validation:Optional - ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` +// Name of the MSK cluster. +// +kubebuilder:validation:Optional +ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` - // Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below. - // +kubebuilder:validation:Optional - ConfigurationInfo []ConfigurationInfoParameters `json:"configurationInfo,omitempty" tf:"configuration_info,omitempty"` +// Configuration block for specifying a MSK Configuration to attach to Kafka brokers. See below. +// +kubebuilder:validation:Optional +ConfigurationInfo []ConfigurationInfoParameters `json:"configurationInfo,omitempty" tf:"configuration_info,omitempty"` - // Configuration block for specifying encryption. See below. - // +kubebuilder:validation:Optional - EncryptionInfo []EncryptionInfoParameters `json:"encryptionInfo,omitempty" tf:"encryption_info,omitempty"` +// Configuration block for specifying encryption. See below. +// +kubebuilder:validation:Optional +EncryptionInfo []EncryptionInfoParameters `json:"encryptionInfo,omitempty" tf:"encryption_info,omitempty"` - // Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch - // +kubebuilder:validation:Optional - EnhancedMonitoring *string `json:"enhancedMonitoring,omitempty" tf:"enhanced_monitoring,omitempty"` +// Specify the desired enhanced MSK CloudWatch monitoring level. See Monitoring Amazon MSK with Amazon CloudWatch +// +kubebuilder:validation:Optional +EnhancedMonitoring *string `json:"enhancedMonitoring,omitempty" tf:"enhanced_monitoring,omitempty"` - // Specify the desired Kafka software version. - // +kubebuilder:validation:Optional - KafkaVersion *string `json:"kafkaVersion,omitempty" tf:"kafka_version,omitempty"` +// Specify the desired Kafka software version. +// +kubebuilder:validation:Optional +KafkaVersion *string `json:"kafkaVersion,omitempty" tf:"kafka_version,omitempty"` - // Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below. - // +kubebuilder:validation:Optional - LoggingInfo []LoggingInfoParameters `json:"loggingInfo,omitempty" tf:"logging_info,omitempty"` +// Configuration block for streaming broker logs to Cloudwatch/S3/Kinesis Firehose. See below. +// +kubebuilder:validation:Optional +LoggingInfo []LoggingInfoParameters `json:"loggingInfo,omitempty" tf:"logging_info,omitempty"` - // The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets. - // +kubebuilder:validation:Optional - NumberOfBrokerNodes *float64 `json:"numberOfBrokerNodes,omitempty" tf:"number_of_broker_nodes,omitempty"` +// The desired total number of broker nodes in the kafka cluster. It must be a multiple of the number of specified client subnets. +// +kubebuilder:validation:Optional +NumberOfBrokerNodes *float64 `json:"numberOfBrokerNodes,omitempty" tf:"number_of_broker_nodes,omitempty"` - // Configuration block for JMX and Node monitoring for the MSK cluster. See below. - // +kubebuilder:validation:Optional - OpenMonitoring []OpenMonitoringParameters `json:"openMonitoring,omitempty" tf:"open_monitoring,omitempty"` +// Configuration block for JMX and Node monitoring for the MSK cluster. See below. +// +kubebuilder:validation:Optional +OpenMonitoring []OpenMonitoringParameters `json:"openMonitoring,omitempty" tf:"open_monitoring,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Controls storage mode for supported storage tiers. Valid values are: LOCAL or TIERED. - // +kubebuilder:validation:Optional - StorageMode *string `json:"storageMode,omitempty" tf:"storage_mode,omitempty"` +// Controls storage mode for supported storage tiers. Valid values are: LOCAL or TIERED. +// +kubebuilder:validation:Optional +StorageMode *string `json:"storageMode,omitempty" tf:"storage_mode,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ConfigurationInfoInitParameters struct { - // Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Revision of the MSK Configuration to use in the cluster. - Revision *float64 `json:"revision,omitempty" tf:"revision,omitempty"` +// Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Revision of the MSK Configuration to use in the cluster. +Revision *float64 `json:"revision,omitempty" tf:"revision,omitempty"` } + type ConfigurationInfoObservation struct { - // Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Revision of the MSK Configuration to use in the cluster. - Revision *float64 `json:"revision,omitempty" tf:"revision,omitempty"` +// Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Revision of the MSK Configuration to use in the cluster. +Revision *float64 `json:"revision,omitempty" tf:"revision,omitempty"` } + type ConfigurationInfoParameters struct { - // Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. - // +kubebuilder:validation:Optional - Arn *string `json:"arn" tf:"arn,omitempty"` - // Revision of the MSK Configuration to use in the cluster. - // +kubebuilder:validation:Optional - Revision *float64 `json:"revision" tf:"revision,omitempty"` +// Amazon Resource Name (ARN) of the MSK Configuration to use in the cluster. +// +kubebuilder:validation:Optional +Arn *string `json:"arn" tf:"arn,omitempty"` + +// Revision of the MSK Configuration to use in the cluster. +// +kubebuilder:validation:Optional +Revision *float64 `json:"revision" tf:"revision,omitempty"` } + type ConnectivityInfoInitParameters struct { - // Access control settings for brokers. See below. - PublicAccess []PublicAccessInitParameters `json:"publicAccess,omitempty" tf:"public_access,omitempty"` + +// Access control settings for brokers. See below. +PublicAccess []PublicAccessInitParameters `json:"publicAccess,omitempty" tf:"public_access,omitempty"` } + type ConnectivityInfoObservation struct { - // Access control settings for brokers. See below. - PublicAccess []PublicAccessObservation `json:"publicAccess,omitempty" tf:"public_access,omitempty"` + +// Access control settings for brokers. See below. +PublicAccess []PublicAccessObservation `json:"publicAccess,omitempty" tf:"public_access,omitempty"` } + type ConnectivityInfoParameters struct { - // Access control settings for brokers. See below. - // +kubebuilder:validation:Optional - PublicAccess []PublicAccessParameters `json:"publicAccess,omitempty" tf:"public_access,omitempty"` + +// Access control settings for brokers. See below. +// +kubebuilder:validation:Optional +PublicAccess []PublicAccessParameters `json:"publicAccess,omitempty" tf:"public_access,omitempty"` } + type EBSStorageInfoInitParameters struct { - // A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. - ProvisionedThroughput []ProvisionedThroughputInitParameters `json:"provisionedThroughput,omitempty" tf:"provisioned_throughput,omitempty"` - // The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of 1 and maximum value of 16384. - VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` +// A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. +ProvisionedThroughput []ProvisionedThroughputInitParameters `json:"provisionedThroughput,omitempty" tf:"provisioned_throughput,omitempty"` + +// The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of 1 and maximum value of 16384. +VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` } + type EBSStorageInfoObservation struct { - // A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. - ProvisionedThroughput []ProvisionedThroughputObservation `json:"provisionedThroughput,omitempty" tf:"provisioned_throughput,omitempty"` - // The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of 1 and maximum value of 16384. - VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` +// A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. +ProvisionedThroughput []ProvisionedThroughputObservation `json:"provisionedThroughput,omitempty" tf:"provisioned_throughput,omitempty"` + +// The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of 1 and maximum value of 16384. +VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` } + type EBSStorageInfoParameters struct { - // A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. - // +kubebuilder:validation:Optional - ProvisionedThroughput []ProvisionedThroughputParameters `json:"provisionedThroughput,omitempty" tf:"provisioned_throughput,omitempty"` - // The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of 1 and maximum value of 16384. - // +kubebuilder:validation:Optional - VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` +// A block that contains EBS volume provisioned throughput information. To provision storage throughput, you must choose broker type kafka.m5.4xlarge or larger. See below. +// +kubebuilder:validation:Optional +ProvisionedThroughput []ProvisionedThroughputParameters `json:"provisionedThroughput,omitempty" tf:"provisioned_throughput,omitempty"` + +// The size in GiB of the EBS volume for the data drive on each broker node. Minimum value of 1 and maximum value of 16384. +// +kubebuilder:validation:Optional +VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` } + type EncryptionInTransitInitParameters struct { - // Encryption setting for data in transit between clients and brokers. Valid values: TLS, TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS. - ClientBroker *string `json:"clientBroker,omitempty" tf:"client_broker,omitempty"` - // Whether data communication among broker nodes is encrypted. Default value: true. - InCluster *bool `json:"inCluster,omitempty" tf:"in_cluster,omitempty"` +// Encryption setting for data in transit between clients and brokers. Valid values: TLS, TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS. +ClientBroker *string `json:"clientBroker,omitempty" tf:"client_broker,omitempty"` + +// Whether data communication among broker nodes is encrypted. Default value: true. +InCluster *bool `json:"inCluster,omitempty" tf:"in_cluster,omitempty"` } + type EncryptionInTransitObservation struct { - // Encryption setting for data in transit between clients and brokers. Valid values: TLS, TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS. - ClientBroker *string `json:"clientBroker,omitempty" tf:"client_broker,omitempty"` - // Whether data communication among broker nodes is encrypted. Default value: true. - InCluster *bool `json:"inCluster,omitempty" tf:"in_cluster,omitempty"` +// Encryption setting for data in transit between clients and brokers. Valid values: TLS, TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS. +ClientBroker *string `json:"clientBroker,omitempty" tf:"client_broker,omitempty"` + +// Whether data communication among broker nodes is encrypted. Default value: true. +InCluster *bool `json:"inCluster,omitempty" tf:"in_cluster,omitempty"` } + type EncryptionInTransitParameters struct { - // Encryption setting for data in transit between clients and brokers. Valid values: TLS, TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS. - // +kubebuilder:validation:Optional - ClientBroker *string `json:"clientBroker,omitempty" tf:"client_broker,omitempty"` - // Whether data communication among broker nodes is encrypted. Default value: true. - // +kubebuilder:validation:Optional - InCluster *bool `json:"inCluster,omitempty" tf:"in_cluster,omitempty"` +// Encryption setting for data in transit between clients and brokers. Valid values: TLS, TLS_PLAINTEXT, and PLAINTEXT. Default value is TLS. +// +kubebuilder:validation:Optional +ClientBroker *string `json:"clientBroker,omitempty" tf:"client_broker,omitempty"` + +// Whether data communication among broker nodes is encrypted. Default value: true. +// +kubebuilder:validation:Optional +InCluster *bool `json:"inCluster,omitempty" tf:"in_cluster,omitempty"` } + type EncryptionInfoInitParameters struct { - // Configuration block to specify encryption in transit. See below. - EncryptionInTransit []EncryptionInTransitInitParameters `json:"encryptionInTransit,omitempty" tf:"encryption_in_transit,omitempty"` + +// Configuration block to specify encryption in transit. See below. +EncryptionInTransit []EncryptionInTransitInitParameters `json:"encryptionInTransit,omitempty" tf:"encryption_in_transit,omitempty"` } + type EncryptionInfoObservation struct { - // The ARN of the KMS key used for encryption at rest of the broker data volumes. - EncryptionAtRestKMSKeyArn *string `json:"encryptionAtRestKmsKeyArn,omitempty" tf:"encryption_at_rest_kms_key_arn,omitempty"` - // Configuration block to specify encryption in transit. See below. - EncryptionInTransit []EncryptionInTransitObservation `json:"encryptionInTransit,omitempty" tf:"encryption_in_transit,omitempty"` +// The ARN of the KMS key used for encryption at rest of the broker data volumes. +EncryptionAtRestKMSKeyArn *string `json:"encryptionAtRestKmsKeyArn,omitempty" tf:"encryption_at_rest_kms_key_arn,omitempty"` + +// Configuration block to specify encryption in transit. See below. +EncryptionInTransit []EncryptionInTransitObservation `json:"encryptionInTransit,omitempty" tf:"encryption_in_transit,omitempty"` } + type EncryptionInfoParameters struct { - // The ARN of the KMS key used for encryption at rest of the broker data volumes. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - EncryptionAtRestKMSKeyArn *string `json:"encryptionAtRestKmsKeyArn,omitempty" tf:"encryption_at_rest_kms_key_arn,omitempty"` - // Reference to a Key in kms to populate encryptionAtRestKmsKeyArn. - // +kubebuilder:validation:Optional - EncryptionAtRestKMSKeyArnRef *v1.Reference `json:"encryptionAtRestKmsKeyArnRef,omitempty" tf:"-"` +// The ARN of the KMS key used for encryption at rest of the broker data volumes. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +EncryptionAtRestKMSKeyArn *string `json:"encryptionAtRestKmsKeyArn,omitempty" tf:"encryption_at_rest_kms_key_arn,omitempty"` + +// Reference to a Key in kms to populate encryptionAtRestKmsKeyArn. +// +kubebuilder:validation:Optional +EncryptionAtRestKMSKeyArnRef *v1.Reference `json:"encryptionAtRestKmsKeyArnRef,omitempty" tf:"-"` - // Selector for a Key in kms to populate encryptionAtRestKmsKeyArn. - // +kubebuilder:validation:Optional - EncryptionAtRestKMSKeyArnSelector *v1.Selector `json:"encryptionAtRestKmsKeyArnSelector,omitempty" tf:"-"` +// Selector for a Key in kms to populate encryptionAtRestKmsKeyArn. +// +kubebuilder:validation:Optional +EncryptionAtRestKMSKeyArnSelector *v1.Selector `json:"encryptionAtRestKmsKeyArnSelector,omitempty" tf:"-"` - // Configuration block to specify encryption in transit. See below. - // +kubebuilder:validation:Optional - EncryptionInTransit []EncryptionInTransitParameters `json:"encryptionInTransit,omitempty" tf:"encryption_in_transit,omitempty"` +// Configuration block to specify encryption in transit. See below. +// +kubebuilder:validation:Optional +EncryptionInTransit []EncryptionInTransitParameters `json:"encryptionInTransit,omitempty" tf:"encryption_in_transit,omitempty"` } + type FirehoseInitParameters struct { - // Name of the Kinesis Data Firehose delivery stream to deliver logs to. - DeliveryStream *string `json:"deliveryStream,omitempty" tf:"delivery_stream,omitempty"` - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the Kinesis Data Firehose delivery stream to deliver logs to. +DeliveryStream *string `json:"deliveryStream,omitempty" tf:"delivery_stream,omitempty"` + +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type FirehoseObservation struct { - // Name of the Kinesis Data Firehose delivery stream to deliver logs to. - DeliveryStream *string `json:"deliveryStream,omitempty" tf:"delivery_stream,omitempty"` - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the Kinesis Data Firehose delivery stream to deliver logs to. +DeliveryStream *string `json:"deliveryStream,omitempty" tf:"delivery_stream,omitempty"` + +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type FirehoseParameters struct { - // Name of the Kinesis Data Firehose delivery stream to deliver logs to. - // +kubebuilder:validation:Optional - DeliveryStream *string `json:"deliveryStream,omitempty" tf:"delivery_stream,omitempty"` - // Controls whether provisioned throughput is enabled or not. Default value: false. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +// Name of the Kinesis Data Firehose delivery stream to deliver logs to. +// +kubebuilder:validation:Optional +DeliveryStream *string `json:"deliveryStream,omitempty" tf:"delivery_stream,omitempty"` + +// Controls whether provisioned throughput is enabled or not. Default value: false. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` } + type JmxExporterInitParameters struct { - // Indicates whether you want to enable or disable the JMX Exporter. - EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` + +// Indicates whether you want to enable or disable the JMX Exporter. +EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` } + type JmxExporterObservation struct { - // Indicates whether you want to enable or disable the JMX Exporter. - EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` + +// Indicates whether you want to enable or disable the JMX Exporter. +EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` } + type JmxExporterParameters struct { - // Indicates whether you want to enable or disable the JMX Exporter. - // +kubebuilder:validation:Optional - EnabledInBroker *bool `json:"enabledInBroker" tf:"enabled_in_broker,omitempty"` + +// Indicates whether you want to enable or disable the JMX Exporter. +// +kubebuilder:validation:Optional +EnabledInBroker *bool `json:"enabledInBroker" tf:"enabled_in_broker,omitempty"` } + type LoggingInfoInitParameters struct { - // Configuration block for Broker Logs settings for logging info. See below. - BrokerLogs []BrokerLogsInitParameters `json:"brokerLogs,omitempty" tf:"broker_logs,omitempty"` + +// Configuration block for Broker Logs settings for logging info. See below. +BrokerLogs []BrokerLogsInitParameters `json:"brokerLogs,omitempty" tf:"broker_logs,omitempty"` } + type LoggingInfoObservation struct { - // Configuration block for Broker Logs settings for logging info. See below. - BrokerLogs []BrokerLogsObservation `json:"brokerLogs,omitempty" tf:"broker_logs,omitempty"` + +// Configuration block for Broker Logs settings for logging info. See below. +BrokerLogs []BrokerLogsObservation `json:"brokerLogs,omitempty" tf:"broker_logs,omitempty"` } + type LoggingInfoParameters struct { - // Configuration block for Broker Logs settings for logging info. See below. - // +kubebuilder:validation:Optional - BrokerLogs []BrokerLogsParameters `json:"brokerLogs" tf:"broker_logs,omitempty"` + +// Configuration block for Broker Logs settings for logging info. See below. +// +kubebuilder:validation:Optional +BrokerLogs []BrokerLogsParameters `json:"brokerLogs" tf:"broker_logs,omitempty"` } + type NodeExporterInitParameters struct { - // Indicates whether you want to enable or disable the JMX Exporter. - EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` + +// Indicates whether you want to enable or disable the JMX Exporter. +EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` } + type NodeExporterObservation struct { - // Indicates whether you want to enable or disable the JMX Exporter. - EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` + +// Indicates whether you want to enable or disable the JMX Exporter. +EnabledInBroker *bool `json:"enabledInBroker,omitempty" tf:"enabled_in_broker,omitempty"` } + type NodeExporterParameters struct { - // Indicates whether you want to enable or disable the JMX Exporter. - // +kubebuilder:validation:Optional - EnabledInBroker *bool `json:"enabledInBroker" tf:"enabled_in_broker,omitempty"` + +// Indicates whether you want to enable or disable the JMX Exporter. +// +kubebuilder:validation:Optional +EnabledInBroker *bool `json:"enabledInBroker" tf:"enabled_in_broker,omitempty"` } + type OpenMonitoringInitParameters struct { - // Configuration block for Prometheus settings for open monitoring. See below. - Prometheus []PrometheusInitParameters `json:"prometheus,omitempty" tf:"prometheus,omitempty"` + +// Configuration block for Prometheus settings for open monitoring. See below. +Prometheus []PrometheusInitParameters `json:"prometheus,omitempty" tf:"prometheus,omitempty"` } + type OpenMonitoringObservation struct { - // Configuration block for Prometheus settings for open monitoring. See below. - Prometheus []PrometheusObservation `json:"prometheus,omitempty" tf:"prometheus,omitempty"` + +// Configuration block for Prometheus settings for open monitoring. See below. +Prometheus []PrometheusObservation `json:"prometheus,omitempty" tf:"prometheus,omitempty"` } + type OpenMonitoringParameters struct { - // Configuration block for Prometheus settings for open monitoring. See below. - // +kubebuilder:validation:Optional - Prometheus []PrometheusParameters `json:"prometheus" tf:"prometheus,omitempty"` + +// Configuration block for Prometheus settings for open monitoring. See below. +// +kubebuilder:validation:Optional +Prometheus []PrometheusParameters `json:"prometheus" tf:"prometheus,omitempty"` } + type PrometheusInitParameters struct { - // Configuration block for JMX Exporter. See below. - JmxExporter []JmxExporterInitParameters `json:"jmxExporter,omitempty" tf:"jmx_exporter,omitempty"` - // Configuration block for Node Exporter. See below. - NodeExporter []NodeExporterInitParameters `json:"nodeExporter,omitempty" tf:"node_exporter,omitempty"` +// Configuration block for JMX Exporter. See below. +JmxExporter []JmxExporterInitParameters `json:"jmxExporter,omitempty" tf:"jmx_exporter,omitempty"` + +// Configuration block for Node Exporter. See below. +NodeExporter []NodeExporterInitParameters `json:"nodeExporter,omitempty" tf:"node_exporter,omitempty"` } + type PrometheusObservation struct { - // Configuration block for JMX Exporter. See below. - JmxExporter []JmxExporterObservation `json:"jmxExporter,omitempty" tf:"jmx_exporter,omitempty"` - // Configuration block for Node Exporter. See below. - NodeExporter []NodeExporterObservation `json:"nodeExporter,omitempty" tf:"node_exporter,omitempty"` +// Configuration block for JMX Exporter. See below. +JmxExporter []JmxExporterObservation `json:"jmxExporter,omitempty" tf:"jmx_exporter,omitempty"` + +// Configuration block for Node Exporter. See below. +NodeExporter []NodeExporterObservation `json:"nodeExporter,omitempty" tf:"node_exporter,omitempty"` } + type PrometheusParameters struct { - // Configuration block for JMX Exporter. See below. - // +kubebuilder:validation:Optional - JmxExporter []JmxExporterParameters `json:"jmxExporter,omitempty" tf:"jmx_exporter,omitempty"` - // Configuration block for Node Exporter. See below. - // +kubebuilder:validation:Optional - NodeExporter []NodeExporterParameters `json:"nodeExporter,omitempty" tf:"node_exporter,omitempty"` +// Configuration block for JMX Exporter. See below. +// +kubebuilder:validation:Optional +JmxExporter []JmxExporterParameters `json:"jmxExporter,omitempty" tf:"jmx_exporter,omitempty"` + +// Configuration block for Node Exporter. See below. +// +kubebuilder:validation:Optional +NodeExporter []NodeExporterParameters `json:"nodeExporter,omitempty" tf:"node_exporter,omitempty"` } + type ProvisionedThroughputInitParameters struct { - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is 250. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following documentation on throughput bottlenecks - VolumeThroughput *float64 `json:"volumeThroughput,omitempty" tf:"volume_throughput,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is 250. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following documentation on throughput bottlenecks +VolumeThroughput *float64 `json:"volumeThroughput,omitempty" tf:"volume_throughput,omitempty"` } + type ProvisionedThroughputObservation struct { - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is 250. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following documentation on throughput bottlenecks - VolumeThroughput *float64 `json:"volumeThroughput,omitempty" tf:"volume_throughput,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is 250. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following documentation on throughput bottlenecks +VolumeThroughput *float64 `json:"volumeThroughput,omitempty" tf:"volume_throughput,omitempty"` } + type ProvisionedThroughputParameters struct { - // Controls whether provisioned throughput is enabled or not. Default value: false. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is 250. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following documentation on throughput bottlenecks - // +kubebuilder:validation:Optional - VolumeThroughput *float64 `json:"volumeThroughput,omitempty" tf:"volume_throughput,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. The minimum value is 250. The maximum value varies between broker type. You can refer to the valid values for the maximum volume throughput at the following documentation on throughput bottlenecks +// +kubebuilder:validation:Optional +VolumeThroughput *float64 `json:"volumeThroughput,omitempty" tf:"volume_throughput,omitempty"` } + type PublicAccessInitParameters struct { - // Public access type. Valida values: DISABLED, SERVICE_PROVIDED_EIPS. - Type *string `json:"type,omitempty" tf:"type,omitempty"` + +// Public access type. Valida values: DISABLED, SERVICE_PROVIDED_EIPS. +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type PublicAccessObservation struct { - // Public access type. Valida values: DISABLED, SERVICE_PROVIDED_EIPS. - Type *string `json:"type,omitempty" tf:"type,omitempty"` + +// Public access type. Valida values: DISABLED, SERVICE_PROVIDED_EIPS. +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type PublicAccessParameters struct { - // Public access type. Valida values: DISABLED, SERVICE_PROVIDED_EIPS. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` + +// Public access type. Valida values: DISABLED, SERVICE_PROVIDED_EIPS. +// +kubebuilder:validation:Optional +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type S3InitParameters struct { - // Name of the S3 bucket to deliver logs to. - Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the S3 bucket to deliver logs to. +Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` - // Prefix to append to the folder name. - Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Prefix to append to the folder name. +Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` } + type S3Observation struct { - // Name of the S3 bucket to deliver logs to. - Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` - // Controls whether provisioned throughput is enabled or not. Default value: false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// Name of the S3 bucket to deliver logs to. +Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` - // Prefix to append to the folder name. - Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Prefix to append to the folder name. +Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` } + type S3Parameters struct { - // Name of the S3 bucket to deliver logs to. - // +kubebuilder:validation:Optional - Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` - // Controls whether provisioned throughput is enabled or not. Default value: false. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled" tf:"enabled,omitempty"` +// Name of the S3 bucket to deliver logs to. +// +kubebuilder:validation:Optional +Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` - // Prefix to append to the folder name. - // +kubebuilder:validation:Optional - Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +// Controls whether provisioned throughput is enabled or not. Default value: false. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + +// Prefix to append to the folder name. +// +kubebuilder:validation:Optional +Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` } + type SaslInitParameters struct { - // Enables IAM client authentication. Defaults to false. - IAM *bool `json:"iam,omitempty" tf:"iam,omitempty"` - // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to false. - Scram *bool `json:"scram,omitempty" tf:"scram,omitempty"` +// Enables IAM client authentication. Defaults to false. +IAM *bool `json:"iam,omitempty" tf:"iam,omitempty"` + +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to false. +Scram *bool `json:"scram,omitempty" tf:"scram,omitempty"` } + type SaslObservation struct { - // Enables IAM client authentication. Defaults to false. - IAM *bool `json:"iam,omitempty" tf:"iam,omitempty"` - // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to false. - Scram *bool `json:"scram,omitempty" tf:"scram,omitempty"` +// Enables IAM client authentication. Defaults to false. +IAM *bool `json:"iam,omitempty" tf:"iam,omitempty"` + +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to false. +Scram *bool `json:"scram,omitempty" tf:"scram,omitempty"` } + type SaslParameters struct { - // Enables IAM client authentication. Defaults to false. - // +kubebuilder:validation:Optional - IAM *bool `json:"iam,omitempty" tf:"iam,omitempty"` - // Enables SCRAM client authentication via AWS Secrets Manager. Defaults to false. - // +kubebuilder:validation:Optional - Scram *bool `json:"scram,omitempty" tf:"scram,omitempty"` +// Enables IAM client authentication. Defaults to false. +// +kubebuilder:validation:Optional +IAM *bool `json:"iam,omitempty" tf:"iam,omitempty"` + +// Enables SCRAM client authentication via AWS Secrets Manager. Defaults to false. +// +kubebuilder:validation:Optional +Scram *bool `json:"scram,omitempty" tf:"scram,omitempty"` } + type StorageInfoInitParameters struct { - // A block that contains EBS volume information. See below. - EBSStorageInfo []EBSStorageInfoInitParameters `json:"ebsStorageInfo,omitempty" tf:"ebs_storage_info,omitempty"` + +// A block that contains EBS volume information. See below. +EBSStorageInfo []EBSStorageInfoInitParameters `json:"ebsStorageInfo,omitempty" tf:"ebs_storage_info,omitempty"` } + type StorageInfoObservation struct { - // A block that contains EBS volume information. See below. - EBSStorageInfo []EBSStorageInfoObservation `json:"ebsStorageInfo,omitempty" tf:"ebs_storage_info,omitempty"` + +// A block that contains EBS volume information. See below. +EBSStorageInfo []EBSStorageInfoObservation `json:"ebsStorageInfo,omitempty" tf:"ebs_storage_info,omitempty"` } + type StorageInfoParameters struct { - // A block that contains EBS volume information. See below. - // +kubebuilder:validation:Optional - EBSStorageInfo []EBSStorageInfoParameters `json:"ebsStorageInfo,omitempty" tf:"ebs_storage_info,omitempty"` + +// A block that contains EBS volume information. See below. +// +kubebuilder:validation:Optional +EBSStorageInfo []EBSStorageInfoParameters `json:"ebsStorageInfo,omitempty" tf:"ebs_storage_info,omitempty"` } + type TLSInitParameters struct { - // List of ACM Certificate Authority Amazon Resource Names (ARNs). - CertificateAuthorityArns []*string `json:"certificateAuthorityArns,omitempty" tf:"certificate_authority_arns,omitempty"` + +// List of ACM Certificate Authority Amazon Resource Names (ARNs). +CertificateAuthorityArns []*string `json:"certificateAuthorityArns,omitempty" tf:"certificate_authority_arns,omitempty"` } + type TLSObservation struct { - // List of ACM Certificate Authority Amazon Resource Names (ARNs). - CertificateAuthorityArns []*string `json:"certificateAuthorityArns,omitempty" tf:"certificate_authority_arns,omitempty"` + +// List of ACM Certificate Authority Amazon Resource Names (ARNs). +CertificateAuthorityArns []*string `json:"certificateAuthorityArns,omitempty" tf:"certificate_authority_arns,omitempty"` } + type TLSParameters struct { - // List of ACM Certificate Authority Amazon Resource Names (ARNs). - // +kubebuilder:validation:Optional - CertificateAuthorityArns []*string `json:"certificateAuthorityArns,omitempty" tf:"certificate_authority_arns,omitempty"` + +// List of ACM Certificate Authority Amazon Resource Names (ARNs). +// +kubebuilder:validation:Optional +CertificateAuthorityArns []*string `json:"certificateAuthorityArns,omitempty" tf:"certificate_authority_arns,omitempty"` } // ClusterSpec defines the desired state of Cluster type ClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameters `json:"forProvider"` + ForProvider ClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -817,18 +954,18 @@ type ClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInitParameters `json:"initProvider,omitempty"` } // ClusterStatus defines the observed state of Cluster. type ClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterObservation `json:"atProvider,omitempty"` + AtProvider ClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true -// Cluster is the Schema for the Clusters API. +// Cluster is the Schema for the Clusters API. // +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" // +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" @@ -838,13 +975,13 @@ type ClusterStatus struct { type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.brokerNodeGroupInfo) || (has(self.initProvider) && has(self.initProvider.brokerNodeGroupInfo))",message="spec.forProvider.brokerNodeGroupInfo is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.clusterName) || (has(self.initProvider) && has(self.initProvider.clusterName))",message="spec.forProvider.clusterName is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.kafkaVersion) || (has(self.initProvider) && has(self.initProvider.kafkaVersion))",message="spec.forProvider.kafkaVersion is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.numberOfBrokerNodes) || (has(self.initProvider) && has(self.initProvider.numberOfBrokerNodes))",message="spec.forProvider.numberOfBrokerNodes is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSpec `json:"spec"` - Status ClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.brokerNodeGroupInfo) || (has(self.initProvider) && has(self.initProvider.brokerNodeGroupInfo))",message="spec.forProvider.brokerNodeGroupInfo is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.clusterName) || (has(self.initProvider) && has(self.initProvider.clusterName))",message="spec.forProvider.clusterName is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.kafkaVersion) || (has(self.initProvider) && has(self.initProvider.kafkaVersion))",message="spec.forProvider.kafkaVersion is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.numberOfBrokerNodes) || (has(self.initProvider) && has(self.initProvider.numberOfBrokerNodes))",message="spec.forProvider.numberOfBrokerNodes is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSpec `json:"spec"` + Status ClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/kafka/v1alpha1/zz_configuration_types.go b/apis/kafka/v1alpha1/zz_configuration_types.go index cad06cb..aae3ff9 100755 --- a/apis/kafka/v1alpha1/zz_configuration_types.go +++ b/apis/kafka/v1alpha1/zz_configuration_types.go @@ -15,74 +15,83 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ConfigurationInitParameters struct { - // Description of the configuration. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // List of Apache Kafka versions which can use this configuration. - KafkaVersions []*string `json:"kafkaVersions,omitempty" tf:"kafka_versions,omitempty"` +// Description of the configuration. +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// List of Apache Kafka versions which can use this configuration. +KafkaVersions []*string `json:"kafkaVersions,omitempty" tf:"kafka_versions,omitempty"` - // Name of the configuration. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the configuration. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Contents of the server.properties file. Supported properties are documented in the MSK Developer Guide. - ServerProperties *string `json:"serverProperties,omitempty" tf:"server_properties,omitempty"` +// Contents of the server.properties file. Supported properties are documented in the MSK Developer Guide. +ServerProperties *string `json:"serverProperties,omitempty" tf:"server_properties,omitempty"` } + type ConfigurationObservation struct { - // Amazon Resource Name (ARN) of the configuration. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Description of the configuration. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Amazon Resource Name (ARN) of the configuration. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Description of the configuration. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // List of Apache Kafka versions which can use this configuration. - KafkaVersions []*string `json:"kafkaVersions,omitempty" tf:"kafka_versions,omitempty"` +// List of Apache Kafka versions which can use this configuration. +KafkaVersions []*string `json:"kafkaVersions,omitempty" tf:"kafka_versions,omitempty"` - // Latest revision of the configuration. - LatestRevision *float64 `json:"latestRevision,omitempty" tf:"latest_revision,omitempty"` +// Latest revision of the configuration. +LatestRevision *float64 `json:"latestRevision,omitempty" tf:"latest_revision,omitempty"` - // Name of the configuration. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the configuration. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Contents of the server.properties file. Supported properties are documented in the MSK Developer Guide. - ServerProperties *string `json:"serverProperties,omitempty" tf:"server_properties,omitempty"` +// Contents of the server.properties file. Supported properties are documented in the MSK Developer Guide. +ServerProperties *string `json:"serverProperties,omitempty" tf:"server_properties,omitempty"` } + type ConfigurationParameters struct { - // Description of the configuration. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // List of Apache Kafka versions which can use this configuration. - // +kubebuilder:validation:Optional - KafkaVersions []*string `json:"kafkaVersions,omitempty" tf:"kafka_versions,omitempty"` +// Description of the configuration. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// List of Apache Kafka versions which can use this configuration. +// +kubebuilder:validation:Optional +KafkaVersions []*string `json:"kafkaVersions,omitempty" tf:"kafka_versions,omitempty"` - // Name of the configuration. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the configuration. +// +kubebuilder:validation:Optional +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Contents of the server.properties file. Supported properties are documented in the MSK Developer Guide. - // +kubebuilder:validation:Optional - ServerProperties *string `json:"serverProperties,omitempty" tf:"server_properties,omitempty"` +// Contents of the server.properties file. Supported properties are documented in the MSK Developer Guide. +// +kubebuilder:validation:Optional +ServerProperties *string `json:"serverProperties,omitempty" tf:"server_properties,omitempty"` } // ConfigurationSpec defines the desired state of Configuration type ConfigurationSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ConfigurationParameters `json:"forProvider"` + ForProvider ConfigurationParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -93,13 +102,13 @@ type ConfigurationSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ConfigurationInitParameters `json:"initProvider,omitempty"` + InitProvider ConfigurationInitParameters `json:"initProvider,omitempty"` } // ConfigurationStatus defines the observed state of Configuration. type ConfigurationStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ConfigurationObservation `json:"atProvider,omitempty"` + AtProvider ConfigurationObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -114,11 +123,11 @@ type ConfigurationStatus struct { type Configuration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serverProperties) || (has(self.initProvider) && has(self.initProvider.serverProperties))",message="spec.forProvider.serverProperties is a required parameter" - Spec ConfigurationSpec `json:"spec"` - Status ConfigurationStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serverProperties) || (has(self.initProvider) && has(self.initProvider.serverProperties))",message="spec.forProvider.serverProperties is a required parameter" + Spec ConfigurationSpec `json:"spec"` + Status ConfigurationStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/kinesis/v1alpha1/zz_stream_types.go b/apis/kinesis/v1alpha1/zz_stream_types.go index 41dd0b7..d24ddbc 100755 --- a/apis/kinesis/v1alpha1/zz_stream_types.go +++ b/apis/kinesis/v1alpha1/zz_stream_types.go @@ -15,150 +15,165 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type StreamInitParameters struct { - // The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE. - EncryptionType *string `json:"encryptionType,omitempty" tf:"encryption_type,omitempty"` - // A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. The default value is false. - EnforceConsumerDeletion *bool `json:"enforceConsumerDeletion,omitempty" tf:"enforce_consumer_deletion,omitempty"` +// The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE. +EncryptionType *string `json:"encryptionType,omitempty" tf:"encryption_type,omitempty"` - // Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. - RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` +// A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. The default value is false. +EnforceConsumerDeletion *bool `json:"enforceConsumerDeletion,omitempty" tf:"enforce_consumer_deletion,omitempty"` - // – The number of shards that the stream will use. If the stream_mode is PROVISIONED, this field is required. - // Amazon has guidelines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more. - ShardCount *float64 `json:"shardCount,omitempty" tf:"shard_count,omitempty"` +// Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. +RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` - // A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable. - ShardLevelMetrics []*string `json:"shardLevelMetrics,omitempty" tf:"shard_level_metrics,omitempty"` +// – The number of shards that the stream will use. If the stream_mode is PROVISIONED, this field is required. +// Amazon has guidelines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more. +ShardCount *float64 `json:"shardCount,omitempty" tf:"shard_count,omitempty"` - // Indicates the capacity mode of the data stream. Detailed below. - StreamModeDetails []StreamModeDetailsInitParameters `json:"streamModeDetails,omitempty" tf:"stream_mode_details,omitempty"` +// A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable. +ShardLevelMetrics []*string `json:"shardLevelMetrics,omitempty" tf:"shard_level_metrics,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Indicates the capacity mode of the data stream. Detailed below. +StreamModeDetails []StreamModeDetailsInitParameters `json:"streamModeDetails,omitempty" tf:"stream_mode_details,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type StreamModeDetailsInitParameters struct { - // Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. - StreamMode *string `json:"streamMode,omitempty" tf:"stream_mode,omitempty"` + +// Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. +StreamMode *string `json:"streamMode,omitempty" tf:"stream_mode,omitempty"` } + type StreamModeDetailsObservation struct { - // Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. - StreamMode *string `json:"streamMode,omitempty" tf:"stream_mode,omitempty"` + +// Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. +StreamMode *string `json:"streamMode,omitempty" tf:"stream_mode,omitempty"` } + type StreamModeDetailsParameters struct { - // Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. - // +kubebuilder:validation:Optional - StreamMode *string `json:"streamMode" tf:"stream_mode,omitempty"` + +// Specifies the capacity mode of the stream. Must be either PROVISIONED or ON_DEMAND. +// +kubebuilder:validation:Optional +StreamMode *string `json:"streamMode" tf:"stream_mode,omitempty"` } + type StreamObservation struct { - // The Amazon Resource Name (ARN) specifying the Stream (same as id) - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE. - EncryptionType *string `json:"encryptionType,omitempty" tf:"encryption_type,omitempty"` +// The Amazon Resource Name (ARN) specifying the Stream (same as id) +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. The default value is false. - EnforceConsumerDeletion *bool `json:"enforceConsumerDeletion,omitempty" tf:"enforce_consumer_deletion,omitempty"` +// The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE. +EncryptionType *string `json:"encryptionType,omitempty" tf:"encryption_type,omitempty"` - // The unique Stream id - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. The default value is false. +EnforceConsumerDeletion *bool `json:"enforceConsumerDeletion,omitempty" tf:"enforce_consumer_deletion,omitempty"` - // The GUID for the customer-managed KMS key to use for encryption. You can also use a Kinesis-owned master key by specifying the alias alias/aws/kinesis. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The unique Stream id +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. - RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` +// The GUID for the customer-managed KMS key to use for encryption. You can also use a Kinesis-owned master key by specifying the alias alias/aws/kinesis. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // – The number of shards that the stream will use. If the stream_mode is PROVISIONED, this field is required. - // Amazon has guidelines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more. - ShardCount *float64 `json:"shardCount,omitempty" tf:"shard_count,omitempty"` +// Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. +RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` - // A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable. - ShardLevelMetrics []*string `json:"shardLevelMetrics,omitempty" tf:"shard_level_metrics,omitempty"` +// – The number of shards that the stream will use. If the stream_mode is PROVISIONED, this field is required. +// Amazon has guidelines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more. +ShardCount *float64 `json:"shardCount,omitempty" tf:"shard_count,omitempty"` - // Indicates the capacity mode of the data stream. Detailed below. - StreamModeDetails []StreamModeDetailsObservation `json:"streamModeDetails,omitempty" tf:"stream_mode_details,omitempty"` +// A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable. +ShardLevelMetrics []*string `json:"shardLevelMetrics,omitempty" tf:"shard_level_metrics,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Indicates the capacity mode of the data stream. Detailed below. +StreamModeDetails []StreamModeDetailsObservation `json:"streamModeDetails,omitempty" tf:"stream_mode_details,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type StreamParameters struct { - // The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE. - // +kubebuilder:validation:Optional - EncryptionType *string `json:"encryptionType,omitempty" tf:"encryption_type,omitempty"` - // A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. The default value is false. - // +kubebuilder:validation:Optional - EnforceConsumerDeletion *bool `json:"enforceConsumerDeletion,omitempty" tf:"enforce_consumer_deletion,omitempty"` +// The encryption type to use. The only acceptable values are NONE or KMS. The default value is NONE. +// +kubebuilder:validation:Optional +EncryptionType *string `json:"encryptionType,omitempty" tf:"encryption_type,omitempty"` + +// A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. The default value is false. +// +kubebuilder:validation:Optional +EnforceConsumerDeletion *bool `json:"enforceConsumerDeletion,omitempty" tf:"enforce_consumer_deletion,omitempty"` - // The GUID for the customer-managed KMS key to use for encryption. You can also use a Kinesis-owned master key by specifying the alias alias/aws/kinesis. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The GUID for the customer-managed KMS key to use for encryption. You can also use a Kinesis-owned master key by specifying the alias alias/aws/kinesis. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. - // +kubebuilder:validation:Optional - RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` +// Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 8760 hours. Minimum value is 24. Default is 24. +// +kubebuilder:validation:Optional +RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` - // – The number of shards that the stream will use. If the stream_mode is PROVISIONED, this field is required. - // Amazon has guidelines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more. - // +kubebuilder:validation:Optional - ShardCount *float64 `json:"shardCount,omitempty" tf:"shard_count,omitempty"` +// – The number of shards that the stream will use. If the stream_mode is PROVISIONED, this field is required. +// Amazon has guidelines for specifying the Stream size that should be referenced when creating a Kinesis stream. See Amazon Kinesis Streams for more. +// +kubebuilder:validation:Optional +ShardCount *float64 `json:"shardCount,omitempty" tf:"shard_count,omitempty"` - // A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable. - // +kubebuilder:validation:Optional - ShardLevelMetrics []*string `json:"shardLevelMetrics,omitempty" tf:"shard_level_metrics,omitempty"` +// A list of shard-level CloudWatch metrics which can be enabled for the stream. See Monitoring with CloudWatch for more. Note that the value ALL should not be used; instead you should provide an explicit list of metrics you wish to enable. +// +kubebuilder:validation:Optional +ShardLevelMetrics []*string `json:"shardLevelMetrics,omitempty" tf:"shard_level_metrics,omitempty"` - // Indicates the capacity mode of the data stream. Detailed below. - // +kubebuilder:validation:Optional - StreamModeDetails []StreamModeDetailsParameters `json:"streamModeDetails,omitempty" tf:"stream_mode_details,omitempty"` +// Indicates the capacity mode of the data stream. Detailed below. +// +kubebuilder:validation:Optional +StreamModeDetails []StreamModeDetailsParameters `json:"streamModeDetails,omitempty" tf:"stream_mode_details,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // StreamSpec defines the desired state of Stream type StreamSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider StreamParameters `json:"forProvider"` + ForProvider StreamParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -169,13 +184,13 @@ type StreamSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider StreamInitParameters `json:"initProvider,omitempty"` + InitProvider StreamInitParameters `json:"initProvider,omitempty"` } // StreamStatus defines the observed state of Stream. type StreamStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider StreamObservation `json:"atProvider,omitempty"` + AtProvider StreamObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -190,9 +205,9 @@ type StreamStatus struct { type Stream struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec StreamSpec `json:"spec"` - Status StreamStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec StreamSpec `json:"spec"` + Status StreamStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/kms/v1alpha1/zz_key_types.go b/apis/kms/v1alpha1/zz_key_types.go index 3d5d039..89e679c 100755 --- a/apis/kms/v1alpha1/zz_key_types.go +++ b/apis/kms/v1alpha1/zz_key_types.go @@ -15,175 +15,184 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type KeyInitParameters struct { - // A flag to indicate whether to bypass the key policy lockout safety check. - // Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. - // For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. - // The default value is false. - BypassPolicyLockoutSafetyCheck *bool `json:"bypassPolicyLockoutSafetyCheck,omitempty" tf:"bypass_policy_lockout_safety_check,omitempty"` - // ID of the KMS Custom Key Store where the key will be stored instead of KMS (eg CloudHSM). - CustomKeyStoreID *string `json:"customKeyStoreId,omitempty" tf:"custom_key_store_id,omitempty"` +// A flag to indicate whether to bypass the key policy lockout safety check. +// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. +// For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. +// The default value is false. +BypassPolicyLockoutSafetyCheck *bool `json:"bypassPolicyLockoutSafetyCheck,omitempty" tf:"bypass_policy_lockout_safety_check,omitempty"` + +// ID of the KMS Custom Key Store where the key will be stored instead of KMS (eg CloudHSM). +CustomKeyStoreID *string `json:"customKeyStoreId,omitempty" tf:"custom_key_store_id,omitempty"` - // Specifies whether the key contains a symmetric key or an asymmetric key pair and the encryption algorithms or signing algorithms that the key supports. - // Valid values: SYMMETRIC_DEFAULT, RSA_2048, RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. For help with choosing a key spec, see the AWS KMS Developer Guide. - CustomerMasterKeySpec *string `json:"customerMasterKeySpec,omitempty" tf:"customer_master_key_spec,omitempty"` +// Specifies whether the key contains a symmetric key or an asymmetric key pair and the encryption algorithms or signing algorithms that the key supports. +// Valid values: SYMMETRIC_DEFAULT, RSA_2048, RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. For help with choosing a key spec, see the AWS KMS Developer Guide. +CustomerMasterKeySpec *string `json:"customerMasterKeySpec,omitempty" tf:"customer_master_key_spec,omitempty"` - // The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key. - // If you specify a value, it must be between 7 and 30, inclusive. If you do not specify a value, it defaults to 30. - // If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. - DeletionWindowInDays *float64 `json:"deletionWindowInDays,omitempty" tf:"deletion_window_in_days,omitempty"` +// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key. +// If you specify a value, it must be between 7 and 30, inclusive. If you do not specify a value, it defaults to 30. +// If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. +DeletionWindowInDays *float64 `json:"deletionWindowInDays,omitempty" tf:"deletion_window_in_days,omitempty"` - // The description of the key as viewed in AWS console. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The description of the key as viewed in AWS console. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Specifies whether key rotation is enabled. Defaults to false. - EnableKeyRotation *bool `json:"enableKeyRotation,omitempty" tf:"enable_key_rotation,omitempty"` +// Specifies whether key rotation is enabled. Defaults to false. +EnableKeyRotation *bool `json:"enableKeyRotation,omitempty" tf:"enable_key_rotation,omitempty"` - // Specifies whether the key is enabled. Defaults to true. - IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +// Specifies whether the key is enabled. Defaults to true. +IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` - // Specifies the intended use of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. - // Defaults to ENCRYPT_DECRYPT. - KeyUsage *string `json:"keyUsage,omitempty" tf:"key_usage,omitempty"` +// Specifies the intended use of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. +// Defaults to ENCRYPT_DECRYPT. +KeyUsage *string `json:"keyUsage,omitempty" tf:"key_usage,omitempty"` - // Indicates whether the KMS key is a multi-Region (true) or regional (false) key. Defaults to false. - MultiRegion *bool `json:"multiRegion,omitempty" tf:"multi_region,omitempty"` +// Indicates whether the KMS key is a multi-Region (true) or regional (false) key. Defaults to false. +MultiRegion *bool `json:"multiRegion,omitempty" tf:"multi_region,omitempty"` - // A valid policy JSON document. Although this is a key policy, not an IAM policy, an aws_iam_policy_document, in the form that designates a principal, can be used. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// A valid policy JSON document. Although this is a key policy, not an IAM policy, an aws_iam_policy_document, in the form that designates a principal, can be used. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // A map of tags to assign to the object. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the object. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type KeyObservation struct { - // The Amazon Resource Name (ARN) of the key. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // A flag to indicate whether to bypass the key policy lockout safety check. - // Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. - // For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. - // The default value is false. - BypassPolicyLockoutSafetyCheck *bool `json:"bypassPolicyLockoutSafetyCheck,omitempty" tf:"bypass_policy_lockout_safety_check,omitempty"` +// The Amazon Resource Name (ARN) of the key. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// A flag to indicate whether to bypass the key policy lockout safety check. +// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. +// For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. +// The default value is false. +BypassPolicyLockoutSafetyCheck *bool `json:"bypassPolicyLockoutSafetyCheck,omitempty" tf:"bypass_policy_lockout_safety_check,omitempty"` - // ID of the KMS Custom Key Store where the key will be stored instead of KMS (eg CloudHSM). - CustomKeyStoreID *string `json:"customKeyStoreId,omitempty" tf:"custom_key_store_id,omitempty"` +// ID of the KMS Custom Key Store where the key will be stored instead of KMS (eg CloudHSM). +CustomKeyStoreID *string `json:"customKeyStoreId,omitempty" tf:"custom_key_store_id,omitempty"` - // Specifies whether the key contains a symmetric key or an asymmetric key pair and the encryption algorithms or signing algorithms that the key supports. - // Valid values: SYMMETRIC_DEFAULT, RSA_2048, RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. For help with choosing a key spec, see the AWS KMS Developer Guide. - CustomerMasterKeySpec *string `json:"customerMasterKeySpec,omitempty" tf:"customer_master_key_spec,omitempty"` +// Specifies whether the key contains a symmetric key or an asymmetric key pair and the encryption algorithms or signing algorithms that the key supports. +// Valid values: SYMMETRIC_DEFAULT, RSA_2048, RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. For help with choosing a key spec, see the AWS KMS Developer Guide. +CustomerMasterKeySpec *string `json:"customerMasterKeySpec,omitempty" tf:"customer_master_key_spec,omitempty"` - // The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key. - // If you specify a value, it must be between 7 and 30, inclusive. If you do not specify a value, it defaults to 30. - // If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. - DeletionWindowInDays *float64 `json:"deletionWindowInDays,omitempty" tf:"deletion_window_in_days,omitempty"` +// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key. +// If you specify a value, it must be between 7 and 30, inclusive. If you do not specify a value, it defaults to 30. +// If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. +DeletionWindowInDays *float64 `json:"deletionWindowInDays,omitempty" tf:"deletion_window_in_days,omitempty"` - // The description of the key as viewed in AWS console. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The description of the key as viewed in AWS console. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Specifies whether key rotation is enabled. Defaults to false. - EnableKeyRotation *bool `json:"enableKeyRotation,omitempty" tf:"enable_key_rotation,omitempty"` +// Specifies whether key rotation is enabled. Defaults to false. +EnableKeyRotation *bool `json:"enableKeyRotation,omitempty" tf:"enable_key_rotation,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Specifies whether the key is enabled. Defaults to true. - IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +// Specifies whether the key is enabled. Defaults to true. +IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` - // The globally unique identifier for the key. - KeyID *string `json:"keyId,omitempty" tf:"key_id,omitempty"` +// The globally unique identifier for the key. +KeyID *string `json:"keyId,omitempty" tf:"key_id,omitempty"` - // Specifies the intended use of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. - // Defaults to ENCRYPT_DECRYPT. - KeyUsage *string `json:"keyUsage,omitempty" tf:"key_usage,omitempty"` +// Specifies the intended use of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. +// Defaults to ENCRYPT_DECRYPT. +KeyUsage *string `json:"keyUsage,omitempty" tf:"key_usage,omitempty"` - // Indicates whether the KMS key is a multi-Region (true) or regional (false) key. Defaults to false. - MultiRegion *bool `json:"multiRegion,omitempty" tf:"multi_region,omitempty"` +// Indicates whether the KMS key is a multi-Region (true) or regional (false) key. Defaults to false. +MultiRegion *bool `json:"multiRegion,omitempty" tf:"multi_region,omitempty"` - // A valid policy JSON document. Although this is a key policy, not an IAM policy, an aws_iam_policy_document, in the form that designates a principal, can be used. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// A valid policy JSON document. Although this is a key policy, not an IAM policy, an aws_iam_policy_document, in the form that designates a principal, can be used. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // A map of tags to assign to the object. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the object. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type KeyParameters struct { - // A flag to indicate whether to bypass the key policy lockout safety check. - // Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. - // For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. - // The default value is false. - // +kubebuilder:validation:Optional - BypassPolicyLockoutSafetyCheck *bool `json:"bypassPolicyLockoutSafetyCheck,omitempty" tf:"bypass_policy_lockout_safety_check,omitempty"` - - // ID of the KMS Custom Key Store where the key will be stored instead of KMS (eg CloudHSM). - // +kubebuilder:validation:Optional - CustomKeyStoreID *string `json:"customKeyStoreId,omitempty" tf:"custom_key_store_id,omitempty"` - - // Specifies whether the key contains a symmetric key or an asymmetric key pair and the encryption algorithms or signing algorithms that the key supports. - // Valid values: SYMMETRIC_DEFAULT, RSA_2048, RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. For help with choosing a key spec, see the AWS KMS Developer Guide. - // +kubebuilder:validation:Optional - CustomerMasterKeySpec *string `json:"customerMasterKeySpec,omitempty" tf:"customer_master_key_spec,omitempty"` - - // The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key. - // If you specify a value, it must be between 7 and 30, inclusive. If you do not specify a value, it defaults to 30. - // If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. - // +kubebuilder:validation:Optional - DeletionWindowInDays *float64 `json:"deletionWindowInDays,omitempty" tf:"deletion_window_in_days,omitempty"` - - // The description of the key as viewed in AWS console. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // Specifies whether key rotation is enabled. Defaults to false. - // +kubebuilder:validation:Optional - EnableKeyRotation *bool `json:"enableKeyRotation,omitempty" tf:"enable_key_rotation,omitempty"` - - // Specifies whether the key is enabled. Defaults to true. - // +kubebuilder:validation:Optional - IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` - - // Specifies the intended use of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. - // Defaults to ENCRYPT_DECRYPT. - // +kubebuilder:validation:Optional - KeyUsage *string `json:"keyUsage,omitempty" tf:"key_usage,omitempty"` - - // Indicates whether the KMS key is a multi-Region (true) or regional (false) key. Defaults to false. - // +kubebuilder:validation:Optional - MultiRegion *bool `json:"multiRegion,omitempty" tf:"multi_region,omitempty"` - - // A valid policy JSON document. Although this is a key policy, not an IAM policy, an aws_iam_policy_document, in the form that designates a principal, can be used. - // +kubebuilder:validation:Optional - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // A map of tags to assign to the object. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// A flag to indicate whether to bypass the key policy lockout safety check. +// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. +// For more information, refer to the scenario in the Default Key Policy section in the AWS Key Management Service Developer Guide. +// The default value is false. +// +kubebuilder:validation:Optional +BypassPolicyLockoutSafetyCheck *bool `json:"bypassPolicyLockoutSafetyCheck,omitempty" tf:"bypass_policy_lockout_safety_check,omitempty"` + +// ID of the KMS Custom Key Store where the key will be stored instead of KMS (eg CloudHSM). +// +kubebuilder:validation:Optional +CustomKeyStoreID *string `json:"customKeyStoreId,omitempty" tf:"custom_key_store_id,omitempty"` + +// Specifies whether the key contains a symmetric key or an asymmetric key pair and the encryption algorithms or signing algorithms that the key supports. +// Valid values: SYMMETRIC_DEFAULT, RSA_2048, RSA_3072, RSA_4096, HMAC_256, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, or ECC_SECG_P256K1. Defaults to SYMMETRIC_DEFAULT. For help with choosing a key spec, see the AWS KMS Developer Guide. +// +kubebuilder:validation:Optional +CustomerMasterKeySpec *string `json:"customerMasterKeySpec,omitempty" tf:"customer_master_key_spec,omitempty"` + +// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key. +// If you specify a value, it must be between 7 and 30, inclusive. If you do not specify a value, it defaults to 30. +// If the KMS key is a multi-Region primary key with replicas, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. +// +kubebuilder:validation:Optional +DeletionWindowInDays *float64 `json:"deletionWindowInDays,omitempty" tf:"deletion_window_in_days,omitempty"` + +// The description of the key as viewed in AWS console. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Specifies whether key rotation is enabled. Defaults to false. +// +kubebuilder:validation:Optional +EnableKeyRotation *bool `json:"enableKeyRotation,omitempty" tf:"enable_key_rotation,omitempty"` + +// Specifies whether the key is enabled. Defaults to true. +// +kubebuilder:validation:Optional +IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + +// Specifies the intended use of the key. Valid values: ENCRYPT_DECRYPT, SIGN_VERIFY, or GENERATE_VERIFY_MAC. +// Defaults to ENCRYPT_DECRYPT. +// +kubebuilder:validation:Optional +KeyUsage *string `json:"keyUsage,omitempty" tf:"key_usage,omitempty"` + +// Indicates whether the KMS key is a multi-Region (true) or regional (false) key. Defaults to false. +// +kubebuilder:validation:Optional +MultiRegion *bool `json:"multiRegion,omitempty" tf:"multi_region,omitempty"` + +// A valid policy JSON document. Although this is a key policy, not an IAM policy, an aws_iam_policy_document, in the form that designates a principal, can be used. +// +kubebuilder:validation:Optional +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A map of tags to assign to the object. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // KeySpec defines the desired state of Key type KeySpec struct { v1.ResourceSpec `json:",inline"` - ForProvider KeyParameters `json:"forProvider"` + ForProvider KeyParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -194,13 +203,13 @@ type KeySpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider KeyInitParameters `json:"initProvider,omitempty"` + InitProvider KeyInitParameters `json:"initProvider,omitempty"` } // KeyStatus defines the observed state of Key. type KeyStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider KeyObservation `json:"atProvider,omitempty"` + AtProvider KeyObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -215,9 +224,9 @@ type KeyStatus struct { type Key struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec KeySpec `json:"spec"` - Status KeyStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec KeySpec `json:"spec"` + Status KeyStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/memorydb/v1alpha1/zz_acl_types.go b/apis/memorydb/v1alpha1/zz_acl_types.go index 9e8bcb8..1038b75 100755 --- a/apis/memorydb/v1alpha1/zz_acl_types.go +++ b/apis/memorydb/v1alpha1/zz_acl_types.go @@ -15,65 +15,74 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ACLInitParameters struct { - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Set of MemoryDB user names to be included in this ACL. - UserNames []*string `json:"userNames,omitempty" tf:"user_names,omitempty"` +// Set of MemoryDB user names to be included in this ACL. +UserNames []*string `json:"userNames,omitempty" tf:"user_names,omitempty"` } + type ACLObservation struct { - // The ARN of the ACL. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Same as name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ARN of the ACL. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// Same as name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The minimum engine version supported by the ACL. - MinimumEngineVersion *string `json:"minimumEngineVersion,omitempty" tf:"minimum_engine_version,omitempty"` +// The minimum engine version supported by the ACL. +MinimumEngineVersion *string `json:"minimumEngineVersion,omitempty" tf:"minimum_engine_version,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Set of MemoryDB user names to be included in this ACL. - UserNames []*string `json:"userNames,omitempty" tf:"user_names,omitempty"` +// Set of MemoryDB user names to be included in this ACL. +UserNames []*string `json:"userNames,omitempty" tf:"user_names,omitempty"` } + type ACLParameters struct { - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Set of MemoryDB user names to be included in this ACL. - // +kubebuilder:validation:Optional - UserNames []*string `json:"userNames,omitempty" tf:"user_names,omitempty"` +// Set of MemoryDB user names to be included in this ACL. +// +kubebuilder:validation:Optional +UserNames []*string `json:"userNames,omitempty" tf:"user_names,omitempty"` } // ACLSpec defines the desired state of ACL type ACLSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ACLParameters `json:"forProvider"` + ForProvider ACLParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -84,13 +93,13 @@ type ACLSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ACLInitParameters `json:"initProvider,omitempty"` + InitProvider ACLInitParameters `json:"initProvider,omitempty"` } // ACLStatus defines the observed state of ACL. type ACLStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ACLObservation `json:"atProvider,omitempty"` + AtProvider ACLObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -105,9 +114,9 @@ type ACLStatus struct { type ACL struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ACLSpec `json:"spec"` - Status ACLStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ACLSpec `json:"spec"` + Status ACLStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/memorydb/v1alpha1/zz_cluster_types.go b/apis/memorydb/v1alpha1/zz_cluster_types.go index e113015..28ddce0 100755 --- a/apis/memorydb/v1alpha1/zz_cluster_types.go +++ b/apis/memorydb/v1alpha1/zz_cluster_types.go @@ -15,362 +15,395 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterEndpointInitParameters struct { + } + type ClusterEndpointObservation struct { - // DNS hostname of the cluster configuration endpoint. - Address *string `json:"address,omitempty" tf:"address,omitempty"` - // The port number on which each of the nodes accepts connections. Defaults to 6379. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// DNS hostname of the cluster configuration endpoint. +Address *string `json:"address,omitempty" tf:"address,omitempty"` + +// The port number on which each of the nodes accepts connections. Defaults to 6379. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` } + type ClusterEndpointParameters struct { + } + type ClusterInitParameters struct { - // The name of the Access Control List to associate with the cluster. - ACLName *string `json:"aclName,omitempty" tf:"acl_name,omitempty"` - // When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// The name of the Access Control List to associate with the cluster. +ACLName *string `json:"aclName,omitempty" tf:"acl_name,omitempty"` - // Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering. - DataTiering *bool `json:"dataTiering,omitempty" tf:"data_tiering,omitempty"` +// When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // Description for the cluster. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering. +DataTiering *bool `json:"dataTiering,omitempty" tf:"data_tiering,omitempty"` - // Version number of the Redis engine to be used for the cluster. Downgrades are not supported. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Description for the cluster. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. - FinalSnapshotName *string `json:"finalSnapshotName,omitempty" tf:"final_snapshot_name,omitempty"` +// Version number of the Redis engine to be used for the cluster. Downgrades are not supported. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. +FinalSnapshotName *string `json:"finalSnapshotName,omitempty" tf:"final_snapshot_name,omitempty"` - // The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). - NumReplicasPerShard *float64 `json:"numReplicasPerShard,omitempty" tf:"num_replicas_per_shard,omitempty"` +// The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // The number of shards in the cluster. Defaults to 1. - NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` +// The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). +NumReplicasPerShard *float64 `json:"numReplicasPerShard,omitempty" tf:"num_replicas_per_shard,omitempty"` - // The name of the parameter group associated with the cluster. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// The number of shards in the cluster. Defaults to 1. +NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` - // The port number on which each of the nodes accepts connections. Defaults to 6379. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The name of the parameter group associated with the cluster. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas. - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` +// The port number on which each of the nodes accepts connections. Defaults to 6379. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The name of a snapshot from which to restore data into the new cluster. - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` +// List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas. +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - // The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0. - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// The name of a snapshot from which to restore data into the new cluster. +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - // The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00. - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0. +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // ARN of the SNS topic to which cluster notifications are sent. - SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` +// The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00. +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true. - TLSEnabled *bool `json:"tlsEnabled,omitempty" tf:"tls_enabled,omitempty"` +// ARN of the SNS topic to which cluster notifications are sent. +SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true. +TLSEnabled *bool `json:"tlsEnabled,omitempty" tf:"tls_enabled,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterObservation struct { - // The name of the Access Control List to associate with the cluster. - ACLName *string `json:"aclName,omitempty" tf:"acl_name,omitempty"` - // The ARN of the cluster. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// The name of the Access Control List to associate with the cluster. +ACLName *string `json:"aclName,omitempty" tf:"acl_name,omitempty"` + +// The ARN of the cluster. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - ClusterEndpoint []ClusterEndpointObservation `json:"clusterEndpoint,omitempty" tf:"cluster_endpoint,omitempty"` +ClusterEndpoint []ClusterEndpointObservation `json:"clusterEndpoint,omitempty" tf:"cluster_endpoint,omitempty"` - // Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering. - DataTiering *bool `json:"dataTiering,omitempty" tf:"data_tiering,omitempty"` +// Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering. +DataTiering *bool `json:"dataTiering,omitempty" tf:"data_tiering,omitempty"` - // Description for the cluster. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// Description for the cluster. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Patch version number of the Redis engine used by the cluster. - EnginePatchVersion *string `json:"enginePatchVersion,omitempty" tf:"engine_patch_version,omitempty"` +// Patch version number of the Redis engine used by the cluster. +EnginePatchVersion *string `json:"enginePatchVersion,omitempty" tf:"engine_patch_version,omitempty"` - // Version number of the Redis engine to be used for the cluster. Downgrades are not supported. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Version number of the Redis engine to be used for the cluster. Downgrades are not supported. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. - FinalSnapshotName *string `json:"finalSnapshotName,omitempty" tf:"final_snapshot_name,omitempty"` +// Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. +FinalSnapshotName *string `json:"finalSnapshotName,omitempty" tf:"final_snapshot_name,omitempty"` - // Same as name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Same as name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // ARN of the KMS key used to encrypt the cluster at rest. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// ARN of the KMS key used to encrypt the cluster at rest. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). - NumReplicasPerShard *float64 `json:"numReplicasPerShard,omitempty" tf:"num_replicas_per_shard,omitempty"` +// The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). +NumReplicasPerShard *float64 `json:"numReplicasPerShard,omitempty" tf:"num_replicas_per_shard,omitempty"` - // The number of shards in the cluster. Defaults to 1. - NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` +// The number of shards in the cluster. Defaults to 1. +NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` - // The name of the parameter group associated with the cluster. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// The name of the parameter group associated with the cluster. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // The port number on which each of the nodes accepts connections. Defaults to 6379. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The port number on which each of the nodes accepts connections. Defaults to 6379. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Set of VPC Security Group ID-s to associate with this cluster. - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +// Set of VPC Security Group ID-s to associate with this cluster. +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - // Set of shards in this cluster. - Shards []ShardsObservation `json:"shards,omitempty" tf:"shards,omitempty"` +// Set of shards in this cluster. +Shards []ShardsObservation `json:"shards,omitempty" tf:"shards,omitempty"` - // List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas. - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` +// List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas. +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - // The name of a snapshot from which to restore data into the new cluster. - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` +// The name of a snapshot from which to restore data into the new cluster. +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - // The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0. - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0. +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00. - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00. +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // ARN of the SNS topic to which cluster notifications are sent. - SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` +// ARN of the SNS topic to which cluster notifications are sent. +SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` - // The name of the subnet group to be used for the cluster. Defaults to a subnet group consisting of default VPC subnets. - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` +// The name of the subnet group to be used for the cluster. Defaults to a subnet group consisting of default VPC subnets. +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - // A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true. - TLSEnabled *bool `json:"tlsEnabled,omitempty" tf:"tls_enabled,omitempty"` +// A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true. +TLSEnabled *bool `json:"tlsEnabled,omitempty" tf:"tls_enabled,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterParameters struct { - // The name of the Access Control List to associate with the cluster. - // +kubebuilder:validation:Optional - ACLName *string `json:"aclName,omitempty" tf:"acl_name,omitempty"` - - // When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true. - // +kubebuilder:validation:Optional - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - - // Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering. - // +kubebuilder:validation:Optional - DataTiering *bool `json:"dataTiering,omitempty" tf:"data_tiering,omitempty"` - - // Description for the cluster. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // Version number of the Redis engine to be used for the cluster. Downgrades are not supported. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - - // Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. - // +kubebuilder:validation:Optional - FinalSnapshotName *string `json:"finalSnapshotName,omitempty" tf:"final_snapshot_name,omitempty"` - - // ARN of the KMS key used to encrypt the cluster at rest. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - - // Reference to a Key in kms to populate kmsKeyArn. - // +kubebuilder:validation:Optional - KMSKeyArnRef *v1.Reference `json:"kmsKeyArnRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyArn. - // +kubebuilder:validation:Optional - KMSKeyArnSelector *v1.Selector `json:"kmsKeyArnSelector,omitempty" tf:"-"` - - // Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30. - // +kubebuilder:validation:Optional - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - - // The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. - // +kubebuilder:validation:Optional - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - - // The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). - // +kubebuilder:validation:Optional - NumReplicasPerShard *float64 `json:"numReplicasPerShard,omitempty" tf:"num_replicas_per_shard,omitempty"` - - // The number of shards in the cluster. Defaults to 1. - // +kubebuilder:validation:Optional - NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` - - // The name of the parameter group associated with the cluster. - // +kubebuilder:validation:Optional - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - - // The port number on which each of the nodes accepts connections. Defaults to 6379. - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // References to SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. - // +kubebuilder:validation:Optional - SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` - - // Set of VPC Security Group ID-s to associate with this cluster. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector - // +kubebuilder:validation:Optional - SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` - - // List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas. - // +kubebuilder:validation:Optional - SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` - - // The name of a snapshot from which to restore data into the new cluster. - // +kubebuilder:validation:Optional - SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` - - // The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0. - // +kubebuilder:validation:Optional - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - - // The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00. - // +kubebuilder:validation:Optional - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - - // ARN of the SNS topic to which cluster notifications are sent. - // +kubebuilder:validation:Optional - SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` - - // The name of the subnet group to be used for the cluster. Defaults to a subnet group consisting of default VPC subnets. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/memorydb/v1alpha1.SubnetGroup - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - - // Reference to a SubnetGroup in memorydb to populate subnetGroupName. - // +kubebuilder:validation:Optional - SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"` - - // Selector for a SubnetGroup in memorydb to populate subnetGroupName. - // +kubebuilder:validation:Optional - SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"` - - // A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true. - // +kubebuilder:validation:Optional - TLSEnabled *bool `json:"tlsEnabled,omitempty" tf:"tls_enabled,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The name of the Access Control List to associate with the cluster. +// +kubebuilder:validation:Optional +ACLName *string `json:"aclName,omitempty" tf:"acl_name,omitempty"` + +// When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true. +// +kubebuilder:validation:Optional +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` + +// Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering. +// +kubebuilder:validation:Optional +DataTiering *bool `json:"dataTiering,omitempty" tf:"data_tiering,omitempty"` + +// Description for the cluster. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Version number of the Redis engine to be used for the cluster. Downgrades are not supported. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + +// Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made. +// +kubebuilder:validation:Optional +FinalSnapshotName *string `json:"finalSnapshotName,omitempty" tf:"final_snapshot_name,omitempty"` + +// ARN of the KMS key used to encrypt the cluster at rest. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` + +// Reference to a Key in kms to populate kmsKeyArn. +// +kubebuilder:validation:Optional +KMSKeyArnRef *v1.Reference `json:"kmsKeyArnRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyArn. +// +kubebuilder:validation:Optional +KMSKeyArnSelector *v1.Selector `json:"kmsKeyArnSelector,omitempty" tf:"-"` + +// Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30. +// +kubebuilder:validation:Optional +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` + +// The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. +// +kubebuilder:validation:Optional +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` + +// The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard). +// +kubebuilder:validation:Optional +NumReplicasPerShard *float64 `json:"numReplicasPerShard,omitempty" tf:"num_replicas_per_shard,omitempty"` + +// The number of shards in the cluster. Defaults to 1. +// +kubebuilder:validation:Optional +NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` + +// The name of the parameter group associated with the cluster. +// +kubebuilder:validation:Optional +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` + +// The port number on which each of the nodes accepts connections. Defaults to 6379. +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// References to SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. +// +kubebuilder:validation:Optional +SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` + +// Set of VPC Security Group ID-s to associate with this cluster. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector +// +kubebuilder:validation:Optional +SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + +// List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas. +// +kubebuilder:validation:Optional +SnapshotArns []*string `json:"snapshotArns,omitempty" tf:"snapshot_arns,omitempty"` + +// The name of a snapshot from which to restore data into the new cluster. +// +kubebuilder:validation:Optional +SnapshotName *string `json:"snapshotName,omitempty" tf:"snapshot_name,omitempty"` + +// The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0. +// +kubebuilder:validation:Optional +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` + +// The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00. +// +kubebuilder:validation:Optional +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` + +// ARN of the SNS topic to which cluster notifications are sent. +// +kubebuilder:validation:Optional +SnsTopicArn *string `json:"snsTopicArn,omitempty" tf:"sns_topic_arn,omitempty"` + +// The name of the subnet group to be used for the cluster. Defaults to a subnet group consisting of default VPC subnets. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/memorydb/v1alpha1.SubnetGroup +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` + +// Reference to a SubnetGroup in memorydb to populate subnetGroupName. +// +kubebuilder:validation:Optional +SubnetGroupNameRef *v1.Reference `json:"subnetGroupNameRef,omitempty" tf:"-"` + +// Selector for a SubnetGroup in memorydb to populate subnetGroupName. +// +kubebuilder:validation:Optional +SubnetGroupNameSelector *v1.Selector `json:"subnetGroupNameSelector,omitempty" tf:"-"` + +// A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true. +// +kubebuilder:validation:Optional +TLSEnabled *bool `json:"tlsEnabled,omitempty" tf:"tls_enabled,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type EndpointInitParameters struct { + } + type EndpointObservation struct { - // DNS hostname of the cluster configuration endpoint. - Address *string `json:"address,omitempty" tf:"address,omitempty"` - // The port number on which each of the nodes accepts connections. Defaults to 6379. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// DNS hostname of the cluster configuration endpoint. +Address *string `json:"address,omitempty" tf:"address,omitempty"` + +// The port number on which each of the nodes accepts connections. Defaults to 6379. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` } + type EndpointParameters struct { + } + type NodesInitParameters struct { + } + type NodesObservation struct { - // The Availability Zone in which the node resides. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The date and time when the node was created. Example: 2022-01-01T21:00:00Z. - CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` +// The Availability Zone in which the node resides. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - Endpoint []EndpointObservation `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// The date and time when the node was created. Example: 2022-01-01T21:00:00Z. +CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` - // Name of the cluster. Conflicts with name_prefix. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +Endpoint []EndpointObservation `json:"endpoint,omitempty" tf:"endpoint,omitempty"` + +// Name of the cluster. Conflicts with name_prefix. +Name *string `json:"name,omitempty" tf:"name,omitempty"` } + type NodesParameters struct { + } + type ShardsInitParameters struct { + } + type ShardsObservation struct { - // Name of the cluster. Conflicts with name_prefix. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Set of nodes in this shard. - Nodes []NodesObservation `json:"nodes,omitempty" tf:"nodes,omitempty"` +// Name of the cluster. Conflicts with name_prefix. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// Set of nodes in this shard. +Nodes []NodesObservation `json:"nodes,omitempty" tf:"nodes,omitempty"` - // Number of individual nodes in this shard. - NumNodes *float64 `json:"numNodes,omitempty" tf:"num_nodes,omitempty"` +// Number of individual nodes in this shard. +NumNodes *float64 `json:"numNodes,omitempty" tf:"num_nodes,omitempty"` - // Keyspace for this shard. Example: 0-16383. - Slots *string `json:"slots,omitempty" tf:"slots,omitempty"` +// Keyspace for this shard. Example: 0-16383. +Slots *string `json:"slots,omitempty" tf:"slots,omitempty"` } + type ShardsParameters struct { + } // ClusterSpec defines the desired state of Cluster type ClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameters `json:"forProvider"` + ForProvider ClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -381,13 +414,13 @@ type ClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInitParameters `json:"initProvider,omitempty"` } // ClusterStatus defines the observed state of Cluster. type ClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterObservation `json:"atProvider,omitempty"` + AtProvider ClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -402,11 +435,11 @@ type ClusterStatus struct { type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.aclName) || (has(self.initProvider) && has(self.initProvider.aclName))",message="spec.forProvider.aclName is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nodeType) || (has(self.initProvider) && has(self.initProvider.nodeType))",message="spec.forProvider.nodeType is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSpec `json:"spec"` - Status ClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.aclName) || (has(self.initProvider) && has(self.initProvider.aclName))",message="spec.forProvider.aclName is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nodeType) || (has(self.initProvider) && has(self.initProvider.nodeType))",message="spec.forProvider.nodeType is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSpec `json:"spec"` + Status ClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/memorydb/v1alpha1/zz_parametergroup_types.go b/apis/memorydb/v1alpha1/zz_parametergroup_types.go index 52c42ab..b9b2fc4 100755 --- a/apis/memorydb/v1alpha1/zz_parametergroup_types.go +++ b/apis/memorydb/v1alpha1/zz_parametergroup_types.go @@ -15,111 +15,126 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ParameterGroupInitParameters struct { - // Description for the parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The engine version that the parameter group can be used with. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// Description for the parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. - Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The engine version that the parameter group can be used with. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. +Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterGroupObservation struct { - // The ARN of the parameter group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Description for the parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the parameter group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The engine version that the parameter group can be used with. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// Description for the parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Same as name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The engine version that the parameter group can be used with. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. - Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` +// Same as name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. +Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterGroupParameters struct { - // Description for the parameter group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The engine version that the parameter group can be used with. - // +kubebuilder:validation:Optional - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// Description for the parameter group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. - // +kubebuilder:validation:Optional - Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The engine version that the parameter group can be used with. +// +kubebuilder:validation:Optional +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Set of MemoryDB parameters to apply. Any parameters not specified will fall back to their family defaults. Detailed below. +// +kubebuilder:validation:Optional +Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterInitParameters struct { - // The name of the parameter. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // The value of the parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the parameter. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterObservation struct { - // The name of the parameter. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // The value of the parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the parameter. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterParameters struct { - // The name of the parameter. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` - // The value of the parameter. - // +kubebuilder:validation:Optional - Value *string `json:"value" tf:"value,omitempty"` +// The name of the parameter. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` + +// The value of the parameter. +// +kubebuilder:validation:Optional +Value *string `json:"value" tf:"value,omitempty"` } // ParameterGroupSpec defines the desired state of ParameterGroup type ParameterGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ParameterGroupParameters `json:"forProvider"` + ForProvider ParameterGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -130,13 +145,13 @@ type ParameterGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ParameterGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ParameterGroupInitParameters `json:"initProvider,omitempty"` } // ParameterGroupStatus defines the observed state of ParameterGroup. type ParameterGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ParameterGroupObservation `json:"atProvider,omitempty"` + AtProvider ParameterGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -151,10 +166,10 @@ type ParameterGroupStatus struct { type ParameterGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ParameterGroupSpec `json:"spec"` - Status ParameterGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ParameterGroupSpec `json:"spec"` + Status ParameterGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/memorydb/v1alpha1/zz_snapshot_types.go b/apis/memorydb/v1alpha1/zz_snapshot_types.go index ae09211..57689e7 100755 --- a/apis/memorydb/v1alpha1/zz_snapshot_types.go +++ b/apis/memorydb/v1alpha1/zz_snapshot_types.go @@ -15,138 +15,153 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterConfigurationInitParameters struct { + } + type ClusterConfigurationObservation struct { - // Description for the cluster. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Version number of the Redis engine used by the cluster. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Description for the cluster. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The weekly time range during which maintenance on the cluster is performed. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// Version number of the Redis engine used by the cluster. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Name of the snapshot. Conflicts with name_prefix. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// The weekly time range during which maintenance on the cluster is performed. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // Compute and memory capacity of the nodes in the cluster. - NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` +// Name of the snapshot. Conflicts with name_prefix. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Number of shards in the cluster. - NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` +// Compute and memory capacity of the nodes in the cluster. +NodeType *string `json:"nodeType,omitempty" tf:"node_type,omitempty"` - // Name of the parameter group associated with the cluster. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// Number of shards in the cluster. +NumShards *float64 `json:"numShards,omitempty" tf:"num_shards,omitempty"` - // Port number on which the cluster accepts connections. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Name of the parameter group associated with the cluster. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // Number of days for which MemoryDB retains automatic snapshots before deleting them. - SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` +// Port number on which the cluster accepts connections. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of the shard. - SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` +// Number of days for which MemoryDB retains automatic snapshots before deleting them. +SnapshotRetentionLimit *float64 `json:"snapshotRetentionLimit,omitempty" tf:"snapshot_retention_limit,omitempty"` - // Name of the subnet group used by the cluster. - SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` +// The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of the shard. +SnapshotWindow *string `json:"snapshotWindow,omitempty" tf:"snapshot_window,omitempty"` - // ARN of the SNS topic to which cluster notifications are sent. - TopicArn *string `json:"topicArn,omitempty" tf:"topic_arn,omitempty"` +// Name of the subnet group used by the cluster. +SubnetGroupName *string `json:"subnetGroupName,omitempty" tf:"subnet_group_name,omitempty"` - // The VPC in which the cluster exists. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// ARN of the SNS topic to which cluster notifications are sent. +TopicArn *string `json:"topicArn,omitempty" tf:"topic_arn,omitempty"` + +// The VPC in which the cluster exists. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type ClusterConfigurationParameters struct { + } + type SnapshotInitParameters struct { - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SnapshotObservation struct { - // The ARN of the snapshot. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The configuration of the cluster from which the snapshot was taken. - ClusterConfiguration []ClusterConfigurationObservation `json:"clusterConfiguration,omitempty" tf:"cluster_configuration,omitempty"` +// The ARN of the snapshot. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Name of the MemoryDB cluster to take a snapshot of. - ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` +// The configuration of the cluster from which the snapshot was taken. +ClusterConfiguration []ClusterConfigurationObservation `json:"clusterConfiguration,omitempty" tf:"cluster_configuration,omitempty"` - // The name of the snapshot. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Name of the MemoryDB cluster to take a snapshot of. +ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` - // ARN of the KMS key used to encrypt the snapshot at rest. - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// The name of the snapshot. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Indicates whether the snapshot is from an automatic backup (automated) or was created manually (manual). - Source *string `json:"source,omitempty" tf:"source,omitempty"` +// ARN of the KMS key used to encrypt the snapshot at rest. +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Indicates whether the snapshot is from an automatic backup (automated) or was created manually (manual). +Source *string `json:"source,omitempty" tf:"source,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SnapshotParameters struct { - // Name of the MemoryDB cluster to take a snapshot of. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/memorydb/v1alpha1.Cluster - // +kubebuilder:validation:Optional - ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` - // Reference to a Cluster in memorydb to populate clusterName. - // +kubebuilder:validation:Optional - ClusterNameRef *v1.Reference `json:"clusterNameRef,omitempty" tf:"-"` +// Name of the MemoryDB cluster to take a snapshot of. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/memorydb/v1alpha1.Cluster +// +kubebuilder:validation:Optional +ClusterName *string `json:"clusterName,omitempty" tf:"cluster_name,omitempty"` + +// Reference to a Cluster in memorydb to populate clusterName. +// +kubebuilder:validation:Optional +ClusterNameRef *v1.Reference `json:"clusterNameRef,omitempty" tf:"-"` - // Selector for a Cluster in memorydb to populate clusterName. - // +kubebuilder:validation:Optional - ClusterNameSelector *v1.Selector `json:"clusterNameSelector,omitempty" tf:"-"` +// Selector for a Cluster in memorydb to populate clusterName. +// +kubebuilder:validation:Optional +ClusterNameSelector *v1.Selector `json:"clusterNameSelector,omitempty" tf:"-"` - // ARN of the KMS key used to encrypt the snapshot at rest. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` +// ARN of the KMS key used to encrypt the snapshot at rest. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyArn *string `json:"kmsKeyArn,omitempty" tf:"kms_key_arn,omitempty"` - // Reference to a Key in kms to populate kmsKeyArn. - // +kubebuilder:validation:Optional - KMSKeyArnRef *v1.Reference `json:"kmsKeyArnRef,omitempty" tf:"-"` +// Reference to a Key in kms to populate kmsKeyArn. +// +kubebuilder:validation:Optional +KMSKeyArnRef *v1.Reference `json:"kmsKeyArnRef,omitempty" tf:"-"` - // Selector for a Key in kms to populate kmsKeyArn. - // +kubebuilder:validation:Optional - KMSKeyArnSelector *v1.Selector `json:"kmsKeyArnSelector,omitempty" tf:"-"` +// Selector for a Key in kms to populate kmsKeyArn. +// +kubebuilder:validation:Optional +KMSKeyArnSelector *v1.Selector `json:"kmsKeyArnSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SnapshotSpec defines the desired state of Snapshot type SnapshotSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SnapshotParameters `json:"forProvider"` + ForProvider SnapshotParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -157,13 +172,13 @@ type SnapshotSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SnapshotInitParameters `json:"initProvider,omitempty"` + InitProvider SnapshotInitParameters `json:"initProvider,omitempty"` } // SnapshotStatus defines the observed state of Snapshot. type SnapshotStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SnapshotObservation `json:"atProvider,omitempty"` + AtProvider SnapshotObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -178,9 +193,9 @@ type SnapshotStatus struct { type Snapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SnapshotSpec `json:"spec"` - Status SnapshotStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SnapshotSpec `json:"spec"` + Status SnapshotStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/memorydb/v1alpha1/zz_subnetgroup_types.go b/apis/memorydb/v1alpha1/zz_subnetgroup_types.go index 842f597..8682522 100755 --- a/apis/memorydb/v1alpha1/zz_subnetgroup_types.go +++ b/apis/memorydb/v1alpha1/zz_subnetgroup_types.go @@ -15,83 +15,92 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SubnetGroupInitParameters struct { - // Description for the subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Description for the subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetGroupObservation struct { - // The ARN of the subnet group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Description for the subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the subnet group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The name of the subnet group. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Description for the subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Set of VPC Subnet ID-s for the subnet group. At least one subnet must be provided. - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// The name of the subnet group. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Set of VPC Subnet ID-s for the subnet group. At least one subnet must be provided. +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The VPC in which the subnet group exists. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The VPC in which the subnet group exists. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type SubnetGroupParameters struct { - // Description for the subnet group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // References to Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` - - // Selector for a list of Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` - - // Set of VPC Subnet ID-s for the subnet group. At least one subnet must be provided. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet - // +crossplane:generate:reference:refFieldName=SubnetIDRefs - // +crossplane:generate:reference:selectorFieldName=SubnetIDSelector - // +kubebuilder:validation:Optional - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Description for the subnet group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// References to Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` + +// Selector for a list of Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + +// Set of VPC Subnet ID-s for the subnet group. At least one subnet must be provided. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet +// +crossplane:generate:reference:refFieldName=SubnetIDRefs +// +crossplane:generate:reference:selectorFieldName=SubnetIDSelector +// +kubebuilder:validation:Optional +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SubnetGroupSpec defines the desired state of SubnetGroup type SubnetGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SubnetGroupParameters `json:"forProvider"` + ForProvider SubnetGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -102,13 +111,13 @@ type SubnetGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` + InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` } // SubnetGroupStatus defines the observed state of SubnetGroup. type SubnetGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` + AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -123,9 +132,9 @@ type SubnetGroupStatus struct { type SubnetGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SubnetGroupSpec `json:"spec"` - Status SubnetGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SubnetGroupSpec `json:"spec"` + Status SubnetGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_cluster_types.go b/apis/rds/v1alpha1/zz_cluster_types.go index b965d45..0b4abcf 100755 --- a/apis/rds/v1alpha1/zz_cluster_types.go +++ b/apis/rds/v1alpha1/zz_cluster_types.go @@ -15,755 +15,794 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterInitParameters struct { - // The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster. - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Enable to allow major engine version upgrades when changing engine versions. Defaults to false. - AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` +// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster. +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` + +// Enable to allow major engine version upgrades when changing engine versions. Defaults to false. +AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` - // Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` +// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created. We recommend specifying 3 AZs or using the if necessary. A maximum of 3 AZs can be configured. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` +// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created. We recommend specifying 3 AZs or using the if necessary. A maximum of 3 AZs can be configured. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // Target backtrack window, in seconds. Only available for aurora and aurora-mysql engines currently. To disable backtracking, set this value to 0. Defaults to 0. Must be between 0 and 259200 (72 hours) - BacktrackWindow *float64 `json:"backtrackWindow,omitempty" tf:"backtrack_window,omitempty"` +// Target backtrack window, in seconds. Only available for aurora and aurora-mysql engines currently. To disable backtracking, set this value to 0. Defaults to 0. Must be between 0 and 259200 (72 hours) +BacktrackWindow *float64 `json:"backtrackWindow,omitempty" tf:"backtrack_window,omitempty"` - // Days to retain backups for. Default 1 - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// Days to retain backups for. Default 1 +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // – List of RDS Instances that are a part of this cluster - ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` +// – List of RDS Instances that are a part of this cluster +ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` - // – Copy all Cluster tags to snapshots. Default is false. - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// – Copy all Cluster tags to snapshots. Default is false. +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // Compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). - DBClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty" tf:"db_cluster_instance_class,omitempty"` +// Compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). +DBClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty" tf:"db_cluster_instance_class,omitempty"` - DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` +DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` - // Instance parameter group to associate with all instances of the DB cluster. The db_instance_parameter_group_name parameter is only valid in combination with the allow_major_version_upgrade parameter. - DBInstanceParameterGroupName *string `json:"dbInstanceParameterGroupName,omitempty" tf:"db_instance_parameter_group_name,omitempty"` +// Instance parameter group to associate with all instances of the DB cluster. The db_instance_parameter_group_name parameter is only valid in combination with the allow_major_version_upgrade parameter. +DBInstanceParameterGroupName *string `json:"dbInstanceParameterGroupName,omitempty" tf:"db_instance_parameter_group_name,omitempty"` - // Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` +// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an aws_rds_global_cluster's primary cluster. See the Aurora Userguide documentation for more information. - EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty" tf:"enable_global_write_forwarding,omitempty"` +// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an aws_rds_global_cluster's primary cluster. See the Aurora Userguide documentation for more information. +EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty" tf:"enable_global_write_forwarding,omitempty"` - // Enable HTTP endpoint (data API). Only valid when engine_mode is set to serverless. - EnableHTTPEndpoint *bool `json:"enableHttpEndpoint,omitempty" tf:"enable_http_endpoint,omitempty"` +// Enable HTTP endpoint (data API). Only valid when engine_mode is set to serverless. +EnableHTTPEndpoint *bool `json:"enableHttpEndpoint,omitempty" tf:"enable_http_endpoint,omitempty"` - // Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, slowquery, postgresql (PostgreSQL). - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, slowquery, postgresql (PostgreSQL). +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // Name of the database engine to be used for this DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. (Note that mysql and postgres are Multi-AZ RDS clusters). - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine to be used for this DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. (Note that mysql and postgres are Multi-AZ RDS clusters). +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, provisioned, serverless. Defaults to: provisioned. See the RDS User Guide for limitations when using serverless. - EngineMode *string `json:"engineMode,omitempty" tf:"engine_mode,omitempty"` +// Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, provisioned, serverless. Defaults to: provisioned. See the RDS User Guide for limitations when using serverless. +EngineMode *string `json:"engineMode,omitempty" tf:"engine_mode,omitempty"` - // Database engine version. Updating this argument results in an outage. See the Aurora MySQL and Aurora Postgres documentation for your configured engine to determine this value, or by running aws rds describe-db-engine-versions. For example with Aurora MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute engine_version_actual, , see Attributes Reference below. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Database engine version. Updating this argument results in an outage. See the Aurora MySQL and Aurora Postgres documentation for your configured engine to determine this value, or by running aws rds describe-db-engine-versions. For example with Aurora MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute engine_version_actual, , see Attributes Reference below. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // Global cluster identifier specified on aws_rds_global_cluster. - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// Global cluster identifier specified on aws_rds_global_cluster. +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see AWS Documentation for availability and limitations. - IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` +// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see AWS Documentation for availability and limitations. +IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` - // Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided. - ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` +// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided. +ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` - // Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place updates and cannot be changed during a restore from snapshot. - MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` +// Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place updates and cannot be changed during a restore from snapshot. +MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` - // Network type of the cluster. Valid values: IPV4, DUAL. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// Network type of the cluster. Valid values: IPV4, DUAL. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // Port on which the DB accepts connections - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Port on which the DB accepts connections +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. - ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty" tf:"replication_source_identifier,omitempty"` +// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. +ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty" tf:"replication_source_identifier,omitempty"` - // Nested attribute for point in time restore. More details below. - RestoreToPointInTime []ClusterRestoreToPointInTimeInitParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` +// Nested attribute for point in time restore. More details below. +RestoreToPointInTime []ClusterRestoreToPointInTimeInitParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` - // Port on which the DB accepts connections - S3Import []ClusterS3ImportInitParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` +// Port on which the DB accepts connections +S3Import []ClusterS3ImportInitParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` - // Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below. - ScalingConfiguration []ScalingConfigurationInitParameters `json:"scalingConfiguration,omitempty" tf:"scaling_configuration,omitempty"` +// Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below. +ScalingConfiguration []ScalingConfigurationInitParameters `json:"scalingConfiguration,omitempty" tf:"scaling_configuration,omitempty"` - // Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below. - Serverlessv2ScalingConfiguration []Serverlessv2ScalingConfigurationInitParameters `json:"serverlessv2ScalingConfiguration,omitempty" tf:"serverlessv2_scaling_configuration,omitempty"` +// Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below. +Serverlessv2ScalingConfiguration []Serverlessv2ScalingConfigurationInitParameters `json:"serverlessv2ScalingConfiguration,omitempty" tf:"serverlessv2_scaling_configuration,omitempty"` - // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` +// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Conflicts with global_cluster_identifier. Clusters cannot be restored from snapshot and joined to an existing global cluster in a single operation. See the AWS documentation or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot. - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` +// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Conflicts with global_cluster_identifier. Clusters cannot be restored from snapshot and joined to an existing global cluster in a single operation. See the AWS documentation or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot. +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - // The source region for an encrypted replica DB cluster. - SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` +// The source region for an encrypted replica DB cluster. +SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false for provisioned engine_mode and true for serverless engine_mode. When restoring an unencrypted snapshot_identifier, the kms_key_id argument must be provided to encrypt the restored cluster. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. The default is false for provisioned engine_mode and true for serverless engine_mode. When restoring an unencrypted snapshot_identifier, the kms_key_id argument must be provided to encrypt the restored cluster. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` +// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterMasterUserSecretInitParameters struct { + } + type ClusterMasterUserSecretObservation struct { - // Amazon Web Services KMS key identifier that is used to encrypt the secret. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Amazon Resource Name (ARN) of the secret. - SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` +// Amazon Web Services KMS key identifier that is used to encrypt the secret. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Status of the secret. Valid Values: creating | active | rotating | impaired. - SecretStatus *string `json:"secretStatus,omitempty" tf:"secret_status,omitempty"` +// Amazon Resource Name (ARN) of the secret. +SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` + +// Status of the secret. Valid Values: creating | active | rotating | impaired. +SecretStatus *string `json:"secretStatus,omitempty" tf:"secret_status,omitempty"` } + type ClusterMasterUserSecretParameters struct { + } + type ClusterObservation struct { - // The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster. - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Enable to allow major engine version upgrades when changing engine versions. Defaults to false. - AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` +// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster. +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` + +// Enable to allow major engine version upgrades when changing engine versions. Defaults to false. +AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` - // Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` +// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Amazon Resource Name (ARN) of cluster - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Amazon Resource Name (ARN) of cluster +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created. We recommend specifying 3 AZs or using the if necessary. A maximum of 3 AZs can be configured. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` +// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created. We recommend specifying 3 AZs or using the if necessary. A maximum of 3 AZs can be configured. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // Target backtrack window, in seconds. Only available for aurora and aurora-mysql engines currently. To disable backtracking, set this value to 0. Defaults to 0. Must be between 0 and 259200 (72 hours) - BacktrackWindow *float64 `json:"backtrackWindow,omitempty" tf:"backtrack_window,omitempty"` +// Target backtrack window, in seconds. Only available for aurora and aurora-mysql engines currently. To disable backtracking, set this value to 0. Defaults to 0. Must be between 0 and 259200 (72 hours) +BacktrackWindow *float64 `json:"backtrackWindow,omitempty" tf:"backtrack_window,omitempty"` - // Days to retain backups for. Default 1 - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// Days to retain backups for. Default 1 +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // – List of RDS Instances that are a part of this cluster - ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` +// – List of RDS Instances that are a part of this cluster +ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` - // RDS Cluster Resource ID - ClusterResourceID *string `json:"clusterResourceId,omitempty" tf:"cluster_resource_id,omitempty"` +// RDS Cluster Resource ID +ClusterResourceID *string `json:"clusterResourceId,omitempty" tf:"cluster_resource_id,omitempty"` - // – Copy all Cluster tags to snapshots. Default is false. - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// – Copy all Cluster tags to snapshots. Default is false. +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // Compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). - DBClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty" tf:"db_cluster_instance_class,omitempty"` +// Compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). +DBClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty" tf:"db_cluster_instance_class,omitempty"` - DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` +DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` - // Instance parameter group to associate with all instances of the DB cluster. The db_instance_parameter_group_name parameter is only valid in combination with the allow_major_version_upgrade parameter. - DBInstanceParameterGroupName *string `json:"dbInstanceParameterGroupName,omitempty" tf:"db_instance_parameter_group_name,omitempty"` +// Instance parameter group to associate with all instances of the DB cluster. The db_instance_parameter_group_name parameter is only valid in combination with the allow_major_version_upgrade parameter. +DBInstanceParameterGroupName *string `json:"dbInstanceParameterGroupName,omitempty" tf:"db_instance_parameter_group_name,omitempty"` - // DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster. - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster. +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` +// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an aws_rds_global_cluster's primary cluster. See the Aurora Userguide documentation for more information. - EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty" tf:"enable_global_write_forwarding,omitempty"` +// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an aws_rds_global_cluster's primary cluster. See the Aurora Userguide documentation for more information. +EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty" tf:"enable_global_write_forwarding,omitempty"` - // Enable HTTP endpoint (data API). Only valid when engine_mode is set to serverless. - EnableHTTPEndpoint *bool `json:"enableHttpEndpoint,omitempty" tf:"enable_http_endpoint,omitempty"` +// Enable HTTP endpoint (data API). Only valid when engine_mode is set to serverless. +EnableHTTPEndpoint *bool `json:"enableHttpEndpoint,omitempty" tf:"enable_http_endpoint,omitempty"` - // Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, slowquery, postgresql (PostgreSQL). - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, slowquery, postgresql (PostgreSQL). +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // DNS address of the RDS instance - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// DNS address of the RDS instance +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // Name of the database engine to be used for this DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. (Note that mysql and postgres are Multi-AZ RDS clusters). - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine to be used for this DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. (Note that mysql and postgres are Multi-AZ RDS clusters). +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, provisioned, serverless. Defaults to: provisioned. See the RDS User Guide for limitations when using serverless. - EngineMode *string `json:"engineMode,omitempty" tf:"engine_mode,omitempty"` +// Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, provisioned, serverless. Defaults to: provisioned. See the RDS User Guide for limitations when using serverless. +EngineMode *string `json:"engineMode,omitempty" tf:"engine_mode,omitempty"` - // Database engine version. Updating this argument results in an outage. See the Aurora MySQL and Aurora Postgres documentation for your configured engine to determine this value, or by running aws rds describe-db-engine-versions. For example with Aurora MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute engine_version_actual, , see Attributes Reference below. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Database engine version. Updating this argument results in an outage. See the Aurora MySQL and Aurora Postgres documentation for your configured engine to determine this value, or by running aws rds describe-db-engine-versions. For example with Aurora MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute engine_version_actual, , see Attributes Reference below. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Running version of the database. - EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` +// Running version of the database. +EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` - // Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // Global cluster identifier specified on aws_rds_global_cluster. - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// Global cluster identifier specified on aws_rds_global_cluster. +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // Route53 Hosted Zone ID of the endpoint - HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` +// Route53 Hosted Zone ID of the endpoint +HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` - // Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see AWS Documentation for availability and limitations. - IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` +// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see AWS Documentation for availability and limitations. +IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` - // List of ARNs for the IAM roles to associate to the RDS Cluster. - IAMRoles []*string `json:"iamRoles,omitempty" tf:"iam_roles,omitempty"` +// List of ARNs for the IAM roles to associate to the RDS Cluster. +IAMRoles []*string `json:"iamRoles,omitempty" tf:"iam_roles,omitempty"` - // RDS Cluster Identifier - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// RDS Cluster Identifier +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided. - ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` +// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided. +ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` - // Block that specifies the master user secret. Only available when manage_master_user_password is set to true. Documented below. - MasterUserSecret []ClusterMasterUserSecretObservation `json:"masterUserSecret,omitempty" tf:"master_user_secret,omitempty"` +// Block that specifies the master user secret. Only available when manage_master_user_password is set to true. Documented below. +MasterUserSecret []ClusterMasterUserSecretObservation `json:"masterUserSecret,omitempty" tf:"master_user_secret,omitempty"` - // Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. - MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` +// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. +MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` - // Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place updates and cannot be changed during a restore from snapshot. - MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` +// Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place updates and cannot be changed during a restore from snapshot. +MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` - // Network type of the cluster. Valid values: IPV4, DUAL. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// Network type of the cluster. Valid values: IPV4, DUAL. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // Port on which the DB accepts connections - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Port on which the DB accepts connections +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // Read-only endpoint for the Aurora cluster, automatically - // load-balanced across replicas - ReaderEndpoint *string `json:"readerEndpoint,omitempty" tf:"reader_endpoint,omitempty"` +// Read-only endpoint for the Aurora cluster, automatically +// load-balanced across replicas +ReaderEndpoint *string `json:"readerEndpoint,omitempty" tf:"reader_endpoint,omitempty"` - // ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. - ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty" tf:"replication_source_identifier,omitempty"` +// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. +ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty" tf:"replication_source_identifier,omitempty"` - // Nested attribute for point in time restore. More details below. - RestoreToPointInTime []ClusterRestoreToPointInTimeObservation `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` +// Nested attribute for point in time restore. More details below. +RestoreToPointInTime []ClusterRestoreToPointInTimeObservation `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` - // Port on which the DB accepts connections - S3Import []ClusterS3ImportObservation `json:"s3Import,omitempty" tf:"s3_import,omitempty"` +// Port on which the DB accepts connections +S3Import []ClusterS3ImportObservation `json:"s3Import,omitempty" tf:"s3_import,omitempty"` - // Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below. - ScalingConfiguration []ScalingConfigurationObservation `json:"scalingConfiguration,omitempty" tf:"scaling_configuration,omitempty"` +// Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below. +ScalingConfiguration []ScalingConfigurationObservation `json:"scalingConfiguration,omitempty" tf:"scaling_configuration,omitempty"` - // Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below. - Serverlessv2ScalingConfiguration []Serverlessv2ScalingConfigurationObservation `json:"serverlessv2ScalingConfiguration,omitempty" tf:"serverlessv2_scaling_configuration,omitempty"` +// Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below. +Serverlessv2ScalingConfiguration []Serverlessv2ScalingConfigurationObservation `json:"serverlessv2ScalingConfiguration,omitempty" tf:"serverlessv2_scaling_configuration,omitempty"` - // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` +// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Conflicts with global_cluster_identifier. Clusters cannot be restored from snapshot and joined to an existing global cluster in a single operation. See the AWS documentation or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot. - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` +// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Conflicts with global_cluster_identifier. Clusters cannot be restored from snapshot and joined to an existing global cluster in a single operation. See the AWS documentation or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot. +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - // The source region for an encrypted replica DB cluster. - SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` +// The source region for an encrypted replica DB cluster. +SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false for provisioned engine_mode and true for serverless engine_mode. When restoring an unencrypted snapshot_identifier, the kms_key_id argument must be provided to encrypt the restored cluster. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. The default is false for provisioned engine_mode and true for serverless engine_mode. When restoring an unencrypted snapshot_identifier, the kms_key_id argument must be provided to encrypt the restored cluster. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` +// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // List of VPC security groups to associate with the Cluster - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` +// List of VPC security groups to associate with the Cluster +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` } + type ClusterParameters struct { - // The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster. - // +kubebuilder:validation:Optional - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Enable to allow major engine version upgrades when changing engine versions. Defaults to false. - // +kubebuilder:validation:Optional - AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` +// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster. +// +kubebuilder:validation:Optional +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` + +// Enable to allow major engine version upgrades when changing engine versions. Defaults to false. +// +kubebuilder:validation:Optional +AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` - // Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` +// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created. We recommend specifying 3 AZs or using the if necessary. A maximum of 3 AZs can be configured. - // +kubebuilder:validation:Optional - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` +// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created. We recommend specifying 3 AZs or using the if necessary. A maximum of 3 AZs can be configured. +// +kubebuilder:validation:Optional +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // Target backtrack window, in seconds. Only available for aurora and aurora-mysql engines currently. To disable backtracking, set this value to 0. Defaults to 0. Must be between 0 and 259200 (72 hours) - // +kubebuilder:validation:Optional - BacktrackWindow *float64 `json:"backtrackWindow,omitempty" tf:"backtrack_window,omitempty"` +// Target backtrack window, in seconds. Only available for aurora and aurora-mysql engines currently. To disable backtracking, set this value to 0. Defaults to 0. Must be between 0 and 259200 (72 hours) +// +kubebuilder:validation:Optional +BacktrackWindow *float64 `json:"backtrackWindow,omitempty" tf:"backtrack_window,omitempty"` - // Days to retain backups for. Default 1 - // +kubebuilder:validation:Optional - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// Days to retain backups for. Default 1 +// +kubebuilder:validation:Optional +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // – List of RDS Instances that are a part of this cluster - // +kubebuilder:validation:Optional - ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` +// – List of RDS Instances that are a part of this cluster +// +kubebuilder:validation:Optional +ClusterMembers []*string `json:"clusterMembers,omitempty" tf:"cluster_members,omitempty"` - // – Copy all Cluster tags to snapshots. Default is false. - // +kubebuilder:validation:Optional - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// – Copy all Cluster tags to snapshots. Default is false. +// +kubebuilder:validation:Optional +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // Compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). - // +kubebuilder:validation:Optional - DBClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty" tf:"db_cluster_instance_class,omitempty"` +// Compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). +// +kubebuilder:validation:Optional +DBClusterInstanceClass *string `json:"dbClusterInstanceClass,omitempty" tf:"db_cluster_instance_class,omitempty"` - // +kubebuilder:validation:Optional - DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` +// +kubebuilder:validation:Optional +DBClusterParameterGroupName *string `json:"dbClusterParameterGroupName,omitempty" tf:"db_cluster_parameter_group_name,omitempty"` - // Instance parameter group to associate with all instances of the DB cluster. The db_instance_parameter_group_name parameter is only valid in combination with the allow_major_version_upgrade parameter. - // +kubebuilder:validation:Optional - DBInstanceParameterGroupName *string `json:"dbInstanceParameterGroupName,omitempty" tf:"db_instance_parameter_group_name,omitempty"` +// Instance parameter group to associate with all instances of the DB cluster. The db_instance_parameter_group_name parameter is only valid in combination with the allow_major_version_upgrade parameter. +// +kubebuilder:validation:Optional +DBInstanceParameterGroupName *string `json:"dbInstanceParameterGroupName,omitempty" tf:"db_instance_parameter_group_name,omitempty"` - // DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster. - // +crossplane:generate:reference:type=SubnetGroup - // +kubebuilder:validation:Optional - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster. +// +crossplane:generate:reference:type=SubnetGroup +// +kubebuilder:validation:Optional +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // Reference to a SubnetGroup to populate dbSubnetGroupName. - // +kubebuilder:validation:Optional - DBSubnetGroupNameRef *v1.Reference `json:"dbSubnetGroupNameRef,omitempty" tf:"-"` +// Reference to a SubnetGroup to populate dbSubnetGroupName. +// +kubebuilder:validation:Optional +DBSubnetGroupNameRef *v1.Reference `json:"dbSubnetGroupNameRef,omitempty" tf:"-"` - // Selector for a SubnetGroup to populate dbSubnetGroupName. - // +kubebuilder:validation:Optional - DBSubnetGroupNameSelector *v1.Selector `json:"dbSubnetGroupNameSelector,omitempty" tf:"-"` +// Selector for a SubnetGroup to populate dbSubnetGroupName. +// +kubebuilder:validation:Optional +DBSubnetGroupNameSelector *v1.Selector `json:"dbSubnetGroupNameSelector,omitempty" tf:"-"` - // Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints - // +kubebuilder:validation:Optional - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` +// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints +// +kubebuilder:validation:Optional +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - // +kubebuilder:validation:Optional - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +// +kubebuilder:validation:Optional +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an aws_rds_global_cluster's primary cluster. See the Aurora Userguide documentation for more information. - // +kubebuilder:validation:Optional - EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty" tf:"enable_global_write_forwarding,omitempty"` +// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an aws_rds_global_cluster's primary cluster. See the Aurora Userguide documentation for more information. +// +kubebuilder:validation:Optional +EnableGlobalWriteForwarding *bool `json:"enableGlobalWriteForwarding,omitempty" tf:"enable_global_write_forwarding,omitempty"` - // Enable HTTP endpoint (data API). Only valid when engine_mode is set to serverless. - // +kubebuilder:validation:Optional - EnableHTTPEndpoint *bool `json:"enableHttpEndpoint,omitempty" tf:"enable_http_endpoint,omitempty"` +// Enable HTTP endpoint (data API). Only valid when engine_mode is set to serverless. +// +kubebuilder:validation:Optional +EnableHTTPEndpoint *bool `json:"enableHttpEndpoint,omitempty" tf:"enable_http_endpoint,omitempty"` - // Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, slowquery, postgresql (PostgreSQL). - // +kubebuilder:validation:Optional - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, slowquery, postgresql (PostgreSQL). +// +kubebuilder:validation:Optional +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // Name of the database engine to be used for this DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. (Note that mysql and postgres are Multi-AZ RDS clusters). - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine to be used for this DB cluster. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. (Note that mysql and postgres are Multi-AZ RDS clusters). +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, provisioned, serverless. Defaults to: provisioned. See the RDS User Guide for limitations when using serverless. - // +kubebuilder:validation:Optional - EngineMode *string `json:"engineMode,omitempty" tf:"engine_mode,omitempty"` +// Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), multimaster, parallelquery, provisioned, serverless. Defaults to: provisioned. See the RDS User Guide for limitations when using serverless. +// +kubebuilder:validation:Optional +EngineMode *string `json:"engineMode,omitempty" tf:"engine_mode,omitempty"` - // Database engine version. Updating this argument results in an outage. See the Aurora MySQL and Aurora Postgres documentation for your configured engine to determine this value, or by running aws rds describe-db-engine-versions. For example with Aurora MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute engine_version_actual, , see Attributes Reference below. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Database engine version. Updating this argument results in an outage. See the Aurora MySQL and Aurora Postgres documentation for your configured engine to determine this value, or by running aws rds describe-db-engine-versions. For example with Aurora MySQL 2, a potential value for this argument is 5.7.mysql_aurora.2.03.2. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute engine_version_actual, , see Attributes Reference below. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. - // +kubebuilder:validation:Optional - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made. +// +kubebuilder:validation:Optional +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // Global cluster identifier specified on aws_rds_global_cluster. - // +kubebuilder:validation:Optional - GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` +// Global cluster identifier specified on aws_rds_global_cluster. +// +kubebuilder:validation:Optional +GlobalClusterIdentifier *string `json:"globalClusterIdentifier,omitempty" tf:"global_cluster_identifier,omitempty"` - // Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see AWS Documentation for availability and limitations. - // +kubebuilder:validation:Optional - IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` +// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see AWS Documentation for availability and limitations. +// +kubebuilder:validation:Optional +IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` - // Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster. - // +kubebuilder:validation:Optional - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster. +// +kubebuilder:validation:Optional +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided. - // +kubebuilder:validation:Optional - ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` - - // Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the RDS Naming Constraints. Cannot be set if manage_master_user_password is set to true. - // +kubebuilder:validation:Optional - MasterPasswordSecretRef *v1.SecretKeySelector `json:"masterPasswordSecretRef,omitempty" tf:"-"` - - // Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("key_id",true) - // +kubebuilder:validation:Optional - MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` - - // Reference to a Key in kms to populate masterUserSecretKmsKeyId. - // +kubebuilder:validation:Optional - MasterUserSecretKMSKeyIDRef *v1.Reference `json:"masterUserSecretKmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate masterUserSecretKmsKeyId. - // +kubebuilder:validation:Optional - MasterUserSecretKMSKeyIDSelector *v1.Selector `json:"masterUserSecretKmsKeyIdSelector,omitempty" tf:"-"` - - // Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place updates and cannot be changed during a restore from snapshot. - // +kubebuilder:validation:Optional - MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` - - // Network type of the cluster. Valid values: IPV4, DUAL. - // +kubebuilder:validation:Optional - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - - // Port on which the DB accepts connections - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 - // +kubebuilder:validation:Optional - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - - // Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 - // +kubebuilder:validation:Optional - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. - // +kubebuilder:validation:Optional - ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty" tf:"replication_source_identifier,omitempty"` - - // Nested attribute for point in time restore. More details below. - // +kubebuilder:validation:Optional - RestoreToPointInTime []ClusterRestoreToPointInTimeParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` - - // Port on which the DB accepts connections - // +kubebuilder:validation:Optional - S3Import []ClusterS3ImportParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` - - // Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below. - // +kubebuilder:validation:Optional - ScalingConfiguration []ScalingConfigurationParameters `json:"scalingConfiguration,omitempty" tf:"scaling_configuration,omitempty"` - - // Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below. - // +kubebuilder:validation:Optional - Serverlessv2ScalingConfiguration []Serverlessv2ScalingConfigurationParameters `json:"serverlessv2ScalingConfiguration,omitempty" tf:"serverlessv2_scaling_configuration,omitempty"` - - // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. - // +kubebuilder:validation:Optional - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - - // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Conflicts with global_cluster_identifier. Clusters cannot be restored from snapshot and joined to an existing global cluster in a single operation. See the AWS documentation or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot. - // +kubebuilder:validation:Optional - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - - // The source region for an encrypted replica DB cluster. - // +kubebuilder:validation:Optional - SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` - - // Specifies whether the DB cluster is encrypted. The default is false for provisioned engine_mode and true for serverless engine_mode. When restoring an unencrypted snapshot_identifier, the kms_key_id argument must be provided to encrypt the restored cluster. - // +kubebuilder:validation:Optional - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - - // (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). - // +kubebuilder:validation:Optional - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` - - // List of VPC security groups to associate with the Cluster - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector - // +kubebuilder:validation:Optional - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` +// ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided. +// +kubebuilder:validation:Optional +ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` + +// Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the RDS Naming Constraints. Cannot be set if manage_master_user_password is set to true. +// +kubebuilder:validation:Optional +MasterPasswordSecretRef *v1.SecretKeySelector `json:"masterPasswordSecretRef,omitempty" tf:"-"` + +// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("key_id",true) +// +kubebuilder:validation:Optional +MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` + +// Reference to a Key in kms to populate masterUserSecretKmsKeyId. +// +kubebuilder:validation:Optional +MasterUserSecretKMSKeyIDRef *v1.Reference `json:"masterUserSecretKmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate masterUserSecretKmsKeyId. +// +kubebuilder:validation:Optional +MasterUserSecretKMSKeyIDSelector *v1.Selector `json:"masterUserSecretKmsKeyIdSelector,omitempty" tf:"-"` + +// Username for the master DB user. Please refer to the RDS Naming Constraints. This argument does not support in-place updates and cannot be changed during a restore from snapshot. +// +kubebuilder:validation:Optional +MasterUsername *string `json:"masterUsername,omitempty" tf:"master_username,omitempty"` + +// Network type of the cluster. Valid values: IPV4, DUAL. +// +kubebuilder:validation:Optional +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + +// Port on which the DB accepts connections +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00 +// +kubebuilder:validation:Optional +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` + +// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 +// +kubebuilder:validation:Optional +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. +// +kubebuilder:validation:Optional +ReplicationSourceIdentifier *string `json:"replicationSourceIdentifier,omitempty" tf:"replication_source_identifier,omitempty"` + +// Nested attribute for point in time restore. More details below. +// +kubebuilder:validation:Optional +RestoreToPointInTime []ClusterRestoreToPointInTimeParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` + +// Port on which the DB accepts connections +// +kubebuilder:validation:Optional +S3Import []ClusterS3ImportParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` + +// Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below. +// +kubebuilder:validation:Optional +ScalingConfiguration []ScalingConfigurationParameters `json:"scalingConfiguration,omitempty" tf:"scaling_configuration,omitempty"` + +// Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below. +// +kubebuilder:validation:Optional +Serverlessv2ScalingConfiguration []Serverlessv2ScalingConfigurationParameters `json:"serverlessv2ScalingConfiguration,omitempty" tf:"serverlessv2_scaling_configuration,omitempty"` + +// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from final_snapshot_identifier. Default is false. +// +kubebuilder:validation:Optional +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` + +// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Conflicts with global_cluster_identifier. Clusters cannot be restored from snapshot and joined to an existing global cluster in a single operation. See the AWS documentation or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot. +// +kubebuilder:validation:Optional +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` + +// The source region for an encrypted replica DB cluster. +// +kubebuilder:validation:Optional +SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` + +// Specifies whether the DB cluster is encrypted. The default is false for provisioned engine_mode and true for serverless engine_mode. When restoring an unencrypted snapshot_identifier, the kms_key_id argument must be provided to encrypt the restored cluster. +// +kubebuilder:validation:Optional +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` + +// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, storage_type modifications can be done in-place. For Multi-AZ DB Clusters, the iops argument must also be set. Valid values are: "", aurora-iopt1 (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). Default: "" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters). +// +kubebuilder:validation:Optional +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` + +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` + +// List of VPC security groups to associate with the Cluster +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector +// +kubebuilder:validation:Optional +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` } + type ClusterRestoreToPointInTimeInitParameters struct { - // Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time. - RestoreToTime *string `json:"restoreToTime,omitempty" tf:"restore_to_time,omitempty"` - // Type of restore to be performed. - // Valid options are full-copy (default) and copy-on-write. - RestoreType *string `json:"restoreType,omitempty" tf:"restore_type,omitempty"` +// Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time. +RestoreToTime *string `json:"restoreToTime,omitempty" tf:"restore_to_time,omitempty"` + +// Type of restore to be performed. +// Valid options are full-copy (default) and copy-on-write. +RestoreType *string `json:"restoreType,omitempty" tf:"restore_type,omitempty"` - // Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time. - UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` +// Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time. +UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` } + type ClusterRestoreToPointInTimeObservation struct { - // Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time. - RestoreToTime *string `json:"restoreToTime,omitempty" tf:"restore_to_time,omitempty"` - // Type of restore to be performed. - // Valid options are full-copy (default) and copy-on-write. - RestoreType *string `json:"restoreType,omitempty" tf:"restore_type,omitempty"` +// Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time. +RestoreToTime *string `json:"restoreToTime,omitempty" tf:"restore_to_time,omitempty"` - // Identifier of the source database cluster from which to restore. - SourceClusterIdentifier *string `json:"sourceClusterIdentifier,omitempty" tf:"source_cluster_identifier,omitempty"` +// Type of restore to be performed. +// Valid options are full-copy (default) and copy-on-write. +RestoreType *string `json:"restoreType,omitempty" tf:"restore_type,omitempty"` - // Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time. - UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` +// Identifier of the source database cluster from which to restore. +SourceClusterIdentifier *string `json:"sourceClusterIdentifier,omitempty" tf:"source_cluster_identifier,omitempty"` + +// Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time. +UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` } + type ClusterRestoreToPointInTimeParameters struct { - // Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time. - // +kubebuilder:validation:Optional - RestoreToTime *string `json:"restoreToTime,omitempty" tf:"restore_to_time,omitempty"` - // Type of restore to be performed. - // Valid options are full-copy (default) and copy-on-write. - // +kubebuilder:validation:Optional - RestoreType *string `json:"restoreType,omitempty" tf:"restore_type,omitempty"` +// Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time. +// +kubebuilder:validation:Optional +RestoreToTime *string `json:"restoreToTime,omitempty" tf:"restore_to_time,omitempty"` - // Identifier of the source database cluster from which to restore. - // +crossplane:generate:reference:type=Cluster - // +kubebuilder:validation:Optional - SourceClusterIdentifier *string `json:"sourceClusterIdentifier,omitempty" tf:"source_cluster_identifier,omitempty"` +// Type of restore to be performed. +// Valid options are full-copy (default) and copy-on-write. +// +kubebuilder:validation:Optional +RestoreType *string `json:"restoreType,omitempty" tf:"restore_type,omitempty"` - // Reference to a Cluster to populate sourceClusterIdentifier. - // +kubebuilder:validation:Optional - SourceClusterIdentifierRef *v1.Reference `json:"sourceClusterIdentifierRef,omitempty" tf:"-"` +// Identifier of the source database cluster from which to restore. +// +crossplane:generate:reference:type=Cluster +// +kubebuilder:validation:Optional +SourceClusterIdentifier *string `json:"sourceClusterIdentifier,omitempty" tf:"source_cluster_identifier,omitempty"` - // Selector for a Cluster to populate sourceClusterIdentifier. - // +kubebuilder:validation:Optional - SourceClusterIdentifierSelector *v1.Selector `json:"sourceClusterIdentifierSelector,omitempty" tf:"-"` +// Reference to a Cluster to populate sourceClusterIdentifier. +// +kubebuilder:validation:Optional +SourceClusterIdentifierRef *v1.Reference `json:"sourceClusterIdentifierRef,omitempty" tf:"-"` - // Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time. - // +kubebuilder:validation:Optional - UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` +// Selector for a Cluster to populate sourceClusterIdentifier. +// +kubebuilder:validation:Optional +SourceClusterIdentifierSelector *v1.Selector `json:"sourceClusterIdentifierSelector,omitempty" tf:"-"` + +// Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time. +// +kubebuilder:validation:Optional +UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` } + type ClusterS3ImportInitParameters struct { - // Bucket name where your backup is stored - BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` - // Can be blank, but is the path to your backup - BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` +// Bucket name where your backup is stored +BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` + +// Can be blank, but is the path to your backup +BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` - // Role applied to load the data. - IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` +// Role applied to load the data. +IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` - // Source engine for the backup - SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` +// Source engine for the backup +SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` - // Version of the source engine used to make the backup - SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` +// Version of the source engine used to make the backup +SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` } + type ClusterS3ImportObservation struct { - // Bucket name where your backup is stored - BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` - // Can be blank, but is the path to your backup - BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` +// Bucket name where your backup is stored +BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` + +// Can be blank, but is the path to your backup +BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` - // Role applied to load the data. - IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` +// Role applied to load the data. +IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` - // Source engine for the backup - SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` +// Source engine for the backup +SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` - // Version of the source engine used to make the backup - SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` +// Version of the source engine used to make the backup +SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` } + type ClusterS3ImportParameters struct { - // Bucket name where your backup is stored - // +kubebuilder:validation:Optional - BucketName *string `json:"bucketName" tf:"bucket_name,omitempty"` - // Can be blank, but is the path to your backup - // +kubebuilder:validation:Optional - BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` +// Bucket name where your backup is stored +// +kubebuilder:validation:Optional +BucketName *string `json:"bucketName" tf:"bucket_name,omitempty"` + +// Can be blank, but is the path to your backup +// +kubebuilder:validation:Optional +BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` - // Role applied to load the data. - // +kubebuilder:validation:Optional - IngestionRole *string `json:"ingestionRole" tf:"ingestion_role,omitempty"` +// Role applied to load the data. +// +kubebuilder:validation:Optional +IngestionRole *string `json:"ingestionRole" tf:"ingestion_role,omitempty"` - // Source engine for the backup - // +kubebuilder:validation:Optional - SourceEngine *string `json:"sourceEngine" tf:"source_engine,omitempty"` +// Source engine for the backup +// +kubebuilder:validation:Optional +SourceEngine *string `json:"sourceEngine" tf:"source_engine,omitempty"` - // Version of the source engine used to make the backup - // +kubebuilder:validation:Optional - SourceEngineVersion *string `json:"sourceEngineVersion" tf:"source_engine_version,omitempty"` +// Version of the source engine used to make the backup +// +kubebuilder:validation:Optional +SourceEngineVersion *string `json:"sourceEngineVersion" tf:"source_engine_version,omitempty"` } + type ScalingConfigurationInitParameters struct { - // Whether to enable automatic pause. A DB cluster can be paused only when it's idle (it has no connections). If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it. Defaults to true. - AutoPause *bool `json:"autoPause,omitempty" tf:"auto_pause,omitempty"` - // Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. - MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` +// Whether to enable automatic pause. A DB cluster can be paused only when it's idle (it has no connections). If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it. Defaults to true. +AutoPause *bool `json:"autoPause,omitempty" tf:"auto_pause,omitempty"` - // Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. - MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` +// Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. +MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` - // Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300. - SecondsUntilAutoPause *float64 `json:"secondsUntilAutoPause,omitempty" tf:"seconds_until_auto_pause,omitempty"` +// Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. +MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` - // Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation. - TimeoutAction *string `json:"timeoutAction,omitempty" tf:"timeout_action,omitempty"` +// Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300. +SecondsUntilAutoPause *float64 `json:"secondsUntilAutoPause,omitempty" tf:"seconds_until_auto_pause,omitempty"` + +// Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation. +TimeoutAction *string `json:"timeoutAction,omitempty" tf:"timeout_action,omitempty"` } + type ScalingConfigurationObservation struct { - // Whether to enable automatic pause. A DB cluster can be paused only when it's idle (it has no connections). If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it. Defaults to true. - AutoPause *bool `json:"autoPause,omitempty" tf:"auto_pause,omitempty"` - // Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. - MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` +// Whether to enable automatic pause. A DB cluster can be paused only when it's idle (it has no connections). If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it. Defaults to true. +AutoPause *bool `json:"autoPause,omitempty" tf:"auto_pause,omitempty"` - // Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. - MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` +// Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. +MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` - // Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300. - SecondsUntilAutoPause *float64 `json:"secondsUntilAutoPause,omitempty" tf:"seconds_until_auto_pause,omitempty"` +// Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. +MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` - // Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation. - TimeoutAction *string `json:"timeoutAction,omitempty" tf:"timeout_action,omitempty"` +// Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300. +SecondsUntilAutoPause *float64 `json:"secondsUntilAutoPause,omitempty" tf:"seconds_until_auto_pause,omitempty"` + +// Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation. +TimeoutAction *string `json:"timeoutAction,omitempty" tf:"timeout_action,omitempty"` } + type ScalingConfigurationParameters struct { - // Whether to enable automatic pause. A DB cluster can be paused only when it's idle (it has no connections). If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it. Defaults to true. - // +kubebuilder:validation:Optional - AutoPause *bool `json:"autoPause,omitempty" tf:"auto_pause,omitempty"` - // Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. - // +kubebuilder:validation:Optional - MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` +// Whether to enable automatic pause. A DB cluster can be paused only when it's idle (it has no connections). If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it. Defaults to true. +// +kubebuilder:validation:Optional +AutoPause *bool `json:"autoPause,omitempty" tf:"auto_pause,omitempty"` + +// Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. +// +kubebuilder:validation:Optional +MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` - // Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. - // +kubebuilder:validation:Optional - MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` +// Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. +// +kubebuilder:validation:Optional +MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` - // Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300. - // +kubebuilder:validation:Optional - SecondsUntilAutoPause *float64 `json:"secondsUntilAutoPause,omitempty" tf:"seconds_until_auto_pause,omitempty"` +// Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300. +// +kubebuilder:validation:Optional +SecondsUntilAutoPause *float64 `json:"secondsUntilAutoPause,omitempty" tf:"seconds_until_auto_pause,omitempty"` - // Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation. - // +kubebuilder:validation:Optional - TimeoutAction *string `json:"timeoutAction,omitempty" tf:"timeout_action,omitempty"` +// Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation. +// +kubebuilder:validation:Optional +TimeoutAction *string `json:"timeoutAction,omitempty" tf:"timeout_action,omitempty"` } + type Serverlessv2ScalingConfigurationInitParameters struct { - // Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. - MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` - // Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. - MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` +// Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. +MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` + +// Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. +MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` } + type Serverlessv2ScalingConfigurationObservation struct { - // Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. - MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` - // Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. - MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` +// Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. +MaxCapacity *float64 `json:"maxCapacity,omitempty" tf:"max_capacity,omitempty"` + +// Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. +MinCapacity *float64 `json:"minCapacity,omitempty" tf:"min_capacity,omitempty"` } + type Serverlessv2ScalingConfigurationParameters struct { - // Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. - // +kubebuilder:validation:Optional - MaxCapacity *float64 `json:"maxCapacity" tf:"max_capacity,omitempty"` - // Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. - // +kubebuilder:validation:Optional - MinCapacity *float64 `json:"minCapacity" tf:"min_capacity,omitempty"` +// Maximum capacity for an Aurora DB cluster in serverless DB engine mode. The maximum capacity must be greater than or equal to the minimum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 16. +// +kubebuilder:validation:Optional +MaxCapacity *float64 `json:"maxCapacity" tf:"max_capacity,omitempty"` + +// Minimum capacity for an Aurora DB cluster in serverless DB engine mode. The minimum capacity must be lesser than or equal to the maximum capacity. Valid Aurora MySQL capacity values are 1, 2, 4, 8, 16, 32, 64, 128, 256. Valid Aurora PostgreSQL capacity values are (2, 4, 8, 16, 32, 64, 192, and 384). Defaults to 1. +// +kubebuilder:validation:Optional +MinCapacity *float64 `json:"minCapacity" tf:"min_capacity,omitempty"` } // ClusterSpec defines the desired state of Cluster type ClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameters `json:"forProvider"` + ForProvider ClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -774,13 +813,13 @@ type ClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInitParameters `json:"initProvider,omitempty"` } // ClusterStatus defines the observed state of Cluster. type ClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterObservation `json:"atProvider,omitempty"` + AtProvider ClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -795,10 +834,10 @@ type ClusterStatus struct { type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSpec `json:"spec"` - Status ClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSpec `json:"spec"` + Status ClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_clusteractivitystream_types.go b/apis/rds/v1alpha1/zz_clusteractivitystream_types.go index 289ce4e..f621cea 100755 --- a/apis/rds/v1alpha1/zz_clusteractivitystream_types.go +++ b/apis/rds/v1alpha1/zz_clusteractivitystream_types.go @@ -15,85 +15,94 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterActivityStreamInitParameters struct { - // Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults false. - EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty" tf:"engine_native_audit_fields_included,omitempty"` - // Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: sync, async. - Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` +// Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults false. +EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty" tf:"engine_native_audit_fields_included,omitempty"` + +// Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: sync, async. +Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` } + type ClusterActivityStreamObservation struct { - // Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults false. - EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty" tf:"engine_native_audit_fields_included,omitempty"` - // The Amazon Resource Name (ARN) of the DB cluster. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults false. +EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty" tf:"engine_native_audit_fields_included,omitempty"` + +// The Amazon Resource Name (ARN) of the DB cluster. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The AWS KMS key identifier for encrypting messages in the database activity stream. The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The AWS KMS key identifier for encrypting messages in the database activity stream. The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // The name of the Amazon Kinesis data stream to be used for the database activity stream. - KinesisStreamName *string `json:"kinesisStreamName,omitempty" tf:"kinesis_stream_name,omitempty"` +// The name of the Amazon Kinesis data stream to be used for the database activity stream. +KinesisStreamName *string `json:"kinesisStreamName,omitempty" tf:"kinesis_stream_name,omitempty"` - // Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: sync, async. - Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` +// Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: sync, async. +Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` - // The Amazon Resource Name (ARN) of the DB cluster. - ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"` +// The Amazon Resource Name (ARN) of the DB cluster. +ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"` } + type ClusterActivityStreamParameters struct { - // Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults false. - // +kubebuilder:validation:Optional - EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty" tf:"engine_native_audit_fields_included,omitempty"` - - // The AWS KMS key identifier for encrypting messages in the database activity stream. The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: sync, async. - // +kubebuilder:validation:Optional - Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // The Amazon Resource Name (ARN) of the DB cluster. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"` - - // Reference to a Cluster in rds to populate resourceArn. - // +kubebuilder:validation:Optional - ResourceArnRef *v1.Reference `json:"resourceArnRef,omitempty" tf:"-"` - - // Selector for a Cluster in rds to populate resourceArn. - // +kubebuilder:validation:Optional - ResourceArnSelector *v1.Selector `json:"resourceArnSelector,omitempty" tf:"-"` + +// Specifies whether the database activity stream includes engine-native audit fields. This option only applies to an Oracle DB instance. By default, no engine-native audit fields are included. Defaults false. +// +kubebuilder:validation:Optional +EngineNativeAuditFieldsIncluded *bool `json:"engineNativeAuditFieldsIncluded,omitempty" tf:"engine_native_audit_fields_included,omitempty"` + +// The AWS KMS key identifier for encrypting messages in the database activity stream. The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// Specifies the mode of the database activity stream. Database events such as a change or access generate an activity stream event. The database session can handle these events either synchronously or asynchronously. One of: sync, async. +// +kubebuilder:validation:Optional +Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// The Amazon Resource Name (ARN) of the DB cluster. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +ResourceArn *string `json:"resourceArn,omitempty" tf:"resource_arn,omitempty"` + +// Reference to a Cluster in rds to populate resourceArn. +// +kubebuilder:validation:Optional +ResourceArnRef *v1.Reference `json:"resourceArnRef,omitempty" tf:"-"` + +// Selector for a Cluster in rds to populate resourceArn. +// +kubebuilder:validation:Optional +ResourceArnSelector *v1.Selector `json:"resourceArnSelector,omitempty" tf:"-"` } // ClusterActivityStreamSpec defines the desired state of ClusterActivityStream type ClusterActivityStreamSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterActivityStreamParameters `json:"forProvider"` + ForProvider ClusterActivityStreamParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -104,13 +113,13 @@ type ClusterActivityStreamSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterActivityStreamInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterActivityStreamInitParameters `json:"initProvider,omitempty"` } // ClusterActivityStreamStatus defines the observed state of ClusterActivityStream. type ClusterActivityStreamStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterActivityStreamObservation `json:"atProvider,omitempty"` + AtProvider ClusterActivityStreamObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -125,10 +134,10 @@ type ClusterActivityStreamStatus struct { type ClusterActivityStream struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.mode) || (has(self.initProvider) && has(self.initProvider.mode))",message="spec.forProvider.mode is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterActivityStreamSpec `json:"spec"` - Status ClusterActivityStreamStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.mode) || (has(self.initProvider) && has(self.initProvider.mode))",message="spec.forProvider.mode is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterActivityStreamSpec `json:"spec"` + Status ClusterActivityStreamStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_clusterendpoint_types.go b/apis/rds/v1alpha1/zz_clusterendpoint_types.go index eaf87ed..e54a771 100755 --- a/apis/rds/v1alpha1/zz_clusterendpoint_types.go +++ b/apis/rds/v1alpha1/zz_clusterendpoint_types.go @@ -15,102 +15,111 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterEndpointInitParameters struct { - // The type of the endpoint. One of: READER , ANY . - CustomEndpointType *string `json:"customEndpointType,omitempty" tf:"custom_endpoint_type,omitempty"` - // List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty. Conflicts with static_members. - ExcludedMembers []*string `json:"excludedMembers,omitempty" tf:"excluded_members,omitempty"` +// The type of the endpoint. One of: READER , ANY . +CustomEndpointType *string `json:"customEndpointType,omitempty" tf:"custom_endpoint_type,omitempty"` + +// List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty. Conflicts with static_members. +ExcludedMembers []*string `json:"excludedMembers,omitempty" tf:"excluded_members,omitempty"` - // List of DB instance identifiers that are part of the custom endpoint group. Conflicts with excluded_members. - StaticMembers []*string `json:"staticMembers,omitempty" tf:"static_members,omitempty"` +// List of DB instance identifiers that are part of the custom endpoint group. Conflicts with excluded_members. +StaticMembers []*string `json:"staticMembers,omitempty" tf:"static_members,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterEndpointObservation struct { - // Amazon Resource Name (ARN) of cluster - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The cluster identifier. - ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` +// Amazon Resource Name (ARN) of cluster +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// The cluster identifier. +ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` - // The type of the endpoint. One of: READER , ANY . - CustomEndpointType *string `json:"customEndpointType,omitempty" tf:"custom_endpoint_type,omitempty"` +// The type of the endpoint. One of: READER , ANY . +CustomEndpointType *string `json:"customEndpointType,omitempty" tf:"custom_endpoint_type,omitempty"` - // A custom endpoint for the Aurora cluster - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// A custom endpoint for the Aurora cluster +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty. Conflicts with static_members. - ExcludedMembers []*string `json:"excludedMembers,omitempty" tf:"excluded_members,omitempty"` +// List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty. Conflicts with static_members. +ExcludedMembers []*string `json:"excludedMembers,omitempty" tf:"excluded_members,omitempty"` - // The RDS Cluster Endpoint Identifier - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The RDS Cluster Endpoint Identifier +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // List of DB instance identifiers that are part of the custom endpoint group. Conflicts with excluded_members. - StaticMembers []*string `json:"staticMembers,omitempty" tf:"static_members,omitempty"` +// List of DB instance identifiers that are part of the custom endpoint group. Conflicts with excluded_members. +StaticMembers []*string `json:"staticMembers,omitempty" tf:"static_members,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterEndpointParameters struct { - // The cluster identifier. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` - // Reference to a Cluster in rds to populate clusterIdentifier. - // +kubebuilder:validation:Optional - ClusterIdentifierRef *v1.Reference `json:"clusterIdentifierRef,omitempty" tf:"-"` +// The cluster identifier. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` + +// Reference to a Cluster in rds to populate clusterIdentifier. +// +kubebuilder:validation:Optional +ClusterIdentifierRef *v1.Reference `json:"clusterIdentifierRef,omitempty" tf:"-"` - // Selector for a Cluster in rds to populate clusterIdentifier. - // +kubebuilder:validation:Optional - ClusterIdentifierSelector *v1.Selector `json:"clusterIdentifierSelector,omitempty" tf:"-"` +// Selector for a Cluster in rds to populate clusterIdentifier. +// +kubebuilder:validation:Optional +ClusterIdentifierSelector *v1.Selector `json:"clusterIdentifierSelector,omitempty" tf:"-"` - // The type of the endpoint. One of: READER , ANY . - // +kubebuilder:validation:Optional - CustomEndpointType *string `json:"customEndpointType,omitempty" tf:"custom_endpoint_type,omitempty"` +// The type of the endpoint. One of: READER , ANY . +// +kubebuilder:validation:Optional +CustomEndpointType *string `json:"customEndpointType,omitempty" tf:"custom_endpoint_type,omitempty"` - // List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty. Conflicts with static_members. - // +kubebuilder:validation:Optional - ExcludedMembers []*string `json:"excludedMembers,omitempty" tf:"excluded_members,omitempty"` +// List of DB instance identifiers that aren't part of the custom endpoint group. All other eligible instances are reachable through the custom endpoint. Only relevant if the list of static members is empty. Conflicts with static_members. +// +kubebuilder:validation:Optional +ExcludedMembers []*string `json:"excludedMembers,omitempty" tf:"excluded_members,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // List of DB instance identifiers that are part of the custom endpoint group. Conflicts with excluded_members. - // +kubebuilder:validation:Optional - StaticMembers []*string `json:"staticMembers,omitempty" tf:"static_members,omitempty"` +// List of DB instance identifiers that are part of the custom endpoint group. Conflicts with excluded_members. +// +kubebuilder:validation:Optional +StaticMembers []*string `json:"staticMembers,omitempty" tf:"static_members,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // ClusterEndpointSpec defines the desired state of ClusterEndpoint type ClusterEndpointSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterEndpointParameters `json:"forProvider"` + ForProvider ClusterEndpointParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -121,13 +130,13 @@ type ClusterEndpointSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterEndpointInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterEndpointInitParameters `json:"initProvider,omitempty"` } // ClusterEndpointStatus defines the observed state of ClusterEndpoint. type ClusterEndpointStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterEndpointObservation `json:"atProvider,omitempty"` + AtProvider ClusterEndpointObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -142,10 +151,10 @@ type ClusterEndpointStatus struct { type ClusterEndpoint struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.customEndpointType) || (has(self.initProvider) && has(self.initProvider.customEndpointType))",message="spec.forProvider.customEndpointType is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterEndpointSpec `json:"spec"` - Status ClusterEndpointStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.customEndpointType) || (has(self.initProvider) && has(self.initProvider.customEndpointType))",message="spec.forProvider.customEndpointType is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterEndpointSpec `json:"spec"` + Status ClusterEndpointStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_clusterinstance_types.go b/apis/rds/v1alpha1/zz_clusterinstance_types.go index c97f5f3..af62ce1 100755 --- a/apis/rds/v1alpha1/zz_clusterinstance_types.go +++ b/apis/rds/v1alpha1/zz_clusterinstance_types.go @@ -15,302 +15,311 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterInstanceInitParameters struct { - // Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default isfalse. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default isfalse. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // EC2 Availability Zone that the DB instance is created in. See docs about the details. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // Identifier of the CA certificate for the DB instance. - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` +// EC2 Availability Zone that the DB instance is created in. See docs about the details. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // defined tags from the DB instance to snapshots of the DB instance. Default false. - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// Identifier of the CA certificate for the DB instance. +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - // Name of the DB parameter group to associate with this instance. - DBParameterGroupName *string `json:"dbParameterGroupName,omitempty" tf:"db_parameter_group_name,omitempty"` +// defined tags from the DB instance to snapshots of the DB instance. Default false. +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // Name of the database engine to be used for the RDS instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the DB parameter group to associate with this instance. +DBParameterGroupName *string `json:"dbParameterGroupName,omitempty" tf:"db_parameter_group_name,omitempty"` - // Database engine version. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the database engine to be used for the RDS instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Instance class to use. For details on CPU and memory, see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. Please see AWS Documentation for currently available instance classes and complete details. - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` +// Database engine version. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. - MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` +// Instance class to use. For details on CPU and memory, see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. Please see AWS Documentation for currently available instance classes and complete details. +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - // Specifies whether Performance Insights is enabled or not. - PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` +// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. +MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` - // Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. - PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` +// Specifies whether Performance Insights is enabled or not. +PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` - // Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". NOTE: If preferred_backup_window is set at the cluster level, this argument must be omitted. - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. +PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` - // Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". NOTE: If preferred_backup_window is set at the cluster level, this argument must be omitted. +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer. - PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` +// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // Bool to control if instance is publicly accessible. Default false. See the documentation on Creating DB Instances for more details on controlling this property. - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` +// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer. +PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` - // Map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Bool to control if instance is publicly accessible. Default false. See the documentation on Creating DB Instances for more details on controlling this property. +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterInstanceObservation struct { - // Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default isfalse. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // Amazon Resource Name (ARN) of cluster instance - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default isfalse. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// Amazon Resource Name (ARN) of cluster instance +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // EC2 Availability Zone that the DB instance is created in. See docs about the details. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// EC2 Availability Zone that the DB instance is created in. See docs about the details. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // Identifier of the CA certificate for the DB instance. - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` +// Identifier of the CA certificate for the DB instance. +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - // Identifier of the aws_rds_cluster in which to launch this instance. - ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` +// Identifier of the aws_rds_cluster in which to launch this instance. +ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` - // defined tags from the DB instance to snapshots of the DB instance. Default false. - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// defined tags from the DB instance to snapshots of the DB instance. Default false. +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // Name of the DB parameter group to associate with this instance. - DBParameterGroupName *string `json:"dbParameterGroupName,omitempty" tf:"db_parameter_group_name,omitempty"` +// Name of the DB parameter group to associate with this instance. +DBParameterGroupName *string `json:"dbParameterGroupName,omitempty" tf:"db_parameter_group_name,omitempty"` - // DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name of the attached aws_rds_cluster. - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name of the attached aws_rds_cluster. +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // Region-unique, immutable identifier for the DB instance. - DbiResourceID *string `json:"dbiResourceId,omitempty" tf:"dbi_resource_id,omitempty"` +// Region-unique, immutable identifier for the DB instance. +DbiResourceID *string `json:"dbiResourceId,omitempty" tf:"dbi_resource_id,omitempty"` - // DNS address for this instance. May not be writable - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// DNS address for this instance. May not be writable +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // Name of the database engine to be used for the RDS instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine to be used for the RDS instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Database engine version. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Database engine version. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Database engine version - EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` +// Database engine version +EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` - // Instance identifier - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Instance identifier +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Instance class to use. For details on CPU and memory, see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. Please see AWS Documentation for currently available instance classes and complete details. - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` +// Instance class to use. For details on CPU and memory, see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. Please see AWS Documentation for currently available instance classes and complete details. +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - // ARN for the KMS encryption key if one is set to the cluster. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// ARN for the KMS encryption key if one is set to the cluster. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. - MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` +// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. +MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` - // ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the AWS Documentation what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. - MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` +// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the AWS Documentation what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. +MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` - // Network type of the DB instance. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// Network type of the DB instance. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // Specifies whether Performance Insights is enabled or not. - PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` +// Specifies whether Performance Insights is enabled or not. +PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` - // ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` +// ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - // Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. - PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` +// Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. +PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` - // Database port - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Database port +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". NOTE: If preferred_backup_window is set at the cluster level, this argument must be omitted. - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` +// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". NOTE: If preferred_backup_window is set at the cluster level, this argument must be omitted. +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - // Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` +// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer. - PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` +// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer. +PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` - // Bool to control if instance is publicly accessible. Default false. See the documentation on Creating DB Instances for more details on controlling this property. - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` +// Bool to control if instance is publicly accessible. Default false. See the documentation on Creating DB Instances for more details on controlling this property. +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - // Specifies whether the DB cluster is encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // Map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // – Boolean indicating if this instance is writable. False indicates this instance is a read replica. - Writer *bool `json:"writer,omitempty" tf:"writer,omitempty"` +// – Boolean indicating if this instance is writable. False indicates this instance is a read replica. +Writer *bool `json:"writer,omitempty" tf:"writer,omitempty"` } + type ClusterInstanceParameters struct { - // Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default isfalse. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - - // Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default true. - // +kubebuilder:validation:Optional - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - - // EC2 Availability Zone that the DB instance is created in. See docs about the details. - // +kubebuilder:validation:Optional - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - - // Identifier of the CA certificate for the DB instance. - // +kubebuilder:validation:Optional - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - - // Identifier of the aws_rds_cluster in which to launch this instance. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` - - // Reference to a Cluster in rds to populate clusterIdentifier. - // +kubebuilder:validation:Optional - ClusterIdentifierRef *v1.Reference `json:"clusterIdentifierRef,omitempty" tf:"-"` - - // Selector for a Cluster in rds to populate clusterIdentifier. - // +kubebuilder:validation:Optional - ClusterIdentifierSelector *v1.Selector `json:"clusterIdentifierSelector,omitempty" tf:"-"` - - // defined tags from the DB instance to snapshots of the DB instance. Default false. - // +kubebuilder:validation:Optional - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - - // Name of the DB parameter group to associate with this instance. - // +kubebuilder:validation:Optional - DBParameterGroupName *string `json:"dbParameterGroupName,omitempty" tf:"db_parameter_group_name,omitempty"` - - // DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name of the attached aws_rds_cluster. - // +crossplane:generate:reference:type=SubnetGroup - // +kubebuilder:validation:Optional - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - - // Reference to a SubnetGroup to populate dbSubnetGroupName. - // +kubebuilder:validation:Optional - DBSubnetGroupNameRef *v1.Reference `json:"dbSubnetGroupNameRef,omitempty" tf:"-"` - - // Selector for a SubnetGroup to populate dbSubnetGroupName. - // +kubebuilder:validation:Optional - DBSubnetGroupNameSelector *v1.Selector `json:"dbSubnetGroupNameSelector,omitempty" tf:"-"` - - // Name of the database engine to be used for the RDS instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // Database engine version. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - - // Instance class to use. For details on CPU and memory, see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. Please see AWS Documentation for currently available instance classes and complete details. - // +kubebuilder:validation:Optional - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - - // Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. - // +kubebuilder:validation:Optional - MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` - - // ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the AWS Documentation what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` - - // Reference to a Role in iam to populate monitoringRoleArn. - // +kubebuilder:validation:Optional - MonitoringRoleArnRef *v1.Reference `json:"monitoringRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate monitoringRoleArn. - // +kubebuilder:validation:Optional - MonitoringRoleArnSelector *v1.Selector `json:"monitoringRoleArnSelector,omitempty" tf:"-"` - - // Specifies whether Performance Insights is enabled or not. - // +kubebuilder:validation:Optional - PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` - - // ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - - // Reference to a Key in kms to populate performanceInsightsKmsKeyId. - // +kubebuilder:validation:Optional - PerformanceInsightsKMSKeyIDRef *v1.Reference `json:"performanceInsightsKmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate performanceInsightsKmsKeyId. - // +kubebuilder:validation:Optional - PerformanceInsightsKMSKeyIDSelector *v1.Selector `json:"performanceInsightsKmsKeyIdSelector,omitempty" tf:"-"` - - // Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. - // +kubebuilder:validation:Optional - PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` - - // Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". NOTE: If preferred_backup_window is set at the cluster level, this argument must be omitted. - // +kubebuilder:validation:Optional - PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` - - // Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". - // +kubebuilder:validation:Optional - PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` - - // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer. - // +kubebuilder:validation:Optional - PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` - - // Bool to control if instance is publicly accessible. Default false. See the documentation on Creating DB Instances for more details on controlling this property. - // +kubebuilder:validation:Optional - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default isfalse. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default true. +// +kubebuilder:validation:Optional +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` + +// EC2 Availability Zone that the DB instance is created in. See docs about the details. +// +kubebuilder:validation:Optional +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + +// Identifier of the CA certificate for the DB instance. +// +kubebuilder:validation:Optional +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` + +// Identifier of the aws_rds_cluster in which to launch this instance. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +ClusterIdentifier *string `json:"clusterIdentifier,omitempty" tf:"cluster_identifier,omitempty"` + +// Reference to a Cluster in rds to populate clusterIdentifier. +// +kubebuilder:validation:Optional +ClusterIdentifierRef *v1.Reference `json:"clusterIdentifierRef,omitempty" tf:"-"` + +// Selector for a Cluster in rds to populate clusterIdentifier. +// +kubebuilder:validation:Optional +ClusterIdentifierSelector *v1.Selector `json:"clusterIdentifierSelector,omitempty" tf:"-"` + +// defined tags from the DB instance to snapshots of the DB instance. Default false. +// +kubebuilder:validation:Optional +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` + +// Name of the DB parameter group to associate with this instance. +// +kubebuilder:validation:Optional +DBParameterGroupName *string `json:"dbParameterGroupName,omitempty" tf:"db_parameter_group_name,omitempty"` + +// DB subnet group to associate with this DB instance. NOTE: This must match the db_subnet_group_name of the attached aws_rds_cluster. +// +crossplane:generate:reference:type=SubnetGroup +// +kubebuilder:validation:Optional +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` + +// Reference to a SubnetGroup to populate dbSubnetGroupName. +// +kubebuilder:validation:Optional +DBSubnetGroupNameRef *v1.Reference `json:"dbSubnetGroupNameRef,omitempty" tf:"-"` + +// Selector for a SubnetGroup to populate dbSubnetGroupName. +// +kubebuilder:validation:Optional +DBSubnetGroupNameSelector *v1.Selector `json:"dbSubnetGroupNameSelector,omitempty" tf:"-"` + +// Name of the database engine to be used for the RDS instance. Valid Values: aurora-mysql, aurora-postgresql, mysql, postgres. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// Database engine version. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + +// Instance class to use. For details on CPU and memory, see Scaling Aurora DB Instances. Aurora uses db.* instance classes/types. Please see AWS Documentation for currently available instance classes and complete details. +// +kubebuilder:validation:Optional +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` + +// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60. +// +kubebuilder:validation:Optional +MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` + +// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the AWS Documentation what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` + +// Reference to a Role in iam to populate monitoringRoleArn. +// +kubebuilder:validation:Optional +MonitoringRoleArnRef *v1.Reference `json:"monitoringRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate monitoringRoleArn. +// +kubebuilder:validation:Optional +MonitoringRoleArnSelector *v1.Selector `json:"monitoringRoleArnSelector,omitempty" tf:"-"` + +// Specifies whether Performance Insights is enabled or not. +// +kubebuilder:validation:Optional +PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` + +// ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` + +// Reference to a Key in kms to populate performanceInsightsKmsKeyId. +// +kubebuilder:validation:Optional +PerformanceInsightsKMSKeyIDRef *v1.Reference `json:"performanceInsightsKmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate performanceInsightsKmsKeyId. +// +kubebuilder:validation:Optional +PerformanceInsightsKMSKeyIDSelector *v1.Selector `json:"performanceInsightsKmsKeyIdSelector,omitempty" tf:"-"` + +// Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. +// +kubebuilder:validation:Optional +PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` + +// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". NOTE: If preferred_backup_window is set at the cluster level, this argument must be omitted. +// +kubebuilder:validation:Optional +PreferredBackupWindow *string `json:"preferredBackupWindow,omitempty" tf:"preferred_backup_window,omitempty"` + +// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". +// +kubebuilder:validation:Optional +PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty" tf:"preferred_maintenance_window,omitempty"` + +// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer. +// +kubebuilder:validation:Optional +PromotionTier *float64 `json:"promotionTier,omitempty" tf:"promotion_tier,omitempty"` + +// Bool to control if instance is publicly accessible. Default false. See the documentation on Creating DB Instances for more details on controlling this property. +// +kubebuilder:validation:Optional +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Map of tags to assign to the instance. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // ClusterInstanceSpec defines the desired state of ClusterInstance type ClusterInstanceSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterInstanceParameters `json:"forProvider"` + ForProvider ClusterInstanceParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -321,13 +330,13 @@ type ClusterInstanceSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterInstanceInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterInstanceInitParameters `json:"initProvider,omitempty"` } // ClusterInstanceStatus defines the observed state of ClusterInstance. type ClusterInstanceStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterInstanceObservation `json:"atProvider,omitempty"` + AtProvider ClusterInstanceObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -342,11 +351,11 @@ type ClusterInstanceStatus struct { type ClusterInstance struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceClass) || (has(self.initProvider) && has(self.initProvider.instanceClass))",message="spec.forProvider.instanceClass is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterInstanceSpec `json:"spec"` - Status ClusterInstanceStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceClass) || (has(self.initProvider) && has(self.initProvider.instanceClass))",message="spec.forProvider.instanceClass is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterInstanceSpec `json:"spec"` + Status ClusterInstanceStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_clusterparametergroup_types.go b/apis/rds/v1alpha1/zz_clusterparametergroup_types.go index aa6becf..ed83262 100755 --- a/apis/rds/v1alpha1/zz_clusterparametergroup_types.go +++ b/apis/rds/v1alpha1/zz_clusterparametergroup_types.go @@ -15,127 +15,142 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterParameterGroupInitParameters struct { - // The description of the DB cluster parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the DB cluster parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DB cluster parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-cluster-parameters after initial creation of the group. - Parameter []ClusterParameterGroupParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The family of the DB cluster parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-cluster-parameters after initial creation of the group. +Parameter []ClusterParameterGroupParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterParameterGroupObservation struct { - // The ARN of the db cluster parameter group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The description of the DB cluster parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the db cluster parameter group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The family of the DB cluster parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DB cluster parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The db cluster parameter group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The family of the DB cluster parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-cluster-parameters after initial creation of the group. - Parameter []ClusterParameterGroupParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The db cluster parameter group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-cluster-parameters after initial creation of the group. +Parameter []ClusterParameterGroupParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterParameterGroupParameterInitParameters struct { - // "immediate" (default), or "pending-reboot". Some - // engines can't apply some parameters without a reboot, and you will need to - // specify "pending-reboot" here. - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DB cluster parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// "immediate" (default), or "pending-reboot". Some +// engines can't apply some parameters without a reboot, and you will need to +// specify "pending-reboot" here. +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DB parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the DB cluster parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the DB parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ClusterParameterGroupParameterObservation struct { - // "immediate" (default), or "pending-reboot". Some - // engines can't apply some parameters without a reboot, and you will need to - // specify "pending-reboot" here. - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DB cluster parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// "immediate" (default), or "pending-reboot". Some +// engines can't apply some parameters without a reboot, and you will need to +// specify "pending-reboot" here. +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DB parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the DB cluster parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the DB parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ClusterParameterGroupParameterParameters struct { - // "immediate" (default), or "pending-reboot". Some - // engines can't apply some parameters without a reboot, and you will need to - // specify "pending-reboot" here. - // +kubebuilder:validation:Optional - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DB cluster parameter group. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` +// "immediate" (default), or "pending-reboot". Some +// engines can't apply some parameters without a reboot, and you will need to +// specify "pending-reboot" here. +// +kubebuilder:validation:Optional +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DB parameter. - // +kubebuilder:validation:Optional - Value *string `json:"value" tf:"value,omitempty"` +// The name of the DB cluster parameter group. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` + +// The value of the DB parameter. +// +kubebuilder:validation:Optional +Value *string `json:"value" tf:"value,omitempty"` } + type ClusterParameterGroupParameters struct { - // The description of the DB cluster parameter group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the DB cluster parameter group. - // +kubebuilder:validation:Optional - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DB cluster parameter group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// The family of the DB cluster parameter group. +// +kubebuilder:validation:Optional +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-cluster-parameters after initial creation of the group. - // +kubebuilder:validation:Optional - Parameter []ClusterParameterGroupParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-cluster-parameters after initial creation of the group. +// +kubebuilder:validation:Optional +Parameter []ClusterParameterGroupParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // ClusterParameterGroupSpec defines the desired state of ClusterParameterGroup type ClusterParameterGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterParameterGroupParameters `json:"forProvider"` + ForProvider ClusterParameterGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -146,13 +161,13 @@ type ClusterParameterGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterParameterGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterParameterGroupInitParameters `json:"initProvider,omitempty"` } // ClusterParameterGroupStatus defines the observed state of ClusterParameterGroup. type ClusterParameterGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterParameterGroupObservation `json:"atProvider,omitempty"` + AtProvider ClusterParameterGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -167,10 +182,10 @@ type ClusterParameterGroupStatus struct { type ClusterParameterGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterParameterGroupSpec `json:"spec"` - Status ClusterParameterGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterParameterGroupSpec `json:"spec"` + Status ClusterParameterGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_clusterroleassociation_types.go b/apis/rds/v1alpha1/zz_clusterroleassociation_types.go index 7c19e07..0b2a4dc 100755 --- a/apis/rds/v1alpha1/zz_clusterroleassociation_types.go +++ b/apis/rds/v1alpha1/zz_clusterroleassociation_types.go @@ -15,73 +15,82 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterRoleAssociationInitParameters struct { - // Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. - FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` + +// Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. +FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` } + type ClusterRoleAssociationObservation struct { - // DB Cluster Identifier to associate with the IAM Role. - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. - FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` +// DB Cluster Identifier to associate with the IAM Role. +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // DB Cluster Identifier and IAM Role ARN separated by a comma (,) - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. +FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` - // Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` +// DB Cluster Identifier and IAM Role ARN separated by a comma (,) +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` } + type ClusterRoleAssociationParameters struct { - // DB Cluster Identifier to associate with the IAM Role. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - - // Reference to a Cluster in rds to populate dbClusterIdentifier. - // +kubebuilder:validation:Optional - DBClusterIdentifierRef *v1.Reference `json:"dbClusterIdentifierRef,omitempty" tf:"-"` - - // Selector for a Cluster in rds to populate dbClusterIdentifier. - // +kubebuilder:validation:Optional - DBClusterIdentifierSelector *v1.Selector `json:"dbClusterIdentifierSelector,omitempty" tf:"-"` - - // Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. - // +kubebuilder:validation:Optional - FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` - - // Reference to a Role in iam to populate roleArn. - // +kubebuilder:validation:Optional - RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate roleArn. - // +kubebuilder:validation:Optional - RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"` + +// DB Cluster Identifier to associate with the IAM Role. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` + +// Reference to a Cluster in rds to populate dbClusterIdentifier. +// +kubebuilder:validation:Optional +DBClusterIdentifierRef *v1.Reference `json:"dbClusterIdentifierRef,omitempty" tf:"-"` + +// Selector for a Cluster in rds to populate dbClusterIdentifier. +// +kubebuilder:validation:Optional +DBClusterIdentifierSelector *v1.Selector `json:"dbClusterIdentifierSelector,omitempty" tf:"-"` + +// Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. +// +kubebuilder:validation:Optional +FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Amazon Resource Name (ARN) of the IAM Role to associate with the DB Cluster. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` + +// Reference to a Role in iam to populate roleArn. +// +kubebuilder:validation:Optional +RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate roleArn. +// +kubebuilder:validation:Optional +RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"` } // ClusterRoleAssociationSpec defines the desired state of ClusterRoleAssociation type ClusterRoleAssociationSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterRoleAssociationParameters `json:"forProvider"` + ForProvider ClusterRoleAssociationParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -92,13 +101,13 @@ type ClusterRoleAssociationSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterRoleAssociationInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterRoleAssociationInitParameters `json:"initProvider,omitempty"` } // ClusterRoleAssociationStatus defines the observed state of ClusterRoleAssociation. type ClusterRoleAssociationStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterRoleAssociationObservation `json:"atProvider,omitempty"` + AtProvider ClusterRoleAssociationObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -113,10 +122,10 @@ type ClusterRoleAssociationStatus struct { type ClusterRoleAssociation struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.featureName) || (has(self.initProvider) && has(self.initProvider.featureName))",message="spec.forProvider.featureName is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterRoleAssociationSpec `json:"spec"` - Status ClusterRoleAssociationStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.featureName) || (has(self.initProvider) && has(self.initProvider.featureName))",message="spec.forProvider.featureName is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterRoleAssociationSpec `json:"spec"` + Status ClusterRoleAssociationStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_clustersnapshot_types.go b/apis/rds/v1alpha1/zz_clustersnapshot_types.go index f1640c1..c798d65 100755 --- a/apis/rds/v1alpha1/zz_clustersnapshot_types.go +++ b/apis/rds/v1alpha1/zz_clustersnapshot_types.go @@ -15,113 +15,122 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ClusterSnapshotInitParameters struct { - // The Identifier for the snapshot. - DBClusterSnapshotIdentifier *string `json:"dbClusterSnapshotIdentifier,omitempty" tf:"db_cluster_snapshot_identifier,omitempty"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The Identifier for the snapshot. +DBClusterSnapshotIdentifier *string `json:"dbClusterSnapshotIdentifier,omitempty" tf:"db_cluster_snapshot_identifier,omitempty"` + +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ClusterSnapshotObservation struct { - // Allocated storage size in gigabytes (GB). - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // List of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. - AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` +// Allocated storage size in gigabytes (GB). +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` + +// List of EC2 Availability Zones that instances in the DB cluster snapshot can be restored in. +AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` - // The DB Cluster Identifier from which to take the snapshot. - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` +// The DB Cluster Identifier from which to take the snapshot. +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // The Amazon Resource Name (ARN) for the DB Cluster Snapshot. - DBClusterSnapshotArn *string `json:"dbClusterSnapshotArn,omitempty" tf:"db_cluster_snapshot_arn,omitempty"` +// The Amazon Resource Name (ARN) for the DB Cluster Snapshot. +DBClusterSnapshotArn *string `json:"dbClusterSnapshotArn,omitempty" tf:"db_cluster_snapshot_arn,omitempty"` - // The Identifier for the snapshot. - DBClusterSnapshotIdentifier *string `json:"dbClusterSnapshotIdentifier,omitempty" tf:"db_cluster_snapshot_identifier,omitempty"` +// The Identifier for the snapshot. +DBClusterSnapshotIdentifier *string `json:"dbClusterSnapshotIdentifier,omitempty" tf:"db_cluster_snapshot_identifier,omitempty"` - // Name of the database engine. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Version of the database engine for this DB cluster snapshot. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Version of the database engine for this DB cluster snapshot. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // If storage_encrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// If storage_encrypted is true, the AWS KMS key identifier for the encrypted DB cluster snapshot. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // License model information for the restored DB cluster. - LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` +// License model information for the restored DB cluster. +LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` - // Port that the DB cluster was listening on at the time of the snapshot. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Port that the DB cluster was listening on at the time of the snapshot. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` +SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` - // The Amazon Resource Name (ARN) for the DB Cluster Snapshot. - SourceDBClusterSnapshotArn *string `json:"sourceDbClusterSnapshotArn,omitempty" tf:"source_db_cluster_snapshot_arn,omitempty"` +// The Amazon Resource Name (ARN) for the DB Cluster Snapshot. +SourceDBClusterSnapshotArn *string `json:"sourceDbClusterSnapshotArn,omitempty" tf:"source_db_cluster_snapshot_arn,omitempty"` - // The status of this DB Cluster Snapshot. - Status *string `json:"status,omitempty" tf:"status,omitempty"` +// The status of this DB Cluster Snapshot. +Status *string `json:"status,omitempty" tf:"status,omitempty"` - // Whether the DB cluster snapshot is encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Whether the DB cluster snapshot is encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The VPC ID associated with the DB cluster snapshot. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The VPC ID associated with the DB cluster snapshot. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type ClusterSnapshotParameters struct { - // The DB Cluster Identifier from which to take the snapshot. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() - // +kubebuilder:validation:Optional - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // Reference to a Cluster in rds to populate dbClusterIdentifier. - // +kubebuilder:validation:Optional - DBClusterIdentifierRef *v1.Reference `json:"dbClusterIdentifierRef,omitempty" tf:"-"` +// The DB Cluster Identifier from which to take the snapshot. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID() +// +kubebuilder:validation:Optional +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` + +// Reference to a Cluster in rds to populate dbClusterIdentifier. +// +kubebuilder:validation:Optional +DBClusterIdentifierRef *v1.Reference `json:"dbClusterIdentifierRef,omitempty" tf:"-"` - // Selector for a Cluster in rds to populate dbClusterIdentifier. - // +kubebuilder:validation:Optional - DBClusterIdentifierSelector *v1.Selector `json:"dbClusterIdentifierSelector,omitempty" tf:"-"` +// Selector for a Cluster in rds to populate dbClusterIdentifier. +// +kubebuilder:validation:Optional +DBClusterIdentifierSelector *v1.Selector `json:"dbClusterIdentifierSelector,omitempty" tf:"-"` - // The Identifier for the snapshot. - // +kubebuilder:validation:Optional - DBClusterSnapshotIdentifier *string `json:"dbClusterSnapshotIdentifier,omitempty" tf:"db_cluster_snapshot_identifier,omitempty"` +// The Identifier for the snapshot. +// +kubebuilder:validation:Optional +DBClusterSnapshotIdentifier *string `json:"dbClusterSnapshotIdentifier,omitempty" tf:"db_cluster_snapshot_identifier,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the DB cluster. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // ClusterSnapshotSpec defines the desired state of ClusterSnapshot type ClusterSnapshotSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ClusterSnapshotParameters `json:"forProvider"` + ForProvider ClusterSnapshotParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -132,13 +141,13 @@ type ClusterSnapshotSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ClusterSnapshotInitParameters `json:"initProvider,omitempty"` + InitProvider ClusterSnapshotInitParameters `json:"initProvider,omitempty"` } // ClusterSnapshotStatus defines the observed state of ClusterSnapshot. type ClusterSnapshotStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ClusterSnapshotObservation `json:"atProvider,omitempty"` + AtProvider ClusterSnapshotObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -153,10 +162,10 @@ type ClusterSnapshotStatus struct { type ClusterSnapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.dbClusterSnapshotIdentifier) || (has(self.initProvider) && has(self.initProvider.dbClusterSnapshotIdentifier))",message="spec.forProvider.dbClusterSnapshotIdentifier is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ClusterSnapshotSpec `json:"spec"` - Status ClusterSnapshotStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.dbClusterSnapshotIdentifier) || (has(self.initProvider) && has(self.initProvider.dbClusterSnapshotIdentifier))",message="spec.forProvider.dbClusterSnapshotIdentifier is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ClusterSnapshotSpec `json:"spec"` + Status ClusterSnapshotStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_dbinstanceautomatedbackupsreplication_types.go b/apis/rds/v1alpha1/zz_dbinstanceautomatedbackupsreplication_types.go index 4ce759b..6e873cf 100755 --- a/apis/rds/v1alpha1/zz_dbinstanceautomatedbackupsreplication_types.go +++ b/apis/rds/v1alpha1/zz_dbinstanceautomatedbackupsreplication_types.go @@ -15,82 +15,91 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type DBInstanceAutomatedBackupsReplicationInitParameters struct { - // A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the AWS Region of the source DB instance. - PreSignedURL *string `json:"preSignedUrl,omitempty" tf:"pre_signed_url,omitempty"` - // The retention period for the replicated automated backups, defaults to 7. - RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` +// A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the AWS Region of the source DB instance. +PreSignedURL *string `json:"preSignedUrl,omitempty" tf:"pre_signed_url,omitempty"` + +// The retention period for the replicated automated backups, defaults to 7. +RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` } + type DBInstanceAutomatedBackupsReplicationObservation struct { - // The Amazon Resource Name (ARN) of the replicated automated backups. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS Region, for example, arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The Amazon Resource Name (ARN) of the replicated automated backups. +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS Region, for example, arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the AWS Region of the source DB instance. - PreSignedURL *string `json:"preSignedUrl,omitempty" tf:"pre_signed_url,omitempty"` +// A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the AWS Region of the source DB instance. +PreSignedURL *string `json:"preSignedUrl,omitempty" tf:"pre_signed_url,omitempty"` - // The retention period for the replicated automated backups, defaults to 7. - RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` +// The retention period for the replicated automated backups, defaults to 7. +RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` - // The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase. - SourceDBInstanceArn *string `json:"sourceDbInstanceArn,omitempty" tf:"source_db_instance_arn,omitempty"` +// The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase. +SourceDBInstanceArn *string `json:"sourceDbInstanceArn,omitempty" tf:"source_db_instance_arn,omitempty"` } + type DBInstanceAutomatedBackupsReplicationParameters struct { - // The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS Region, for example, arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the AWS Region of the source DB instance. - // +kubebuilder:validation:Optional - PreSignedURL *string `json:"preSignedUrl,omitempty" tf:"pre_signed_url,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // The retention period for the replicated automated backups, defaults to 7. - // +kubebuilder:validation:Optional - RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` - - // The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - SourceDBInstanceArn *string `json:"sourceDbInstanceArn,omitempty" tf:"source_db_instance_arn,omitempty"` - - // Reference to a Instance in rds to populate sourceDbInstanceArn. - // +kubebuilder:validation:Optional - SourceDBInstanceArnRef *v1.Reference `json:"sourceDbInstanceArnRef,omitempty" tf:"-"` - - // Selector for a Instance in rds to populate sourceDbInstanceArn. - // +kubebuilder:validation:Optional - SourceDBInstanceArnSelector *v1.Selector `json:"sourceDbInstanceArnSelector,omitempty" tf:"-"` + +// The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS Region, for example, arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the AWS Region of the source DB instance. +// +kubebuilder:validation:Optional +PreSignedURL *string `json:"preSignedUrl,omitempty" tf:"pre_signed_url,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// The retention period for the replicated automated backups, defaults to 7. +// +kubebuilder:validation:Optional +RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` + +// The Amazon Resource Name (ARN) of the source DB instance for the replicated automated backups, for example, arn:aws:rds:us-west-2:123456789012:db:mydatabase. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +SourceDBInstanceArn *string `json:"sourceDbInstanceArn,omitempty" tf:"source_db_instance_arn,omitempty"` + +// Reference to a Instance in rds to populate sourceDbInstanceArn. +// +kubebuilder:validation:Optional +SourceDBInstanceArnRef *v1.Reference `json:"sourceDbInstanceArnRef,omitempty" tf:"-"` + +// Selector for a Instance in rds to populate sourceDbInstanceArn. +// +kubebuilder:validation:Optional +SourceDBInstanceArnSelector *v1.Selector `json:"sourceDbInstanceArnSelector,omitempty" tf:"-"` } // DBInstanceAutomatedBackupsReplicationSpec defines the desired state of DBInstanceAutomatedBackupsReplication type DBInstanceAutomatedBackupsReplicationSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider DBInstanceAutomatedBackupsReplicationParameters `json:"forProvider"` + ForProvider DBInstanceAutomatedBackupsReplicationParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -101,13 +110,13 @@ type DBInstanceAutomatedBackupsReplicationSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider DBInstanceAutomatedBackupsReplicationInitParameters `json:"initProvider,omitempty"` + InitProvider DBInstanceAutomatedBackupsReplicationInitParameters `json:"initProvider,omitempty"` } // DBInstanceAutomatedBackupsReplicationStatus defines the observed state of DBInstanceAutomatedBackupsReplication. type DBInstanceAutomatedBackupsReplicationStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider DBInstanceAutomatedBackupsReplicationObservation `json:"atProvider,omitempty"` + AtProvider DBInstanceAutomatedBackupsReplicationObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -122,9 +131,9 @@ type DBInstanceAutomatedBackupsReplicationStatus struct { type DBInstanceAutomatedBackupsReplication struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec DBInstanceAutomatedBackupsReplicationSpec `json:"spec"` - Status DBInstanceAutomatedBackupsReplicationStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec DBInstanceAutomatedBackupsReplicationSpec `json:"spec"` + Status DBInstanceAutomatedBackupsReplicationStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_dbsnapshotcopy_types.go b/apis/rds/v1alpha1/zz_dbsnapshotcopy_types.go index 58bbee6..f38e04f 100755 --- a/apis/rds/v1alpha1/zz_dbsnapshotcopy_types.go +++ b/apis/rds/v1alpha1/zz_dbsnapshotcopy_types.go @@ -15,179 +15,188 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type DBSnapshotCopyInitParameters struct { - // Whether to copy existing tags. Defaults to false. - CopyTags *bool `json:"copyTags,omitempty" tf:"copy_tags,omitempty"` - // The Destination region to place snapshot copy. - DestinationRegion *string `json:"destinationRegion,omitempty" tf:"destination_region,omitempty"` +// Whether to copy existing tags. Defaults to false. +CopyTags *bool `json:"copyTags,omitempty" tf:"copy_tags,omitempty"` + +// The Destination region to place snapshot copy. +DestinationRegion *string `json:"destinationRegion,omitempty" tf:"destination_region,omitempty"` - // The name of an option group to associate with the copy of the snapshot. - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` +// The name of an option group to associate with the copy of the snapshot. +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - // he URL that contains a Signature Version 4 signed request. - PresignedURL *string `json:"presignedUrl,omitempty" tf:"presigned_url,omitempty"` +// he URL that contains a Signature Version 4 signed request. +PresignedURL *string `json:"presignedUrl,omitempty" tf:"presigned_url,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The external custom Availability Zone. - TargetCustomAvailabilityZone *string `json:"targetCustomAvailabilityZone,omitempty" tf:"target_custom_availability_zone,omitempty"` +// The external custom Availability Zone. +TargetCustomAvailabilityZone *string `json:"targetCustomAvailabilityZone,omitempty" tf:"target_custom_availability_zone,omitempty"` - // The Identifier for the snapshot. - TargetDBSnapshotIdentifier *string `json:"targetDbSnapshotIdentifier,omitempty" tf:"target_db_snapshot_identifier,omitempty"` +// The Identifier for the snapshot. +TargetDBSnapshotIdentifier *string `json:"targetDbSnapshotIdentifier,omitempty" tf:"target_db_snapshot_identifier,omitempty"` } + type DBSnapshotCopyObservation struct { - // Specifies the allocated storage size in gigabytes (GB). - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Specifies the allocated storage size in gigabytes (GB). +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Whether to copy existing tags. Defaults to false. - CopyTags *bool `json:"copyTags,omitempty" tf:"copy_tags,omitempty"` +// Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The Amazon Resource Name (ARN) for the DB snapshot. - DBSnapshotArn *string `json:"dbSnapshotArn,omitempty" tf:"db_snapshot_arn,omitempty"` +// Whether to copy existing tags. Defaults to false. +CopyTags *bool `json:"copyTags,omitempty" tf:"copy_tags,omitempty"` - // The Destination region to place snapshot copy. - DestinationRegion *string `json:"destinationRegion,omitempty" tf:"destination_region,omitempty"` +// The Amazon Resource Name (ARN) for the DB snapshot. +DBSnapshotArn *string `json:"dbSnapshotArn,omitempty" tf:"db_snapshot_arn,omitempty"` - // Specifies whether the DB snapshot is encrypted. - Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` +// The Destination region to place snapshot copy. +DestinationRegion *string `json:"destinationRegion,omitempty" tf:"destination_region,omitempty"` - // Specifies the name of the database engine. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Specifies whether the DB snapshot is encrypted. +Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` - // Specifies the version of the database engine. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Specifies the name of the database engine. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Snapshot Identifier. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Specifies the version of the database engine. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Snapshot Identifier. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // KMS key ID. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // License model information for the restored DB instance. - LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` +// KMS key ID. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // The name of an option group to associate with the copy of the snapshot. - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` +// License model information for the restored DB instance. +LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The name of an option group to associate with the copy of the snapshot. +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - // he URL that contains a Signature Version 4 signed request. - PresignedURL *string `json:"presignedUrl,omitempty" tf:"presigned_url,omitempty"` +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` +// he URL that contains a Signature Version 4 signed request. +PresignedURL *string `json:"presignedUrl,omitempty" tf:"presigned_url,omitempty"` - // Snapshot identifier of the source snapshot. - SourceDBSnapshotIdentifier *string `json:"sourceDbSnapshotIdentifier,omitempty" tf:"source_db_snapshot_identifier,omitempty"` +SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` - // The region that the DB snapshot was created in or copied from. - SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` +// Snapshot identifier of the source snapshot. +SourceDBSnapshotIdentifier *string `json:"sourceDbSnapshotIdentifier,omitempty" tf:"source_db_snapshot_identifier,omitempty"` - // Specifies the storage type associated with DB snapshot. - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` +// The region that the DB snapshot was created in or copied from. +SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Specifies the storage type associated with DB snapshot. +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The external custom Availability Zone. - TargetCustomAvailabilityZone *string `json:"targetCustomAvailabilityZone,omitempty" tf:"target_custom_availability_zone,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // The Identifier for the snapshot. - TargetDBSnapshotIdentifier *string `json:"targetDbSnapshotIdentifier,omitempty" tf:"target_db_snapshot_identifier,omitempty"` +// The external custom Availability Zone. +TargetCustomAvailabilityZone *string `json:"targetCustomAvailabilityZone,omitempty" tf:"target_custom_availability_zone,omitempty"` - // Provides the VPC ID associated with the DB snapshot. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The Identifier for the snapshot. +TargetDBSnapshotIdentifier *string `json:"targetDbSnapshotIdentifier,omitempty" tf:"target_db_snapshot_identifier,omitempty"` + +// Provides the VPC ID associated with the DB snapshot. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type DBSnapshotCopyParameters struct { - // Whether to copy existing tags. Defaults to false. - // +kubebuilder:validation:Optional - CopyTags *bool `json:"copyTags,omitempty" tf:"copy_tags,omitempty"` - - // The Destination region to place snapshot copy. - // +kubebuilder:validation:Optional - DestinationRegion *string `json:"destinationRegion,omitempty" tf:"destination_region,omitempty"` - - // KMS key ID. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // The name of an option group to associate with the copy of the snapshot. - // +kubebuilder:validation:Optional - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - - // he URL that contains a Signature Version 4 signed request. - // +kubebuilder:validation:Optional - PresignedURL *string `json:"presignedUrl,omitempty" tf:"presigned_url,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Snapshot identifier of the source snapshot. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Snapshot - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("db_snapshot_arn",true) - // +kubebuilder:validation:Optional - SourceDBSnapshotIdentifier *string `json:"sourceDbSnapshotIdentifier,omitempty" tf:"source_db_snapshot_identifier,omitempty"` - - // Reference to a Snapshot in rds to populate sourceDbSnapshotIdentifier. - // +kubebuilder:validation:Optional - SourceDBSnapshotIdentifierRef *v1.Reference `json:"sourceDbSnapshotIdentifierRef,omitempty" tf:"-"` - - // Selector for a Snapshot in rds to populate sourceDbSnapshotIdentifier. - // +kubebuilder:validation:Optional - SourceDBSnapshotIdentifierSelector *v1.Selector `json:"sourceDbSnapshotIdentifierSelector,omitempty" tf:"-"` - - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // The external custom Availability Zone. - // +kubebuilder:validation:Optional - TargetCustomAvailabilityZone *string `json:"targetCustomAvailabilityZone,omitempty" tf:"target_custom_availability_zone,omitempty"` - - // The Identifier for the snapshot. - // +kubebuilder:validation:Optional - TargetDBSnapshotIdentifier *string `json:"targetDbSnapshotIdentifier,omitempty" tf:"target_db_snapshot_identifier,omitempty"` + +// Whether to copy existing tags. Defaults to false. +// +kubebuilder:validation:Optional +CopyTags *bool `json:"copyTags,omitempty" tf:"copy_tags,omitempty"` + +// The Destination region to place snapshot copy. +// +kubebuilder:validation:Optional +DestinationRegion *string `json:"destinationRegion,omitempty" tf:"destination_region,omitempty"` + +// KMS key ID. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// The name of an option group to associate with the copy of the snapshot. +// +kubebuilder:validation:Optional +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` + +// he URL that contains a Signature Version 4 signed request. +// +kubebuilder:validation:Optional +PresignedURL *string `json:"presignedUrl,omitempty" tf:"presigned_url,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Snapshot identifier of the source snapshot. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Snapshot +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("db_snapshot_arn",true) +// +kubebuilder:validation:Optional +SourceDBSnapshotIdentifier *string `json:"sourceDbSnapshotIdentifier,omitempty" tf:"source_db_snapshot_identifier,omitempty"` + +// Reference to a Snapshot in rds to populate sourceDbSnapshotIdentifier. +// +kubebuilder:validation:Optional +SourceDBSnapshotIdentifierRef *v1.Reference `json:"sourceDbSnapshotIdentifierRef,omitempty" tf:"-"` + +// Selector for a Snapshot in rds to populate sourceDbSnapshotIdentifier. +// +kubebuilder:validation:Optional +SourceDBSnapshotIdentifierSelector *v1.Selector `json:"sourceDbSnapshotIdentifierSelector,omitempty" tf:"-"` + +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The external custom Availability Zone. +// +kubebuilder:validation:Optional +TargetCustomAvailabilityZone *string `json:"targetCustomAvailabilityZone,omitempty" tf:"target_custom_availability_zone,omitempty"` + +// The Identifier for the snapshot. +// +kubebuilder:validation:Optional +TargetDBSnapshotIdentifier *string `json:"targetDbSnapshotIdentifier,omitempty" tf:"target_db_snapshot_identifier,omitempty"` } // DBSnapshotCopySpec defines the desired state of DBSnapshotCopy type DBSnapshotCopySpec struct { v1.ResourceSpec `json:",inline"` - ForProvider DBSnapshotCopyParameters `json:"forProvider"` + ForProvider DBSnapshotCopyParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -198,13 +207,13 @@ type DBSnapshotCopySpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider DBSnapshotCopyInitParameters `json:"initProvider,omitempty"` + InitProvider DBSnapshotCopyInitParameters `json:"initProvider,omitempty"` } // DBSnapshotCopyStatus defines the observed state of DBSnapshotCopy. type DBSnapshotCopyStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider DBSnapshotCopyObservation `json:"atProvider,omitempty"` + AtProvider DBSnapshotCopyObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -219,10 +228,10 @@ type DBSnapshotCopyStatus struct { type DBSnapshotCopy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.targetDbSnapshotIdentifier) || (has(self.initProvider) && has(self.initProvider.targetDbSnapshotIdentifier))",message="spec.forProvider.targetDbSnapshotIdentifier is a required parameter" - Spec DBSnapshotCopySpec `json:"spec"` - Status DBSnapshotCopyStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.targetDbSnapshotIdentifier) || (has(self.initProvider) && has(self.initProvider.targetDbSnapshotIdentifier))",message="spec.forProvider.targetDbSnapshotIdentifier is a required parameter" + Spec DBSnapshotCopySpec `json:"spec"` + Status DBSnapshotCopyStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_eventsubscription_types.go b/apis/rds/v1alpha1/zz_eventsubscription_types.go index 870032f..6aa9e7a 100755 --- a/apis/rds/v1alpha1/zz_eventsubscription_types.go +++ b/apis/rds/v1alpha1/zz_eventsubscription_types.go @@ -15,112 +15,121 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type EventSubscriptionInitParameters struct { - // A boolean flag to enable/disable the subscription. Defaults to true. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // A list of event categories for a SourceType that you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html or run aws rds describe-event-categories. - EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` +// A boolean flag to enable/disable the subscription. Defaults to true. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// A list of event categories for a SourceType that you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html or run aws rds describe-event-categories. +EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` - // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. - SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` +// A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. +SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` - // The type of source that will be generating the events. Valid options are db-instance, db-security-group, db-parameter-group, db-snapshot, db-cluster or db-cluster-snapshot. If not set, all sources will be subscribed to. - SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` +// The type of source that will be generating the events. Valid options are db-instance, db-security-group, db-parameter-group, db-snapshot, db-cluster or db-cluster-snapshot. If not set, all sources will be subscribed to. +SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type EventSubscriptionObservation struct { - // The Amazon Resource Name of the RDS event notification subscription - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The AWS customer account associated with the RDS event notification subscription - CustomerAwsID *string `json:"customerAwsId,omitempty" tf:"customer_aws_id,omitempty"` +// The Amazon Resource Name of the RDS event notification subscription +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// The AWS customer account associated with the RDS event notification subscription +CustomerAwsID *string `json:"customerAwsId,omitempty" tf:"customer_aws_id,omitempty"` - // A boolean flag to enable/disable the subscription. Defaults to true. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` +// A boolean flag to enable/disable the subscription. Defaults to true. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // A list of event categories for a SourceType that you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html or run aws rds describe-event-categories. - EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` +// A list of event categories for a SourceType that you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html or run aws rds describe-event-categories. +EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` - // The name of the RDS event notification subscription - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The name of the RDS event notification subscription +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The SNS topic to send events to. - SnsTopic *string `json:"snsTopic,omitempty" tf:"sns_topic,omitempty"` +// The SNS topic to send events to. +SnsTopic *string `json:"snsTopic,omitempty" tf:"sns_topic,omitempty"` - // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. - SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` +// A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. +SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` - // The type of source that will be generating the events. Valid options are db-instance, db-security-group, db-parameter-group, db-snapshot, db-cluster or db-cluster-snapshot. If not set, all sources will be subscribed to. - SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` +// The type of source that will be generating the events. Valid options are db-instance, db-security-group, db-parameter-group, db-snapshot, db-cluster or db-cluster-snapshot. If not set, all sources will be subscribed to. +SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type EventSubscriptionParameters struct { - // A boolean flag to enable/disable the subscription. Defaults to true. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` - // A list of event categories for a SourceType that you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html or run aws rds describe-event-categories. - // +kubebuilder:validation:Optional - EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` +// A boolean flag to enable/disable the subscription. Defaults to true. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// A list of event categories for a SourceType that you want to subscribe to. See http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.html or run aws rds describe-event-categories. +// +kubebuilder:validation:Optional +EventCategories []*string `json:"eventCategories,omitempty" tf:"event_categories,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // The SNS topic to send events to. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/sns/v1alpha1.Topic - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - SnsTopic *string `json:"snsTopic,omitempty" tf:"sns_topic,omitempty"` +// The SNS topic to send events to. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/sns/v1alpha1.Topic +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +SnsTopic *string `json:"snsTopic,omitempty" tf:"sns_topic,omitempty"` - // Reference to a Topic in sns to populate snsTopic. - // +kubebuilder:validation:Optional - SnsTopicRef *v1.Reference `json:"snsTopicRef,omitempty" tf:"-"` +// Reference to a Topic in sns to populate snsTopic. +// +kubebuilder:validation:Optional +SnsTopicRef *v1.Reference `json:"snsTopicRef,omitempty" tf:"-"` - // Selector for a Topic in sns to populate snsTopic. - // +kubebuilder:validation:Optional - SnsTopicSelector *v1.Selector `json:"snsTopicSelector,omitempty" tf:"-"` +// Selector for a Topic in sns to populate snsTopic. +// +kubebuilder:validation:Optional +SnsTopicSelector *v1.Selector `json:"snsTopicSelector,omitempty" tf:"-"` - // A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. - // +kubebuilder:validation:Optional - SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` +// A list of identifiers of the event sources for which events will be returned. If not specified, then all sources are included in the response. If specified, a source_type must also be specified. +// +kubebuilder:validation:Optional +SourceIds []*string `json:"sourceIds,omitempty" tf:"source_ids,omitempty"` - // The type of source that will be generating the events. Valid options are db-instance, db-security-group, db-parameter-group, db-snapshot, db-cluster or db-cluster-snapshot. If not set, all sources will be subscribed to. - // +kubebuilder:validation:Optional - SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` +// The type of source that will be generating the events. Valid options are db-instance, db-security-group, db-parameter-group, db-snapshot, db-cluster or db-cluster-snapshot. If not set, all sources will be subscribed to. +// +kubebuilder:validation:Optional +SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // EventSubscriptionSpec defines the desired state of EventSubscription type EventSubscriptionSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider EventSubscriptionParameters `json:"forProvider"` + ForProvider EventSubscriptionParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -131,13 +140,13 @@ type EventSubscriptionSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider EventSubscriptionInitParameters `json:"initProvider,omitempty"` + InitProvider EventSubscriptionInitParameters `json:"initProvider,omitempty"` } // EventSubscriptionStatus defines the observed state of EventSubscription. type EventSubscriptionStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider EventSubscriptionObservation `json:"atProvider,omitempty"` + AtProvider EventSubscriptionObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -152,9 +161,9 @@ type EventSubscriptionStatus struct { type EventSubscription struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec EventSubscriptionSpec `json:"spec"` - Status EventSubscriptionStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec EventSubscriptionSpec `json:"spec"` + Status EventSubscriptionStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_globalcluster_types.go b/apis/rds/v1alpha1/zz_globalcluster_types.go index 5be9fd0..f65eba8 100755 --- a/apis/rds/v1alpha1/zz_globalcluster_types.go +++ b/apis/rds/v1alpha1/zz_globalcluster_types.go @@ -15,132 +15,147 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type GlobalClusterInitParameters struct { - // Name for an automatically created database on cluster creation. - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Name for an automatically created database on cluster creation. +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // Name of the database engine to be used for this DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws_rds_cluster_instance) must together support global databases. See Using Amazon Aurora global databases for more information. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws_rds_cluster resource as shown above in Upgrading Engine Versions example. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the database engine to be used for this DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier. - ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` +// Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws_rds_cluster_instance) must together support global databases. See Using Amazon Aurora global databases for more information. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws_rds_cluster resource as shown above in Upgrading Engine Versions example. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier. +ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + +// Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` } + type GlobalClusterMembersInitParameters struct { + } + type GlobalClusterMembersObservation struct { - // Amazon Resource Name (ARN) of member DB Cluster - DBClusterArn *string `json:"dbClusterArn,omitempty" tf:"db_cluster_arn,omitempty"` - // Whether the member is the primary DB Cluster - IsWriter *bool `json:"isWriter,omitempty" tf:"is_writer,omitempty"` +// Amazon Resource Name (ARN) of member DB Cluster +DBClusterArn *string `json:"dbClusterArn,omitempty" tf:"db_cluster_arn,omitempty"` + +// Whether the member is the primary DB Cluster +IsWriter *bool `json:"isWriter,omitempty" tf:"is_writer,omitempty"` } + type GlobalClusterMembersParameters struct { + } + type GlobalClusterObservation struct { - // RDS Global Cluster Amazon Resource Name (ARN) - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Name for an automatically created database on cluster creation. - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` +// RDS Global Cluster Amazon Resource Name (ARN) +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Name for an automatically created database on cluster creation. +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // Name of the database engine to be used for this DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws_rds_cluster_instance) must together support global databases. See Using Amazon Aurora global databases for more information. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws_rds_cluster resource as shown above in Upgrading Engine Versions example. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Name of the database engine to be used for this DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` +// Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws_rds_cluster_instance) must together support global databases. See Using Amazon Aurora global databases for more information. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws_rds_cluster resource as shown above in Upgrading Engine Versions example. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier. - ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` +EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` - // Set of objects containing Global Cluster members. - GlobalClusterMembers []GlobalClusterMembersObservation `json:"globalClusterMembers,omitempty" tf:"global_cluster_members,omitempty"` +// Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier. +ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` - // AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed - GlobalClusterResourceID *string `json:"globalClusterResourceId,omitempty" tf:"global_cluster_resource_id,omitempty"` +// Set of objects containing Global Cluster members. +GlobalClusterMembers []GlobalClusterMembersObservation `json:"globalClusterMembers,omitempty" tf:"global_cluster_members,omitempty"` - // RDS Global Cluster identifier - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed +GlobalClusterResourceID *string `json:"globalClusterResourceId,omitempty" tf:"global_cluster_resource_id,omitempty"` - // Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. - SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` +// RDS Global Cluster identifier +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. +SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` + +// Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` } + type GlobalClusterParameters struct { - // Name for an automatically created database on cluster creation. - // +kubebuilder:validation:Optional - DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` - // If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - // +kubebuilder:validation:Optional - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Name for an automatically created database on cluster creation. +// +kubebuilder:validation:Optional +DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + +// If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +// +kubebuilder:validation:Optional +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // Name of the database engine to be used for this DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier. - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Name of the database engine to be used for this DB cluster. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier. +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws_rds_cluster_instance) must together support global databases. See Using Amazon Aurora global databases for more information. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws_rds_cluster resource as shown above in Upgrading Engine Versions example. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws_rds_cluster_instance) must together support global databases. See Using Amazon Aurora global databases for more information. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws_rds_cluster resource as shown above in Upgrading Engine Versions example. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier. - // +kubebuilder:validation:Optional - ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` +// Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier. +// +kubebuilder:validation:Optional +ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` +// Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Cluster +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +SourceDBClusterIdentifier *string `json:"sourceDbClusterIdentifier,omitempty" tf:"source_db_cluster_identifier,omitempty"` - // Reference to a Cluster in rds to populate sourceDbClusterIdentifier. - // +kubebuilder:validation:Optional - SourceDBClusterIdentifierRef *v1.Reference `json:"sourceDbClusterIdentifierRef,omitempty" tf:"-"` +// Reference to a Cluster in rds to populate sourceDbClusterIdentifier. +// +kubebuilder:validation:Optional +SourceDBClusterIdentifierRef *v1.Reference `json:"sourceDbClusterIdentifierRef,omitempty" tf:"-"` - // Selector for a Cluster in rds to populate sourceDbClusterIdentifier. - // +kubebuilder:validation:Optional - SourceDBClusterIdentifierSelector *v1.Selector `json:"sourceDbClusterIdentifierSelector,omitempty" tf:"-"` +// Selector for a Cluster in rds to populate sourceDbClusterIdentifier. +// +kubebuilder:validation:Optional +SourceDBClusterIdentifierSelector *v1.Selector `json:"sourceDbClusterIdentifierSelector,omitempty" tf:"-"` - // Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. - // +kubebuilder:validation:Optional - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` +// Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. +// +kubebuilder:validation:Optional +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` } // GlobalClusterSpec defines the desired state of GlobalCluster type GlobalClusterSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider GlobalClusterParameters `json:"forProvider"` + ForProvider GlobalClusterParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -151,13 +166,13 @@ type GlobalClusterSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider GlobalClusterInitParameters `json:"initProvider,omitempty"` + InitProvider GlobalClusterInitParameters `json:"initProvider,omitempty"` } // GlobalClusterStatus defines the observed state of GlobalCluster. type GlobalClusterStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider GlobalClusterObservation `json:"atProvider,omitempty"` + AtProvider GlobalClusterObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -172,9 +187,9 @@ type GlobalClusterStatus struct { type GlobalCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec GlobalClusterSpec `json:"spec"` - Status GlobalClusterStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec GlobalClusterSpec `json:"spec"` + Status GlobalClusterStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_instance_types.go b/apis/rds/v1alpha1/zz_instance_types.go index cb4bb21..11b575c 100755 --- a/apis/rds/v1alpha1/zz_instance_types.go +++ b/apis/rds/v1alpha1/zz_instance_types.go @@ -15,1063 +15,1102 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type BlueGreenUpdateInitParameters struct { - // Enables [low-downtime updates](#Low-Downtime Updates) when true. - // Default is false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Enables [low-downtime updates](#Low-Downtime Updates) when true. +// Default is false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type BlueGreenUpdateObservation struct { - // Enables [low-downtime updates](#Low-Downtime Updates) when true. - // Default is false. - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Enables [low-downtime updates](#Low-Downtime Updates) when true. +// Default is false. +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type BlueGreenUpdateParameters struct { - // Enables [low-downtime updates](#Low-Downtime Updates) when true. - // Default is false. - // +kubebuilder:validation:Optional - Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + +// Enables [low-downtime updates](#Low-Downtime Updates) when true. +// Default is false. +// +kubebuilder:validation:Optional +Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` } + type InstanceInitParameters struct { - // The allocated storage in gibibytes. If max_allocated_storage is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If replicate_source_db is set, the value is ignored during the creation of the instance. - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Indicates that major version - // upgrades are allowed. Changing this parameter does not result in an outage and - // the change is asynchronously applied as soon as possible. - AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` +// The allocated storage in gibibytes. If max_allocated_storage is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If replicate_source_db is set, the value is ignored during the creation of the instance. +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Specifies whether any database modifications - // are applied immediately, or during the next maintenance window. Default is - // false. See Amazon RDS Documentation for more - // information. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` +// Indicates that major version +// upgrades are allowed. Changing this parameter does not result in an outage and +// the change is asynchronously applied as soon as possible. +AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` - // Indicates that minor engine upgrades - // will be applied automatically to the DB instance during the maintenance window. - // Defaults to true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Specifies whether any database modifications +// are applied immediately, or during the next maintenance window. Default is +// false. See Amazon RDS Documentation for more +// information. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // The AZ for the RDS instance. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Indicates that minor engine upgrades +// will be applied automatically to the DB instance during the maintenance window. +// Defaults to true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // The days to retain backups for. - // Must be between 0 and 35. - // Default is 0. - // Must be greater than 0 if the database is used as a source for a Read Replica, - // uses low-downtime updates, - // or will use RDS Blue/Green deployments. - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// The AZ for the RDS instance. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The daily time range (in UTC) during which automated backups are created if they are enabled. - // Example: "09:46-10:16". Must not overlap with maintenance_window. - BackupWindow *string `json:"backupWindow,omitempty" tf:"backup_window,omitempty"` +// The days to retain backups for. +// Must be between 0 and 35. +// Default is 0. +// Must be greater than 0 if the database is used as a source for a Read Replica, +// uses low-downtime updates, +// or will use RDS Blue/Green deployments. +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // Enables low-downtime updates using RDS Blue/Green deployments. - // See blue_green_update below - BlueGreenUpdate []BlueGreenUpdateInitParameters `json:"blueGreenUpdate,omitempty" tf:"blue_green_update,omitempty"` +// The daily time range (in UTC) during which automated backups are created if they are enabled. +// Example: "09:46-10:16". Must not overlap with maintenance_window. +BackupWindow *string `json:"backupWindow,omitempty" tf:"backup_window,omitempty"` - // The identifier of the CA certificate for the DB instance. - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` +// Enables low-downtime updates using RDS Blue/Green deployments. +// See blue_green_update below +BlueGreenUpdate []BlueGreenUpdateInitParameters `json:"blueGreenUpdate,omitempty" tf:"blue_green_update,omitempty"` - // The character set name to use for DB - // encoding in Oracle and Microsoft SQL instances (collation). This can't be changed. See Oracle Character Sets - // Supported in Amazon RDS - // or Server-Level Collation for Microsoft SQL Server for more information. - CharacterSetName *string `json:"characterSetName,omitempty" tf:"character_set_name,omitempty"` +// The identifier of the CA certificate for the DB instance. +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - // – Copy all Instance tags to snapshots. Default is false. - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// The character set name to use for DB +// encoding in Oracle and Microsoft SQL instances (collation). This can't be changed. See Oracle Character Sets +// Supported in Amazon RDS +// or Server-Level Collation for Microsoft SQL Server for more information. +CharacterSetName *string `json:"characterSetName,omitempty" tf:"character_set_name,omitempty"` - // The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. - CustomIAMInstanceProfile *string `json:"customIamInstanceProfile,omitempty" tf:"custom_iam_instance_profile,omitempty"` +// – Copy all Instance tags to snapshots. Default is false. +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS on Outposts for more information. - CustomerOwnedIPEnabled *bool `json:"customerOwnedIpEnabled,omitempty" tf:"customer_owned_ip_enabled,omitempty"` +// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. +CustomIAMInstanceProfile *string `json:"customIamInstanceProfile,omitempty" tf:"custom_iam_instance_profile,omitempty"` - // The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica. - DBName *string `json:"dbName,omitempty" tf:"db_name,omitempty"` +// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS on Outposts for more information. +CustomerOwnedIPEnabled *bool `json:"customerOwnedIpEnabled,omitempty" tf:"customer_owned_ip_enabled,omitempty"` - // Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is true. - DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty" tf:"delete_automated_backups,omitempty"` +// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica. +DBName *string `json:"dbName,omitempty" tf:"db_name,omitempty"` - // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is true. +DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty" tf:"delete_automated_backups,omitempty"` - // The ID of the Directory Service Active Directory domain to create the instance in. - Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` +// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // The name of the IAM role to be used when making API calls to the Directory Service. - DomainIAMRoleName *string `json:"domainIamRoleName,omitempty" tf:"domain_iam_role_name,omitempty"` +// The ID of the Directory Service Active Directory domain to create the instance in. +Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` - // Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// The name of the IAM role to be used when making API calls to the Directory Service. +DomainIAMRoleName *string `json:"domainIamRoleName,omitempty" tf:"domain_iam_role_name,omitempty"` - // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as 5.7 (for 5.7.10). The actual engine version used is returned in the attribute `status.atProvider.engineVersionActual`. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The name of your final DB snapshot - // when this DB instance is deleted. Must be provided if skip_final_snapshot is - // set to false. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as 5.7 (for 5.7.10). The actual engine version used is returned in the attribute `status.atProvider.engineVersionActual`. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database - // accounts is enabled. - IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` +// The name of your final DB snapshot +// when this DB instance is deleted. Must be provided if skip_final_snapshot is +// set to false. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // The instance type of the RDS instance. - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` +// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database +// accounts is enabled. +IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` - // The amount of provisioned IOPS. Setting this implies a - // storage_type of "io1". Can only be set when storage_type is "io1" or "gp3". - // Cannot be specified for gp3 storage if the allocated_storage value is below a per-engine threshold. - // See the RDS User Guide for details. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// The instance type of the RDS instance. +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - // License model information for this DB instance. - LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` +// The amount of provisioned IOPS. Setting this implies a +// storage_type of "io1". Can only be set when storage_type is "io1" or "gp3". +// Cannot be specified for gp3 storage if the allocated_storage value is below a per-engine threshold. +// See the RDS User Guide for details. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // The window to perform maintenance in. - // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See RDS - // Maintenance Window - // docs - // for more information. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// License model information for this DB instance. +LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` - // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if password is provided. - ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` +// The window to perform maintenance in. +// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See RDS +// Maintenance Window +// docs +// for more information. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to allocated_storage. Must be greater than or equal to allocated_storage or 0 to disable Storage Autoscaling. - MaxAllocatedStorage *float64 `json:"maxAllocatedStorage,omitempty" tf:"max_allocated_storage,omitempty"` +// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if password is provided. +ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` - // The interval, in seconds, between points - // when Enhanced Monitoring metrics are collected for the DB instance. To disable - // collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid - // Values: 0, 1, 5, 10, 15, 30, 60. - MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` +// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to allocated_storage. Must be greater than or equal to allocated_storage or 0 to disable Storage Autoscaling. +MaxAllocatedStorage *float64 `json:"maxAllocatedStorage,omitempty" tf:"max_allocated_storage,omitempty"` - // Specifies if the RDS instance is multi-AZ - MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` +// The interval, in seconds, between points +// when Enhanced Monitoring metrics are collected for the DB instance. To disable +// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid +// Values: 0, 1, 5, 10, 15, 30, 60. +MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` - // The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See Oracle Character Sets - // Supported in Amazon RDS. - NcharCharacterSetName *string `json:"ncharCharacterSetName,omitempty" tf:"nchar_character_set_name,omitempty"` +// Specifies if the RDS instance is multi-AZ +MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` - // The network type of the DB instance. Valid values: IPV4, DUAL. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See Oracle Character Sets +// Supported in Amazon RDS. +NcharCharacterSetName *string `json:"ncharCharacterSetName,omitempty" tf:"nchar_character_set_name,omitempty"` - // Name of the DB option group to associate. - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` +// The network type of the DB instance. Valid values: IPV4, DUAL. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // Name of the DB parameter group to - // associate. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// Name of the DB option group to associate. +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - // Specifies whether Performance Insights are enabled. Defaults to false. - PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` +// Name of the DB parameter group to +// associate. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // The ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. Once KMS key is set, it can never be changed. - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` +// Specifies whether Performance Insights are enabled. Defaults to false. +PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` - // Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. - PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` +// The ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. Once KMS key is set, it can never be changed. +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - // The port on which the DB accepts connections. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. +PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` - // Bool to control if instance is publicly - // accessible. Default is false. - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` +// The port on which the DB accepts connections. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Specifies whether the replica is in either mounted or open-read-only mode. This attribute - // is only supported by Oracle instances. Oracle replicas operate in open-read-only mode unless otherwise specified. See Working with Oracle Read Replicas for more information. - ReplicaMode *string `json:"replicaMode,omitempty" tf:"replica_mode,omitempty"` +// Bool to control if instance is publicly +// accessible. Default is false. +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - // A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details. - RestoreToPointInTime []RestoreToPointInTimeInitParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` +// Specifies whether the replica is in either mounted or open-read-only mode. This attribute +// is only supported by Oracle instances. Oracle replicas operate in open-read-only mode unless otherwise specified. See Working with Oracle Read Replicas for more information. +ReplicaMode *string `json:"replicaMode,omitempty" tf:"replica_mode,omitempty"` - // Restore from a Percona Xtrabackup in S3. See Importing Data into an Amazon RDS MySQL DB Instance - S3Import []S3ImportInitParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` +// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details. +RestoreToPointInTime []RestoreToPointInTimeInitParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` - // Determines whether a final DB snapshot is - // created before the DB instance is deleted. If true is specified, no DBSnapshot - // is created. If false is specified, a DB snapshot is created before the DB - // instance is deleted, using the value from final_snapshot_identifier. Default - // is false. - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` +// Restore from a Percona Xtrabackup in S3. See Importing Data into an Amazon RDS MySQL DB Instance +S3Import []S3ImportInitParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` - // Specifies whether or not to create this - // database from a snapshot. This correlates to the snapshot ID you'd find in the - // RDS console, e.g: rds:production-2015-06-26-06-05. - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` +// Determines whether a final DB snapshot is +// created before the DB instance is deleted. If true is specified, no DBSnapshot +// is created. If false is specified, a DB snapshot is created before the DB +// instance is deleted, using the value from final_snapshot_identifier. Default +// is false. +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - // Specifies whether the DB instance is - // encrypted. Note that if you are creating a cross-region read replica this field - // is ignored and you should instead declare kms_key_id with a valid ARN. The - // default is false if not specified. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - - // The storage throughput value for the DB instance. Can only be set when storage_type is "gp3". Cannot be specified if the allocated_storage value is below a per-engine threshold. See the RDS User Guide for details. - StorageThroughput *float64 `json:"storageThroughput,omitempty" tf:"storage_throughput,omitempty"` +// Specifies whether or not to create this +// database from a snapshot. This correlates to the snapshot ID you'd find in the +// RDS console, e.g: rds:production-2015-06-26-06-05. +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - // One of "standard" (magnetic), "gp2" (general - // purpose SSD), "gp3" (general purpose SSD that needs iops independently) - // or "io1" (provisioned IOPS SSD). The default is "io1" if iops is specified, - // "gp2" if not. - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Specifies whether the DB instance is +// encrypted. Note that if you are creating a cross-region read replica this field +// is ignored and you should instead declare kms_key_id with a valid ARN. The +// default is false if not specified. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` + +// The storage throughput value for the DB instance. Can only be set when storage_type is "gp3". Cannot be specified if the allocated_storage value is below a per-engine threshold. See the RDS User Guide for details. +StorageThroughput *float64 `json:"storageThroughput,omitempty" tf:"storage_throughput,omitempty"` - // Time zone of the DB instance. timezone is currently - // only supported by Microsoft SQL Server. The timezone can only be set on - // creation. See MSSQL User - // Guide - // for more information. - Timezone *string `json:"timezone,omitempty" tf:"timezone,omitempty"` +// One of "standard" (magnetic), "gp2" (general +// purpose SSD), "gp3" (general purpose SSD that needs iops independently) +// or "io1" (provisioned IOPS SSD). The default is "io1" if iops is specified, +// "gp2" if not. +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Username for the master DB user. Cannot be specified for a replica. - Username *string `json:"username,omitempty" tf:"username,omitempty"` +// Time zone of the DB instance. timezone is currently +// only supported by Microsoft SQL Server. The timezone can only be set on +// creation. See MSSQL User +// Guide +// for more information. +Timezone *string `json:"timezone,omitempty" tf:"timezone,omitempty"` + +// Username for the master DB user. Cannot be specified for a replica. +Username *string `json:"username,omitempty" tf:"username,omitempty"` } + type InstanceObservation struct { - // The hostname of the RDS instance. See also endpoint and port. - Address *string `json:"address,omitempty" tf:"address,omitempty"` - // The allocated storage in gibibytes. If max_allocated_storage is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If replicate_source_db is set, the value is ignored during the creation of the instance. - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` +// The hostname of the RDS instance. See also endpoint and port. +Address *string `json:"address,omitempty" tf:"address,omitempty"` + +// The allocated storage in gibibytes. If max_allocated_storage is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If replicate_source_db is set, the value is ignored during the creation of the instance. +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Indicates that major version - // upgrades are allowed. Changing this parameter does not result in an outage and - // the change is asynchronously applied as soon as possible. - AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` +// Indicates that major version +// upgrades are allowed. Changing this parameter does not result in an outage and +// the change is asynchronously applied as soon as possible. +AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` - // Specifies whether any database modifications - // are applied immediately, or during the next maintenance window. Default is - // false. See Amazon RDS Documentation for more - // information. - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` +// Specifies whether any database modifications +// are applied immediately, or during the next maintenance window. Default is +// false. See Amazon RDS Documentation for more +// information. +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - // The ARN of the RDS instance. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// The ARN of the RDS instance. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Indicates that minor engine upgrades - // will be applied automatically to the DB instance during the maintenance window. - // Defaults to true. - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` +// Indicates that minor engine upgrades +// will be applied automatically to the DB instance during the maintenance window. +// Defaults to true. +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - // The AZ for the RDS instance. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// The AZ for the RDS instance. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The days to retain backups for. - // Must be between 0 and 35. - // Default is 0. - // Must be greater than 0 if the database is used as a source for a Read Replica, - // uses low-downtime updates, - // or will use RDS Blue/Green deployments. - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` +// The days to retain backups for. +// Must be between 0 and 35. +// Default is 0. +// Must be greater than 0 if the database is used as a source for a Read Replica, +// uses low-downtime updates, +// or will use RDS Blue/Green deployments. +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - // The daily time range (in UTC) during which automated backups are created if they are enabled. - // Example: "09:46-10:16". Must not overlap with maintenance_window. - BackupWindow *string `json:"backupWindow,omitempty" tf:"backup_window,omitempty"` +// The daily time range (in UTC) during which automated backups are created if they are enabled. +// Example: "09:46-10:16". Must not overlap with maintenance_window. +BackupWindow *string `json:"backupWindow,omitempty" tf:"backup_window,omitempty"` - // Enables low-downtime updates using RDS Blue/Green deployments. - // See blue_green_update below - BlueGreenUpdate []BlueGreenUpdateObservation `json:"blueGreenUpdate,omitempty" tf:"blue_green_update,omitempty"` +// Enables low-downtime updates using RDS Blue/Green deployments. +// See blue_green_update below +BlueGreenUpdate []BlueGreenUpdateObservation `json:"blueGreenUpdate,omitempty" tf:"blue_green_update,omitempty"` - // The identifier of the CA certificate for the DB instance. - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` +// The identifier of the CA certificate for the DB instance. +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - // The character set name to use for DB - // encoding in Oracle and Microsoft SQL instances (collation). This can't be changed. See Oracle Character Sets - // Supported in Amazon RDS - // or Server-Level Collation for Microsoft SQL Server for more information. - CharacterSetName *string `json:"characterSetName,omitempty" tf:"character_set_name,omitempty"` +// The character set name to use for DB +// encoding in Oracle and Microsoft SQL instances (collation). This can't be changed. See Oracle Character Sets +// Supported in Amazon RDS +// or Server-Level Collation for Microsoft SQL Server for more information. +CharacterSetName *string `json:"characterSetName,omitempty" tf:"character_set_name,omitempty"` - // – Copy all Instance tags to snapshots. Default is false. - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` +// – Copy all Instance tags to snapshots. Default is false. +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - // The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. - CustomIAMInstanceProfile *string `json:"customIamInstanceProfile,omitempty" tf:"custom_iam_instance_profile,omitempty"` +// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. +CustomIAMInstanceProfile *string `json:"customIamInstanceProfile,omitempty" tf:"custom_iam_instance_profile,omitempty"` - // Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS on Outposts for more information. - CustomerOwnedIPEnabled *bool `json:"customerOwnedIpEnabled,omitempty" tf:"customer_owned_ip_enabled,omitempty"` +// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS on Outposts for more information. +CustomerOwnedIPEnabled *bool `json:"customerOwnedIpEnabled,omitempty" tf:"customer_owned_ip_enabled,omitempty"` - // The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica. - DBName *string `json:"dbName,omitempty" tf:"db_name,omitempty"` +// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica. +DBName *string `json:"dbName,omitempty" tf:"db_name,omitempty"` - // Name of DB subnet group. DB instance will - // be created in the VPC associated with the DB subnet group. If unspecified, will - // be created in the default VPC, or in EC2 Classic, if available. When working - // with read replicas, it should be specified only if the source database - // specifies an instance in another AWS Region. See DBSubnetGroupName in API - // action CreateDBInstanceReadReplica - // for additional read replica contraints. - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` +// Name of DB subnet group. DB instance will +// be created in the VPC associated with the DB subnet group. If unspecified, will +// be created in the default VPC, or in EC2 Classic, if available. When working +// with read replicas, it should be specified only if the source database +// specifies an instance in another AWS Region. See DBSubnetGroupName in API +// action CreateDBInstanceReadReplica +// for additional read replica contraints. +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - // Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is true. - DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty" tf:"delete_automated_backups,omitempty"` +// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is true. +DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty" tf:"delete_automated_backups,omitempty"` - // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` +// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - // The ID of the Directory Service Active Directory domain to create the instance in. - Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` +// The ID of the Directory Service Active Directory domain to create the instance in. +Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` - // The name of the IAM role to be used when making API calls to the Directory Service. - DomainIAMRoleName *string `json:"domainIamRoleName,omitempty" tf:"domain_iam_role_name,omitempty"` +// The name of the IAM role to be used when making API calls to the Directory Service. +DomainIAMRoleName *string `json:"domainIamRoleName,omitempty" tf:"domain_iam_role_name,omitempty"` - // Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` +// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - // The connection endpoint in address:port format. - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// The connection endpoint in address:port format. +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as 5.7 (for 5.7.10). The actual engine version used is returned in the attribute `status.atProvider.engineVersionActual`. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as 5.7 (for 5.7.10). The actual engine version used is returned in the attribute `status.atProvider.engineVersionActual`. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - // The running version of the database. - EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` +// The running version of the database. +EngineVersionActual *string `json:"engineVersionActual,omitempty" tf:"engine_version_actual,omitempty"` - // The name of your final DB snapshot - // when this DB instance is deleted. Must be provided if skip_final_snapshot is - // set to false. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` +// The name of your final DB snapshot +// when this DB instance is deleted. Must be provided if skip_final_snapshot is +// set to false. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - // The canonical hosted zone ID of the DB instance (to be used - // in a Route 53 Alias record). - HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` +// The canonical hosted zone ID of the DB instance (to be used +// in a Route 53 Alias record). +HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` - // Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database - // accounts is enabled. - IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` +// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database +// accounts is enabled. +IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` - // RDS DBI resource ID. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// RDS DBI resource ID. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The instance type of the RDS instance. - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` +// The instance type of the RDS instance. +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - // The amount of provisioned IOPS. Setting this implies a - // storage_type of "io1". Can only be set when storage_type is "io1" or "gp3". - // Cannot be specified for gp3 storage if the allocated_storage value is below a per-engine threshold. - // See the RDS User Guide for details. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// The amount of provisioned IOPS. Setting this implies a +// storage_type of "io1". Can only be set when storage_type is "io1" or "gp3". +// Cannot be specified for gp3 storage if the allocated_storage value is below a per-engine threshold. +// See the RDS User Guide for details. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // The ARN for the KMS encryption key. If creating an - // encrypted replica, set this to the destination KMS ARN. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The ARN for the KMS encryption key. If creating an +// encrypted replica, set this to the destination KMS ARN. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // The latest time, in UTC RFC3339 format, to which a database can be restored with point-in-time restore. - LatestRestorableTime *string `json:"latestRestorableTime,omitempty" tf:"latest_restorable_time,omitempty"` +// The latest time, in UTC RFC3339 format, to which a database can be restored with point-in-time restore. +LatestRestorableTime *string `json:"latestRestorableTime,omitempty" tf:"latest_restorable_time,omitempty"` - // License model information for this DB instance. - LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` +// License model information for this DB instance. +LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` - // Specifies the listener connection endpoint for SQL Server Always On. See endpoint below. - ListenerEndpoint []ListenerEndpointObservation `json:"listenerEndpoint,omitempty" tf:"listener_endpoint,omitempty"` +// Specifies the listener connection endpoint for SQL Server Always On. See endpoint below. +ListenerEndpoint []ListenerEndpointObservation `json:"listenerEndpoint,omitempty" tf:"listener_endpoint,omitempty"` - // The window to perform maintenance in. - // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See RDS - // Maintenance Window - // docs - // for more information. - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` +// The window to perform maintenance in. +// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See RDS +// Maintenance Window +// docs +// for more information. +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if password is provided. - ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` +// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if password is provided. +ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` - // A block that specifies the master user secret. Only available when manage_master_user_password is set to true. Documented below. - MasterUserSecret []MasterUserSecretObservation `json:"masterUserSecret,omitempty" tf:"master_user_secret,omitempty"` +// A block that specifies the master user secret. Only available when manage_master_user_password is set to true. Documented below. +MasterUserSecret []MasterUserSecretObservation `json:"masterUserSecret,omitempty" tf:"master_user_secret,omitempty"` - // The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. - MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` +// The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. +MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` - // When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to allocated_storage. Must be greater than or equal to allocated_storage or 0 to disable Storage Autoscaling. - MaxAllocatedStorage *float64 `json:"maxAllocatedStorage,omitempty" tf:"max_allocated_storage,omitempty"` +// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to allocated_storage. Must be greater than or equal to allocated_storage or 0 to disable Storage Autoscaling. +MaxAllocatedStorage *float64 `json:"maxAllocatedStorage,omitempty" tf:"max_allocated_storage,omitempty"` - // The interval, in seconds, between points - // when Enhanced Monitoring metrics are collected for the DB instance. To disable - // collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid - // Values: 0, 1, 5, 10, 15, 30, 60. - MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` +// The interval, in seconds, between points +// when Enhanced Monitoring metrics are collected for the DB instance. To disable +// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid +// Values: 0, 1, 5, 10, 15, 30, 60. +MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` - // The ARN for the IAM role that permits RDS - // to send enhanced monitoring metrics to CloudWatch Logs. You can find more - // information on the AWS - // Documentation - // what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. - MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` +// The ARN for the IAM role that permits RDS +// to send enhanced monitoring metrics to CloudWatch Logs. You can find more +// information on the AWS +// Documentation +// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. +MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` - // Specifies if the RDS instance is multi-AZ - MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` +// Specifies if the RDS instance is multi-AZ +MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` - // The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See Oracle Character Sets - // Supported in Amazon RDS. - NcharCharacterSetName *string `json:"ncharCharacterSetName,omitempty" tf:"nchar_character_set_name,omitempty"` +// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See Oracle Character Sets +// Supported in Amazon RDS. +NcharCharacterSetName *string `json:"ncharCharacterSetName,omitempty" tf:"nchar_character_set_name,omitempty"` - // The network type of the DB instance. Valid values: IPV4, DUAL. - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` +// The network type of the DB instance. Valid values: IPV4, DUAL. +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - // Name of the DB option group to associate. - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` +// Name of the DB option group to associate. +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - // Name of the DB parameter group to - // associate. - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` +// Name of the DB parameter group to +// associate. +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - // Specifies whether Performance Insights are enabled. Defaults to false. - PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` +// Specifies whether Performance Insights are enabled. Defaults to false. +PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` - // The ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. Once KMS key is set, it can never be changed. - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` +// The ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. Once KMS key is set, it can never be changed. +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - // Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. - PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` +// Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. +PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` - // The port on which the DB accepts connections. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // Bool to control if instance is publicly - // accessible. Default is false. - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - - // Specifies whether the replica is in either mounted or open-read-only mode. This attribute - // is only supported by Oracle instances. Oracle replicas operate in open-read-only mode unless otherwise specified. See Working with Oracle Read Replicas for more information. - ReplicaMode *string `json:"replicaMode,omitempty" tf:"replica_mode,omitempty"` - - Replicas []*string `json:"replicas,omitempty" tf:"replicas,omitempty"` +// The port on which the DB accepts connections. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// Bool to control if instance is publicly +// accessible. Default is false. +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` + +// Specifies whether the replica is in either mounted or open-read-only mode. This attribute +// is only supported by Oracle instances. Oracle replicas operate in open-read-only mode unless otherwise specified. See Working with Oracle Read Replicas for more information. +ReplicaMode *string `json:"replicaMode,omitempty" tf:"replica_mode,omitempty"` + +Replicas []*string `json:"replicas,omitempty" tf:"replicas,omitempty"` - // Specifies that this resource is a Replicate - // database, and to use this value as the source database. This correlates to the - // identifier of another Amazon RDS Database to replicate (if replicating within - // a single region) or ARN of the Amazon RDS Database to replicate (if replicating - // cross-region). Note that if you are - // creating a cross-region replica of an encrypted database you will also need to - // specify a kms_key_id. See DB Instance Replication and Working with - // PostgreSQL and MySQL Read Replicas - // for more information on using Replication. - ReplicateSourceDB *string `json:"replicateSourceDb,omitempty" tf:"replicate_source_db,omitempty"` - - // The RDS Resource ID of this instance. - ResourceID *string `json:"resourceId,omitempty" tf:"resource_id,omitempty"` - - // A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details. - RestoreToPointInTime []RestoreToPointInTimeObservation `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` - - // Restore from a Percona Xtrabackup in S3. See Importing Data into an Amazon RDS MySQL DB Instance - S3Import []S3ImportObservation `json:"s3Import,omitempty" tf:"s3_import,omitempty"` +// Specifies that this resource is a Replicate +// database, and to use this value as the source database. This correlates to the +// identifier of another Amazon RDS Database to replicate (if replicating within +// a single region) or ARN of the Amazon RDS Database to replicate (if replicating +// cross-region). Note that if you are +// creating a cross-region replica of an encrypted database you will also need to +// specify a kms_key_id. See DB Instance Replication and Working with +// PostgreSQL and MySQL Read Replicas +// for more information on using Replication. +ReplicateSourceDB *string `json:"replicateSourceDb,omitempty" tf:"replicate_source_db,omitempty"` + +// The RDS Resource ID of this instance. +ResourceID *string `json:"resourceId,omitempty" tf:"resource_id,omitempty"` + +// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details. +RestoreToPointInTime []RestoreToPointInTimeObservation `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` + +// Restore from a Percona Xtrabackup in S3. See Importing Data into an Amazon RDS MySQL DB Instance +S3Import []S3ImportObservation `json:"s3Import,omitempty" tf:"s3_import,omitempty"` - // Determines whether a final DB snapshot is - // created before the DB instance is deleted. If true is specified, no DBSnapshot - // is created. If false is specified, a DB snapshot is created before the DB - // instance is deleted, using the value from final_snapshot_identifier. Default - // is false. - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - - // Specifies whether or not to create this - // database from a snapshot. This correlates to the snapshot ID you'd find in the - // RDS console, e.g: rds:production-2015-06-26-06-05. - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - - // The RDS instance status. - Status *string `json:"status,omitempty" tf:"status,omitempty"` +// Determines whether a final DB snapshot is +// created before the DB instance is deleted. If true is specified, no DBSnapshot +// is created. If false is specified, a DB snapshot is created before the DB +// instance is deleted, using the value from final_snapshot_identifier. Default +// is false. +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` + +// Specifies whether or not to create this +// database from a snapshot. This correlates to the snapshot ID you'd find in the +// RDS console, e.g: rds:production-2015-06-26-06-05. +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` + +// The RDS instance status. +Status *string `json:"status,omitempty" tf:"status,omitempty"` - // Specifies whether the DB instance is - // encrypted. Note that if you are creating a cross-region read replica this field - // is ignored and you should instead declare kms_key_id with a valid ARN. The - // default is false if not specified. - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - - // The storage throughput value for the DB instance. Can only be set when storage_type is "gp3". Cannot be specified if the allocated_storage value is below a per-engine threshold. See the RDS User Guide for details. - StorageThroughput *float64 `json:"storageThroughput,omitempty" tf:"storage_throughput,omitempty"` - - // One of "standard" (magnetic), "gp2" (general - // purpose SSD), "gp3" (general purpose SSD that needs iops independently) - // or "io1" (provisioned IOPS SSD). The default is "io1" if iops is specified, - // "gp2" if not. - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // Time zone of the DB instance. timezone is currently - // only supported by Microsoft SQL Server. The timezone can only be set on - // creation. See MSSQL User - // Guide - // for more information. - Timezone *string `json:"timezone,omitempty" tf:"timezone,omitempty"` +// Specifies whether the DB instance is +// encrypted. Note that if you are creating a cross-region read replica this field +// is ignored and you should instead declare kms_key_id with a valid ARN. The +// default is false if not specified. +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` + +// The storage throughput value for the DB instance. Can only be set when storage_type is "gp3". Cannot be specified if the allocated_storage value is below a per-engine threshold. See the RDS User Guide for details. +StorageThroughput *float64 `json:"storageThroughput,omitempty" tf:"storage_throughput,omitempty"` + +// One of "standard" (magnetic), "gp2" (general +// purpose SSD), "gp3" (general purpose SSD that needs iops independently) +// or "io1" (provisioned IOPS SSD). The default is "io1" if iops is specified, +// "gp2" if not. +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Time zone of the DB instance. timezone is currently +// only supported by Microsoft SQL Server. The timezone can only be set on +// creation. See MSSQL User +// Guide +// for more information. +Timezone *string `json:"timezone,omitempty" tf:"timezone,omitempty"` - // Username for the master DB user. Cannot be specified for a replica. - Username *string `json:"username,omitempty" tf:"username,omitempty"` - - // List of VPC security groups to - // associate. - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` +// Username for the master DB user. Cannot be specified for a replica. +Username *string `json:"username,omitempty" tf:"username,omitempty"` + +// List of VPC security groups to +// associate. +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` } + type InstanceParameters struct { - // The allocated storage in gibibytes. If max_allocated_storage is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If replicate_source_db is set, the value is ignored during the creation of the instance. - // +kubebuilder:validation:Optional - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - - // Indicates that major version - // upgrades are allowed. Changing this parameter does not result in an outage and - // the change is asynchronously applied as soon as possible. - // +kubebuilder:validation:Optional - AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` - - // Specifies whether any database modifications - // are applied immediately, or during the next maintenance window. Default is - // false. See Amazon RDS Documentation for more - // information. - // +kubebuilder:validation:Optional - ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` - - // Password for the master DB user. Note that this may show up in - // logs, and it will be stored in the state file. Cannot be set if manage_master_user_password is set to true. - // If true, the password will be auto-generated and stored in the Secret referenced by the passwordSecretRef field. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - AutoGeneratePassword *bool `json:"autoGeneratePassword,omitempty" tf:"-"` - - // Indicates that minor engine upgrades - // will be applied automatically to the DB instance during the maintenance window. - // Defaults to true. - // +kubebuilder:validation:Optional - AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` - - // The AZ for the RDS instance. - // +kubebuilder:validation:Optional - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - - // The days to retain backups for. - // Must be between 0 and 35. - // Default is 0. - // Must be greater than 0 if the database is used as a source for a Read Replica, - // uses low-downtime updates, - // or will use RDS Blue/Green deployments. - // +kubebuilder:validation:Optional - BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` - - // The daily time range (in UTC) during which automated backups are created if they are enabled. - // Example: "09:46-10:16". Must not overlap with maintenance_window. - // +kubebuilder:validation:Optional - BackupWindow *string `json:"backupWindow,omitempty" tf:"backup_window,omitempty"` - - // Enables low-downtime updates using RDS Blue/Green deployments. - // See blue_green_update below - // +kubebuilder:validation:Optional - BlueGreenUpdate []BlueGreenUpdateParameters `json:"blueGreenUpdate,omitempty" tf:"blue_green_update,omitempty"` - - // The identifier of the CA certificate for the DB instance. - // +kubebuilder:validation:Optional - CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` - - // The character set name to use for DB - // encoding in Oracle and Microsoft SQL instances (collation). This can't be changed. See Oracle Character Sets - // Supported in Amazon RDS - // or Server-Level Collation for Microsoft SQL Server for more information. - // +kubebuilder:validation:Optional - CharacterSetName *string `json:"characterSetName,omitempty" tf:"character_set_name,omitempty"` - - // – Copy all Instance tags to snapshots. Default is false. - // +kubebuilder:validation:Optional - CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` - - // The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. - // +kubebuilder:validation:Optional - CustomIAMInstanceProfile *string `json:"customIamInstanceProfile,omitempty" tf:"custom_iam_instance_profile,omitempty"` - - // Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS on Outposts for more information. - // +kubebuilder:validation:Optional - CustomerOwnedIPEnabled *bool `json:"customerOwnedIpEnabled,omitempty" tf:"customer_owned_ip_enabled,omitempty"` - - // The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica. - // +kubebuilder:validation:Optional - DBName *string `json:"dbName,omitempty" tf:"db_name,omitempty"` - - // Name of DB subnet group. DB instance will - // be created in the VPC associated with the DB subnet group. If unspecified, will - // be created in the default VPC, or in EC2 Classic, if available. When working - // with read replicas, it should be specified only if the source database - // specifies an instance in another AWS Region. See DBSubnetGroupName in API - // action CreateDBInstanceReadReplica - // for additional read replica contraints. - // +crossplane:generate:reference:type=SubnetGroup - // +kubebuilder:validation:Optional - DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` - - // Reference to a SubnetGroup to populate dbSubnetGroupName. - // +kubebuilder:validation:Optional - DBSubnetGroupNameRef *v1.Reference `json:"dbSubnetGroupNameRef,omitempty" tf:"-"` - - // Selector for a SubnetGroup to populate dbSubnetGroupName. - // +kubebuilder:validation:Optional - DBSubnetGroupNameSelector *v1.Selector `json:"dbSubnetGroupNameSelector,omitempty" tf:"-"` - - // Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is true. - // +kubebuilder:validation:Optional - DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty" tf:"delete_automated_backups,omitempty"` - - // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. - // +kubebuilder:validation:Optional - DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` - - // The ID of the Directory Service Active Directory domain to create the instance in. - // +kubebuilder:validation:Optional - Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` - - // The name of the IAM role to be used when making API calls to the Directory Service. - // +kubebuilder:validation:Optional - DomainIAMRoleName *string `json:"domainIamRoleName,omitempty" tf:"domain_iam_role_name,omitempty"` - - // Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. - // +kubebuilder:validation:Optional - EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` - - // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). - // +kubebuilder:validation:Optional - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as 5.7 (for 5.7.10). The actual engine version used is returned in the attribute `status.atProvider.engineVersionActual`. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. - // +kubebuilder:validation:Optional - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - - // The name of your final DB snapshot - // when this DB instance is deleted. Must be provided if skip_final_snapshot is - // set to false. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. - // +kubebuilder:validation:Optional - FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` - - // Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database - // accounts is enabled. - // +kubebuilder:validation:Optional - IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` - - // The instance type of the RDS instance. - // +kubebuilder:validation:Optional - InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` - - // The amount of provisioned IOPS. Setting this implies a - // storage_type of "io1". Can only be set when storage_type is "io1" or "gp3". - // Cannot be specified for gp3 storage if the allocated_storage value is below a per-engine threshold. - // See the RDS User Guide for details. - // +kubebuilder:validation:Optional - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - - // The ARN for the KMS encryption key. If creating an - // encrypted replica, set this to the destination KMS ARN. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - - // License model information for this DB instance. - // +kubebuilder:validation:Optional - LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` - - // The window to perform maintenance in. - // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See RDS - // Maintenance Window - // docs - // for more information. - // +kubebuilder:validation:Optional - MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` - - // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if password is provided. - // +kubebuilder:validation:Optional - ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` - - // The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("key_id",true) - // +kubebuilder:validation:Optional - MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` - - // Reference to a Key in kms to populate masterUserSecretKmsKeyId. - // +kubebuilder:validation:Optional - MasterUserSecretKMSKeyIDRef *v1.Reference `json:"masterUserSecretKmsKeyIdRef,omitempty" tf:"-"` - - // Selector for a Key in kms to populate masterUserSecretKmsKeyId. - // +kubebuilder:validation:Optional - MasterUserSecretKMSKeyIDSelector *v1.Selector `json:"masterUserSecretKmsKeyIdSelector,omitempty" tf:"-"` - - // When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to allocated_storage. Must be greater than or equal to allocated_storage or 0 to disable Storage Autoscaling. - // +kubebuilder:validation:Optional - MaxAllocatedStorage *float64 `json:"maxAllocatedStorage,omitempty" tf:"max_allocated_storage,omitempty"` - - // The interval, in seconds, between points - // when Enhanced Monitoring metrics are collected for the DB instance. To disable - // collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid - // Values: 0, 1, 5, 10, 15, 30, 60. - // +kubebuilder:validation:Optional - MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` - - // The ARN for the IAM role that permits RDS - // to send enhanced monitoring metrics to CloudWatch Logs. You can find more - // information on the AWS - // Documentation - // what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` - - // Reference to a Role in iam to populate monitoringRoleArn. - // +kubebuilder:validation:Optional - MonitoringRoleArnRef *v1.Reference `json:"monitoringRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate monitoringRoleArn. - // +kubebuilder:validation:Optional - MonitoringRoleArnSelector *v1.Selector `json:"monitoringRoleArnSelector,omitempty" tf:"-"` - - // Specifies if the RDS instance is multi-AZ - // +kubebuilder:validation:Optional - MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` - - // The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See Oracle Character Sets - // Supported in Amazon RDS. - // +kubebuilder:validation:Optional - NcharCharacterSetName *string `json:"ncharCharacterSetName,omitempty" tf:"nchar_character_set_name,omitempty"` - - // The network type of the DB instance. Valid values: IPV4, DUAL. - // +kubebuilder:validation:Optional - NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` - - // Name of the DB option group to associate. - // +kubebuilder:validation:Optional - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - - // Name of the DB parameter group to - // associate. - // +kubebuilder:validation:Optional - ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` - - // Password for the master DB user. Note that this may show up in - // logs, and it will be stored in the state file. Cannot be set if manage_master_user_password is set to true. - // Password for the master DB user. If you set autoGeneratePassword to true, the Secret referenced here will be created or updated with generated password if it does not already contain one. - // +kubebuilder:validation:Optional - PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` - - // Specifies whether Performance Insights are enabled. Defaults to false. - // +kubebuilder:validation:Optional - PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` - - // The ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. Once KMS key is set, it can never be changed. - // +kubebuilder:validation:Optional - PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` - - // Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. - // +kubebuilder:validation:Optional - PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` - - // The port on which the DB accepts connections. - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // Bool to control if instance is publicly - // accessible. Default is false. - // +kubebuilder:validation:Optional - PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Specifies whether the replica is in either mounted or open-read-only mode. This attribute - // is only supported by Oracle instances. Oracle replicas operate in open-read-only mode unless otherwise specified. See Working with Oracle Read Replicas for more information. - // +kubebuilder:validation:Optional - ReplicaMode *string `json:"replicaMode,omitempty" tf:"replica_mode,omitempty"` - - // Specifies that this resource is a Replicate - // database, and to use this value as the source database. This correlates to the - // identifier of another Amazon RDS Database to replicate (if replicating within - // a single region) or ARN of the Amazon RDS Database to replicate (if replicating - // cross-region). Note that if you are - // creating a cross-region replica of an encrypted database you will also need to - // specify a kms_key_id. See DB Instance Replication and Working with - // PostgreSQL and MySQL Read Replicas - // for more information on using Replication. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance - // +kubebuilder:validation:Optional - ReplicateSourceDB *string `json:"replicateSourceDb,omitempty" tf:"replicate_source_db,omitempty"` - - // Reference to a Instance in rds to populate replicateSourceDb. - // +kubebuilder:validation:Optional - ReplicateSourceDBRef *v1.Reference `json:"replicateSourceDbRef,omitempty" tf:"-"` - - // Selector for a Instance in rds to populate replicateSourceDb. - // +kubebuilder:validation:Optional - ReplicateSourceDBSelector *v1.Selector `json:"replicateSourceDbSelector,omitempty" tf:"-"` - - // A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details. - // +kubebuilder:validation:Optional - RestoreToPointInTime []RestoreToPointInTimeParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` - - // Restore from a Percona Xtrabackup in S3. See Importing Data into an Amazon RDS MySQL DB Instance - // +kubebuilder:validation:Optional - S3Import []S3ImportParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` - - // Determines whether a final DB snapshot is - // created before the DB instance is deleted. If true is specified, no DBSnapshot - // is created. If false is specified, a DB snapshot is created before the DB - // instance is deleted, using the value from final_snapshot_identifier. Default - // is false. - // +kubebuilder:validation:Optional - SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` - - // Specifies whether or not to create this - // database from a snapshot. This correlates to the snapshot ID you'd find in the - // RDS console, e.g: rds:production-2015-06-26-06-05. - // +kubebuilder:validation:Optional - SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` - - // Specifies whether the DB instance is - // encrypted. Note that if you are creating a cross-region read replica this field - // is ignored and you should instead declare kms_key_id with a valid ARN. The - // default is false if not specified. - // +kubebuilder:validation:Optional - StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` - - // The storage throughput value for the DB instance. Can only be set when storage_type is "gp3". Cannot be specified if the allocated_storage value is below a per-engine threshold. See the RDS User Guide for details. - // +kubebuilder:validation:Optional - StorageThroughput *float64 `json:"storageThroughput,omitempty" tf:"storage_throughput,omitempty"` - - // One of "standard" (magnetic), "gp2" (general - // purpose SSD), "gp3" (general purpose SSD that needs iops independently) - // or "io1" (provisioned IOPS SSD). The default is "io1" if iops is specified, - // "gp2" if not. - // +kubebuilder:validation:Optional - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // Time zone of the DB instance. timezone is currently - // only supported by Microsoft SQL Server. The timezone can only be set on - // creation. See MSSQL User - // Guide - // for more information. - // +kubebuilder:validation:Optional - Timezone *string `json:"timezone,omitempty" tf:"timezone,omitempty"` - - // Username for the master DB user. Cannot be specified for a replica. - // +kubebuilder:validation:Optional - Username *string `json:"username,omitempty" tf:"username,omitempty"` - - // References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` - - // List of VPC security groups to - // associate. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector - // +kubebuilder:validation:Optional - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` + +// The allocated storage in gibibytes. If max_allocated_storage is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If replicate_source_db is set, the value is ignored during the creation of the instance. +// +kubebuilder:validation:Optional +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` + +// Indicates that major version +// upgrades are allowed. Changing this parameter does not result in an outage and +// the change is asynchronously applied as soon as possible. +// +kubebuilder:validation:Optional +AllowMajorVersionUpgrade *bool `json:"allowMajorVersionUpgrade,omitempty" tf:"allow_major_version_upgrade,omitempty"` + +// Specifies whether any database modifications +// are applied immediately, or during the next maintenance window. Default is +// false. See Amazon RDS Documentation for more +// information. +// +kubebuilder:validation:Optional +ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` + +// Password for the master DB user. Note that this may show up in +// logs, and it will be stored in the state file. Cannot be set if manage_master_user_password is set to true. +// If true, the password will be auto-generated and stored in the Secret referenced by the passwordSecretRef field. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +AutoGeneratePassword *bool `json:"autoGeneratePassword,omitempty" tf:"-"` + +// Indicates that minor engine upgrades +// will be applied automatically to the DB instance during the maintenance window. +// Defaults to true. +// +kubebuilder:validation:Optional +AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty" tf:"auto_minor_version_upgrade,omitempty"` + +// The AZ for the RDS instance. +// +kubebuilder:validation:Optional +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + +// The days to retain backups for. +// Must be between 0 and 35. +// Default is 0. +// Must be greater than 0 if the database is used as a source for a Read Replica, +// uses low-downtime updates, +// or will use RDS Blue/Green deployments. +// +kubebuilder:validation:Optional +BackupRetentionPeriod *float64 `json:"backupRetentionPeriod,omitempty" tf:"backup_retention_period,omitempty"` + +// The daily time range (in UTC) during which automated backups are created if they are enabled. +// Example: "09:46-10:16". Must not overlap with maintenance_window. +// +kubebuilder:validation:Optional +BackupWindow *string `json:"backupWindow,omitempty" tf:"backup_window,omitempty"` + +// Enables low-downtime updates using RDS Blue/Green deployments. +// See blue_green_update below +// +kubebuilder:validation:Optional +BlueGreenUpdate []BlueGreenUpdateParameters `json:"blueGreenUpdate,omitempty" tf:"blue_green_update,omitempty"` + +// The identifier of the CA certificate for the DB instance. +// +kubebuilder:validation:Optional +CACertIdentifier *string `json:"caCertIdentifier,omitempty" tf:"ca_cert_identifier,omitempty"` + +// The character set name to use for DB +// encoding in Oracle and Microsoft SQL instances (collation). This can't be changed. See Oracle Character Sets +// Supported in Amazon RDS +// or Server-Level Collation for Microsoft SQL Server for more information. +// +kubebuilder:validation:Optional +CharacterSetName *string `json:"characterSetName,omitempty" tf:"character_set_name,omitempty"` + +// – Copy all Instance tags to snapshots. Default is false. +// +kubebuilder:validation:Optional +CopyTagsToSnapshot *bool `json:"copyTagsToSnapshot,omitempty" tf:"copy_tags_to_snapshot,omitempty"` + +// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. +// +kubebuilder:validation:Optional +CustomIAMInstanceProfile *string `json:"customIamInstanceProfile,omitempty" tf:"custom_iam_instance_profile,omitempty"` + +// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See CoIP for RDS on Outposts for more information. +// +kubebuilder:validation:Optional +CustomerOwnedIPEnabled *bool `json:"customerOwnedIpEnabled,omitempty" tf:"customer_owned_ip_enabled,omitempty"` + +// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the AWS documentation for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica. +// +kubebuilder:validation:Optional +DBName *string `json:"dbName,omitempty" tf:"db_name,omitempty"` + +// Name of DB subnet group. DB instance will +// be created in the VPC associated with the DB subnet group. If unspecified, will +// be created in the default VPC, or in EC2 Classic, if available. When working +// with read replicas, it should be specified only if the source database +// specifies an instance in another AWS Region. See DBSubnetGroupName in API +// action CreateDBInstanceReadReplica +// for additional read replica contraints. +// +crossplane:generate:reference:type=SubnetGroup +// +kubebuilder:validation:Optional +DBSubnetGroupName *string `json:"dbSubnetGroupName,omitempty" tf:"db_subnet_group_name,omitempty"` + +// Reference to a SubnetGroup to populate dbSubnetGroupName. +// +kubebuilder:validation:Optional +DBSubnetGroupNameRef *v1.Reference `json:"dbSubnetGroupNameRef,omitempty" tf:"-"` + +// Selector for a SubnetGroup to populate dbSubnetGroupName. +// +kubebuilder:validation:Optional +DBSubnetGroupNameSelector *v1.Selector `json:"dbSubnetGroupNameSelector,omitempty" tf:"-"` + +// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is true. +// +kubebuilder:validation:Optional +DeleteAutomatedBackups *bool `json:"deleteAutomatedBackups,omitempty" tf:"delete_automated_backups,omitempty"` + +// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false. +// +kubebuilder:validation:Optional +DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` + +// The ID of the Directory Service Active Directory domain to create the instance in. +// +kubebuilder:validation:Optional +Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + +// The name of the IAM role to be used when making API calls to the Directory Service. +// +kubebuilder:validation:Optional +DomainIAMRoleName *string `json:"domainIamRoleName,omitempty" tf:"domain_iam_role_name,omitempty"` + +// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine). MySQL and MariaDB: audit, error, general, slowquery. PostgreSQL: postgresql, upgrade. MSSQL: agent , error. Oracle: alert, audit, listener, trace. +// +kubebuilder:validation:Optional +EnabledCloudwatchLogsExports []*string `json:"enabledCloudwatchLogsExports,omitempty" tf:"enabled_cloudwatch_logs_exports,omitempty"` + +// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine'. For information on the difference between the available Aurora MySQL engines see Comparison in the [Amazon RDS Release Notes](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html). +// +kubebuilder:validation:Optional +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + +// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as 5.7 (for 5.7.10). The actual engine version used is returned in the attribute `status.atProvider.engineVersionActual`. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the [DB Cluster](https://marketplace.kubedb.com/providers/kubedb.dev/provider-aws/latest/resources/rds.aws.kubedb.com/Cluster/v1alpha1)'s engine version'. +// +kubebuilder:validation:Optional +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + +// The name of your final DB snapshot +// when this DB instance is deleted. Must be provided if skip_final_snapshot is +// set to false. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. +// +kubebuilder:validation:Optional +FinalSnapshotIdentifier *string `json:"finalSnapshotIdentifier,omitempty" tf:"final_snapshot_identifier,omitempty"` + +// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database +// accounts is enabled. +// +kubebuilder:validation:Optional +IAMDatabaseAuthenticationEnabled *bool `json:"iamDatabaseAuthenticationEnabled,omitempty" tf:"iam_database_authentication_enabled,omitempty"` + +// The instance type of the RDS instance. +// +kubebuilder:validation:Optional +InstanceClass *string `json:"instanceClass,omitempty" tf:"instance_class,omitempty"` + +// The amount of provisioned IOPS. Setting this implies a +// storage_type of "io1". Can only be set when storage_type is "io1" or "gp3". +// Cannot be specified for gp3 storage if the allocated_storage value is below a per-engine threshold. +// See the RDS User Guide for details. +// +kubebuilder:validation:Optional +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` + +// The ARN for the KMS encryption key. If creating an +// encrypted replica, set this to the destination KMS ARN. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + +// License model information for this DB instance. +// +kubebuilder:validation:Optional +LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` + +// The window to perform maintenance in. +// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See RDS +// Maintenance Window +// docs +// for more information. +// +kubebuilder:validation:Optional +MaintenanceWindow *string `json:"maintenanceWindow,omitempty" tf:"maintenance_window,omitempty"` + +// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if password is provided. +// +kubebuilder:validation:Optional +ManageMasterUserPassword *bool `json:"manageMasterUserPassword,omitempty" tf:"manage_master_user_password,omitempty"` + +// The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("key_id",true) +// +kubebuilder:validation:Optional +MasterUserSecretKMSKeyID *string `json:"masterUserSecretKmsKeyId,omitempty" tf:"master_user_secret_kms_key_id,omitempty"` + +// Reference to a Key in kms to populate masterUserSecretKmsKeyId. +// +kubebuilder:validation:Optional +MasterUserSecretKMSKeyIDRef *v1.Reference `json:"masterUserSecretKmsKeyIdRef,omitempty" tf:"-"` + +// Selector for a Key in kms to populate masterUserSecretKmsKeyId. +// +kubebuilder:validation:Optional +MasterUserSecretKMSKeyIDSelector *v1.Selector `json:"masterUserSecretKmsKeyIdSelector,omitempty" tf:"-"` + +// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to allocated_storage. Must be greater than or equal to allocated_storage or 0 to disable Storage Autoscaling. +// +kubebuilder:validation:Optional +MaxAllocatedStorage *float64 `json:"maxAllocatedStorage,omitempty" tf:"max_allocated_storage,omitempty"` + +// The interval, in seconds, between points +// when Enhanced Monitoring metrics are collected for the DB instance. To disable +// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid +// Values: 0, 1, 5, 10, 15, 30, 60. +// +kubebuilder:validation:Optional +MonitoringInterval *float64 `json:"monitoringInterval,omitempty" tf:"monitoring_interval,omitempty"` + +// The ARN for the IAM role that permits RDS +// to send enhanced monitoring metrics to CloudWatch Logs. You can find more +// information on the AWS +// Documentation +// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +MonitoringRoleArn *string `json:"monitoringRoleArn,omitempty" tf:"monitoring_role_arn,omitempty"` + +// Reference to a Role in iam to populate monitoringRoleArn. +// +kubebuilder:validation:Optional +MonitoringRoleArnRef *v1.Reference `json:"monitoringRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate monitoringRoleArn. +// +kubebuilder:validation:Optional +MonitoringRoleArnSelector *v1.Selector `json:"monitoringRoleArnSelector,omitempty" tf:"-"` + +// Specifies if the RDS instance is multi-AZ +// +kubebuilder:validation:Optional +MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` + +// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See Oracle Character Sets +// Supported in Amazon RDS. +// +kubebuilder:validation:Optional +NcharCharacterSetName *string `json:"ncharCharacterSetName,omitempty" tf:"nchar_character_set_name,omitempty"` + +// The network type of the DB instance. Valid values: IPV4, DUAL. +// +kubebuilder:validation:Optional +NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + +// Name of the DB option group to associate. +// +kubebuilder:validation:Optional +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` + +// Name of the DB parameter group to +// associate. +// +kubebuilder:validation:Optional +ParameterGroupName *string `json:"parameterGroupName,omitempty" tf:"parameter_group_name,omitempty"` + +// Password for the master DB user. Note that this may show up in +// logs, and it will be stored in the state file. Cannot be set if manage_master_user_password is set to true. +// Password for the master DB user. If you set autoGeneratePassword to true, the Secret referenced here will be created or updated with generated password if it does not already contain one. +// +kubebuilder:validation:Optional +PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + +// Specifies whether Performance Insights are enabled. Defaults to false. +// +kubebuilder:validation:Optional +PerformanceInsightsEnabled *bool `json:"performanceInsightsEnabled,omitempty" tf:"performance_insights_enabled,omitempty"` + +// The ARN for the KMS key to encrypt Performance Insights data. When specifying performance_insights_kms_key_id, performance_insights_enabled needs to be set to true. Once KMS key is set, it can never be changed. +// +kubebuilder:validation:Optional +PerformanceInsightsKMSKeyID *string `json:"performanceInsightsKmsKeyId,omitempty" tf:"performance_insights_kms_key_id,omitempty"` + +// Amount of time in days to retain Performance Insights data. Valid values are 7, 731 (2 years) or a multiple of 31. When specifying performance_insights_retention_period, performance_insights_enabled needs to be set to true. Defaults to '7'. +// +kubebuilder:validation:Optional +PerformanceInsightsRetentionPeriod *float64 `json:"performanceInsightsRetentionPeriod,omitempty" tf:"performance_insights_retention_period,omitempty"` + +// The port on which the DB accepts connections. +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + +// Bool to control if instance is publicly +// accessible. Default is false. +// +kubebuilder:validation:Optional +PubliclyAccessible *bool `json:"publiclyAccessible,omitempty" tf:"publicly_accessible,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Specifies whether the replica is in either mounted or open-read-only mode. This attribute +// is only supported by Oracle instances. Oracle replicas operate in open-read-only mode unless otherwise specified. See Working with Oracle Read Replicas for more information. +// +kubebuilder:validation:Optional +ReplicaMode *string `json:"replicaMode,omitempty" tf:"replica_mode,omitempty"` + +// Specifies that this resource is a Replicate +// database, and to use this value as the source database. This correlates to the +// identifier of another Amazon RDS Database to replicate (if replicating within +// a single region) or ARN of the Amazon RDS Database to replicate (if replicating +// cross-region). Note that if you are +// creating a cross-region replica of an encrypted database you will also need to +// specify a kms_key_id. See DB Instance Replication and Working with +// PostgreSQL and MySQL Read Replicas +// for more information on using Replication. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance +// +kubebuilder:validation:Optional +ReplicateSourceDB *string `json:"replicateSourceDb,omitempty" tf:"replicate_source_db,omitempty"` + +// Reference to a Instance in rds to populate replicateSourceDb. +// +kubebuilder:validation:Optional +ReplicateSourceDBRef *v1.Reference `json:"replicateSourceDbRef,omitempty" tf:"-"` + +// Selector for a Instance in rds to populate replicateSourceDb. +// +kubebuilder:validation:Optional +ReplicateSourceDBSelector *v1.Selector `json:"replicateSourceDbSelector,omitempty" tf:"-"` + +// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the identifier argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details. +// +kubebuilder:validation:Optional +RestoreToPointInTime []RestoreToPointInTimeParameters `json:"restoreToPointInTime,omitempty" tf:"restore_to_point_in_time,omitempty"` + +// Restore from a Percona Xtrabackup in S3. See Importing Data into an Amazon RDS MySQL DB Instance +// +kubebuilder:validation:Optional +S3Import []S3ImportParameters `json:"s3Import,omitempty" tf:"s3_import,omitempty"` + +// Determines whether a final DB snapshot is +// created before the DB instance is deleted. If true is specified, no DBSnapshot +// is created. If false is specified, a DB snapshot is created before the DB +// instance is deleted, using the value from final_snapshot_identifier. Default +// is false. +// +kubebuilder:validation:Optional +SkipFinalSnapshot *bool `json:"skipFinalSnapshot,omitempty" tf:"skip_final_snapshot,omitempty"` + +// Specifies whether or not to create this +// database from a snapshot. This correlates to the snapshot ID you'd find in the +// RDS console, e.g: rds:production-2015-06-26-06-05. +// +kubebuilder:validation:Optional +SnapshotIdentifier *string `json:"snapshotIdentifier,omitempty" tf:"snapshot_identifier,omitempty"` + +// Specifies whether the DB instance is +// encrypted. Note that if you are creating a cross-region read replica this field +// is ignored and you should instead declare kms_key_id with a valid ARN. The +// default is false if not specified. +// +kubebuilder:validation:Optional +StorageEncrypted *bool `json:"storageEncrypted,omitempty" tf:"storage_encrypted,omitempty"` + +// The storage throughput value for the DB instance. Can only be set when storage_type is "gp3". Cannot be specified if the allocated_storage value is below a per-engine threshold. See the RDS User Guide for details. +// +kubebuilder:validation:Optional +StorageThroughput *float64 `json:"storageThroughput,omitempty" tf:"storage_throughput,omitempty"` + +// One of "standard" (magnetic), "gp2" (general +// purpose SSD), "gp3" (general purpose SSD that needs iops independently) +// or "io1" (provisioned IOPS SSD). The default is "io1" if iops is specified, +// "gp2" if not. +// +kubebuilder:validation:Optional +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Time zone of the DB instance. timezone is currently +// only supported by Microsoft SQL Server. The timezone can only be set on +// creation. See MSSQL User +// Guide +// for more information. +// +kubebuilder:validation:Optional +Timezone *string `json:"timezone,omitempty" tf:"timezone,omitempty"` + +// Username for the master DB user. Cannot be specified for a replica. +// +kubebuilder:validation:Optional +Username *string `json:"username,omitempty" tf:"username,omitempty"` + +// References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` + +// List of VPC security groups to +// associate. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector +// +kubebuilder:validation:Optional +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` } + type ListenerEndpointInitParameters struct { + } + type ListenerEndpointObservation struct { - // The hostname of the RDS instance. See also endpoint and port. - Address *string `json:"address,omitempty" tf:"address,omitempty"` - // The canonical hosted zone ID of the DB instance (to be used - // in a Route 53 Alias record). - HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` +// The hostname of the RDS instance. See also endpoint and port. +Address *string `json:"address,omitempty" tf:"address,omitempty"` - // The port on which the DB accepts connections. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The canonical hosted zone ID of the DB instance (to be used +// in a Route 53 Alias record). +HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` + +// The port on which the DB accepts connections. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` } + type ListenerEndpointParameters struct { + } + type MasterUserSecretInitParameters struct { + } + type MasterUserSecretObservation struct { - // The Amazon Web Services KMS key identifier that is used to encrypt the secret. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // The Amazon Resource Name (ARN) of the secret. - SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` +// The Amazon Web Services KMS key identifier that is used to encrypt the secret. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// The Amazon Resource Name (ARN) of the secret. +SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` - // The status of the secret. Valid Values: creating | active | rotating | impaired. - SecretStatus *string `json:"secretStatus,omitempty" tf:"secret_status,omitempty"` +// The status of the secret. Valid Values: creating | active | rotating | impaired. +SecretStatus *string `json:"secretStatus,omitempty" tf:"secret_status,omitempty"` } + type MasterUserSecretParameters struct { + } + type RestoreToPointInTimeInitParameters struct { - // The date and time to restore from. Value must be a time in Universal Coordinated Time (UTC) format and must be before the latest restorable time for the DB instance. Cannot be specified with use_latest_restorable_time. - RestoreTime *string `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` - // The ARN of the automated backup from which to restore. Required if source_db_instance_identifier or source_dbi_resource_id is not specified. - SourceDBInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty" tf:"source_db_instance_automated_backups_arn,omitempty"` +// The date and time to restore from. Value must be a time in Universal Coordinated Time (UTC) format and must be before the latest restorable time for the DB instance. Cannot be specified with use_latest_restorable_time. +RestoreTime *string `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` - // The identifier of the source DB instance from which to restore. Must match the identifier of an existing DB instance. Required if source_db_instance_automated_backups_arn or source_dbi_resource_id is not specified. - SourceDBInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty" tf:"source_db_instance_identifier,omitempty"` +// The ARN of the automated backup from which to restore. Required if source_db_instance_identifier or source_dbi_resource_id is not specified. +SourceDBInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty" tf:"source_db_instance_automated_backups_arn,omitempty"` - // The resource ID of the source DB instance from which to restore. Required if source_db_instance_identifier or source_db_instance_automated_backups_arn is not specified. - SourceDbiResourceID *string `json:"sourceDbiResourceId,omitempty" tf:"source_dbi_resource_id,omitempty"` +// The identifier of the source DB instance from which to restore. Must match the identifier of an existing DB instance. Required if source_db_instance_automated_backups_arn or source_dbi_resource_id is not specified. +SourceDBInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty" tf:"source_db_instance_identifier,omitempty"` - // A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to false. Cannot be specified with restore_time. - UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` +// The resource ID of the source DB instance from which to restore. Required if source_db_instance_identifier or source_db_instance_automated_backups_arn is not specified. +SourceDbiResourceID *string `json:"sourceDbiResourceId,omitempty" tf:"source_dbi_resource_id,omitempty"` + +// A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to false. Cannot be specified with restore_time. +UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` } + type RestoreToPointInTimeObservation struct { - // The date and time to restore from. Value must be a time in Universal Coordinated Time (UTC) format and must be before the latest restorable time for the DB instance. Cannot be specified with use_latest_restorable_time. - RestoreTime *string `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` - // The ARN of the automated backup from which to restore. Required if source_db_instance_identifier or source_dbi_resource_id is not specified. - SourceDBInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty" tf:"source_db_instance_automated_backups_arn,omitempty"` +// The date and time to restore from. Value must be a time in Universal Coordinated Time (UTC) format and must be before the latest restorable time for the DB instance. Cannot be specified with use_latest_restorable_time. +RestoreTime *string `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` - // The identifier of the source DB instance from which to restore. Must match the identifier of an existing DB instance. Required if source_db_instance_automated_backups_arn or source_dbi_resource_id is not specified. - SourceDBInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty" tf:"source_db_instance_identifier,omitempty"` +// The ARN of the automated backup from which to restore. Required if source_db_instance_identifier or source_dbi_resource_id is not specified. +SourceDBInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty" tf:"source_db_instance_automated_backups_arn,omitempty"` - // The resource ID of the source DB instance from which to restore. Required if source_db_instance_identifier or source_db_instance_automated_backups_arn is not specified. - SourceDbiResourceID *string `json:"sourceDbiResourceId,omitempty" tf:"source_dbi_resource_id,omitempty"` +// The identifier of the source DB instance from which to restore. Must match the identifier of an existing DB instance. Required if source_db_instance_automated_backups_arn or source_dbi_resource_id is not specified. +SourceDBInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty" tf:"source_db_instance_identifier,omitempty"` - // A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to false. Cannot be specified with restore_time. - UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` +// The resource ID of the source DB instance from which to restore. Required if source_db_instance_identifier or source_db_instance_automated_backups_arn is not specified. +SourceDbiResourceID *string `json:"sourceDbiResourceId,omitempty" tf:"source_dbi_resource_id,omitempty"` + +// A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to false. Cannot be specified with restore_time. +UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` } + type RestoreToPointInTimeParameters struct { - // The date and time to restore from. Value must be a time in Universal Coordinated Time (UTC) format and must be before the latest restorable time for the DB instance. Cannot be specified with use_latest_restorable_time. - // +kubebuilder:validation:Optional - RestoreTime *string `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` - // The ARN of the automated backup from which to restore. Required if source_db_instance_identifier or source_dbi_resource_id is not specified. - // +kubebuilder:validation:Optional - SourceDBInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty" tf:"source_db_instance_automated_backups_arn,omitempty"` +// The date and time to restore from. Value must be a time in Universal Coordinated Time (UTC) format and must be before the latest restorable time for the DB instance. Cannot be specified with use_latest_restorable_time. +// +kubebuilder:validation:Optional +RestoreTime *string `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` + +// The ARN of the automated backup from which to restore. Required if source_db_instance_identifier or source_dbi_resource_id is not specified. +// +kubebuilder:validation:Optional +SourceDBInstanceAutomatedBackupsArn *string `json:"sourceDbInstanceAutomatedBackupsArn,omitempty" tf:"source_db_instance_automated_backups_arn,omitempty"` - // The identifier of the source DB instance from which to restore. Must match the identifier of an existing DB instance. Required if source_db_instance_automated_backups_arn or source_dbi_resource_id is not specified. - // +kubebuilder:validation:Optional - SourceDBInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty" tf:"source_db_instance_identifier,omitempty"` +// The identifier of the source DB instance from which to restore. Must match the identifier of an existing DB instance. Required if source_db_instance_automated_backups_arn or source_dbi_resource_id is not specified. +// +kubebuilder:validation:Optional +SourceDBInstanceIdentifier *string `json:"sourceDbInstanceIdentifier,omitempty" tf:"source_db_instance_identifier,omitempty"` - // The resource ID of the source DB instance from which to restore. Required if source_db_instance_identifier or source_db_instance_automated_backups_arn is not specified. - // +kubebuilder:validation:Optional - SourceDbiResourceID *string `json:"sourceDbiResourceId,omitempty" tf:"source_dbi_resource_id,omitempty"` +// The resource ID of the source DB instance from which to restore. Required if source_db_instance_identifier or source_db_instance_automated_backups_arn is not specified. +// +kubebuilder:validation:Optional +SourceDbiResourceID *string `json:"sourceDbiResourceId,omitempty" tf:"source_dbi_resource_id,omitempty"` - // A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to false. Cannot be specified with restore_time. - // +kubebuilder:validation:Optional - UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` +// A boolean value that indicates whether the DB instance is restored from the latest backup time. Defaults to false. Cannot be specified with restore_time. +// +kubebuilder:validation:Optional +UseLatestRestorableTime *bool `json:"useLatestRestorableTime,omitempty" tf:"use_latest_restorable_time,omitempty"` } + type S3ImportInitParameters struct { - // The bucket name where your backup is stored - BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` - // Can be blank, but is the path to your backup - BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` +// The bucket name where your backup is stored +BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` + +// Can be blank, but is the path to your backup +BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` - // Role applied to load the data. - IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` +// Role applied to load the data. +IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` - // Source engine for the backup - SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` +// Source engine for the backup +SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` - // Version of the source engine used to make the backup - SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` +// Version of the source engine used to make the backup +SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` } + type S3ImportObservation struct { - // The bucket name where your backup is stored - BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` - // Can be blank, but is the path to your backup - BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` +// The bucket name where your backup is stored +BucketName *string `json:"bucketName,omitempty" tf:"bucket_name,omitempty"` + +// Can be blank, but is the path to your backup +BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` - // Role applied to load the data. - IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` +// Role applied to load the data. +IngestionRole *string `json:"ingestionRole,omitempty" tf:"ingestion_role,omitempty"` - // Source engine for the backup - SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` +// Source engine for the backup +SourceEngine *string `json:"sourceEngine,omitempty" tf:"source_engine,omitempty"` - // Version of the source engine used to make the backup - SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` +// Version of the source engine used to make the backup +SourceEngineVersion *string `json:"sourceEngineVersion,omitempty" tf:"source_engine_version,omitempty"` } + type S3ImportParameters struct { - // The bucket name where your backup is stored - // +kubebuilder:validation:Optional - BucketName *string `json:"bucketName" tf:"bucket_name,omitempty"` - // Can be blank, but is the path to your backup - // +kubebuilder:validation:Optional - BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` +// The bucket name where your backup is stored +// +kubebuilder:validation:Optional +BucketName *string `json:"bucketName" tf:"bucket_name,omitempty"` + +// Can be blank, but is the path to your backup +// +kubebuilder:validation:Optional +BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` - // Role applied to load the data. - // +kubebuilder:validation:Optional - IngestionRole *string `json:"ingestionRole" tf:"ingestion_role,omitempty"` +// Role applied to load the data. +// +kubebuilder:validation:Optional +IngestionRole *string `json:"ingestionRole" tf:"ingestion_role,omitempty"` - // Source engine for the backup - // +kubebuilder:validation:Optional - SourceEngine *string `json:"sourceEngine" tf:"source_engine,omitempty"` +// Source engine for the backup +// +kubebuilder:validation:Optional +SourceEngine *string `json:"sourceEngine" tf:"source_engine,omitempty"` - // Version of the source engine used to make the backup - // +kubebuilder:validation:Optional - SourceEngineVersion *string `json:"sourceEngineVersion" tf:"source_engine_version,omitempty"` +// Version of the source engine used to make the backup +// +kubebuilder:validation:Optional +SourceEngineVersion *string `json:"sourceEngineVersion" tf:"source_engine_version,omitempty"` } // InstanceSpec defines the desired state of Instance type InstanceSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider InstanceParameters `json:"forProvider"` + ForProvider InstanceParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -1082,13 +1121,13 @@ type InstanceSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider InstanceInitParameters `json:"initProvider,omitempty"` + InitProvider InstanceInitParameters `json:"initProvider,omitempty"` } // InstanceStatus defines the observed state of Instance. type InstanceStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider InstanceObservation `json:"atProvider,omitempty"` + AtProvider InstanceObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -1103,10 +1142,10 @@ type InstanceStatus struct { type Instance struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceClass) || (has(self.initProvider) && has(self.initProvider.instanceClass))",message="spec.forProvider.instanceClass is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec InstanceSpec `json:"spec"` - Status InstanceStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceClass) || (has(self.initProvider) && has(self.initProvider.instanceClass))",message="spec.forProvider.instanceClass is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec InstanceSpec `json:"spec"` + Status InstanceStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_instanceroleassociation_types.go b/apis/rds/v1alpha1/zz_instanceroleassociation_types.go index 9ebe642..da7f364 100755 --- a/apis/rds/v1alpha1/zz_instanceroleassociation_types.go +++ b/apis/rds/v1alpha1/zz_instanceroleassociation_types.go @@ -15,72 +15,81 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type InstanceRoleAssociationInitParameters struct { - // Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. - FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` + +// Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. +FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` } + type InstanceRoleAssociationObservation struct { - // DB Instance Identifier to associate with the IAM Role. - DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - // Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. - FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` +// DB Instance Identifier to associate with the IAM Role. +DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - // DB Instance Identifier and IAM Role ARN separated by a comma (,) - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. +FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` - // Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` +// DB Instance Identifier and IAM Role ARN separated by a comma (,) +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` } + type InstanceRoleAssociationParameters struct { - // DB Instance Identifier to associate with the IAM Role. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance - // +kubebuilder:validation:Optional - DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - - // Reference to a Instance in rds to populate dbInstanceIdentifier. - // +kubebuilder:validation:Optional - DBInstanceIdentifierRef *v1.Reference `json:"dbInstanceIdentifierRef,omitempty" tf:"-"` - - // Selector for a Instance in rds to populate dbInstanceIdentifier. - // +kubebuilder:validation:Optional - DBInstanceIdentifierSelector *v1.Selector `json:"dbInstanceIdentifierSelector,omitempty" tf:"-"` - - // Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. - // +kubebuilder:validation:Optional - FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` - - // Reference to a Role in iam to populate roleArn. - // +kubebuilder:validation:Optional - RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate roleArn. - // +kubebuilder:validation:Optional - RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"` + +// DB Instance Identifier to associate with the IAM Role. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance +// +kubebuilder:validation:Optional +DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` + +// Reference to a Instance in rds to populate dbInstanceIdentifier. +// +kubebuilder:validation:Optional +DBInstanceIdentifierRef *v1.Reference `json:"dbInstanceIdentifierRef,omitempty" tf:"-"` + +// Selector for a Instance in rds to populate dbInstanceIdentifier. +// +kubebuilder:validation:Optional +DBInstanceIdentifierSelector *v1.Selector `json:"dbInstanceIdentifierSelector,omitempty" tf:"-"` + +// Name of the feature for association. This can be found in the AWS documentation relevant to the integration or a full list is available in the SupportedFeatureNames list returned by AWS CLI rds describe-db-engine-versions. +// +kubebuilder:validation:Optional +FeatureName *string `json:"featureName,omitempty" tf:"feature_name,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// Amazon Resource Name (ARN) of the IAM Role to associate with the DB Instance. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` + +// Reference to a Role in iam to populate roleArn. +// +kubebuilder:validation:Optional +RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate roleArn. +// +kubebuilder:validation:Optional +RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"` } // InstanceRoleAssociationSpec defines the desired state of InstanceRoleAssociation type InstanceRoleAssociationSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider InstanceRoleAssociationParameters `json:"forProvider"` + ForProvider InstanceRoleAssociationParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -91,13 +100,13 @@ type InstanceRoleAssociationSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider InstanceRoleAssociationInitParameters `json:"initProvider,omitempty"` + InitProvider InstanceRoleAssociationInitParameters `json:"initProvider,omitempty"` } // InstanceRoleAssociationStatus defines the observed state of InstanceRoleAssociation. type InstanceRoleAssociationStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider InstanceRoleAssociationObservation `json:"atProvider,omitempty"` + AtProvider InstanceRoleAssociationObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -112,10 +121,10 @@ type InstanceRoleAssociationStatus struct { type InstanceRoleAssociation struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.featureName) || (has(self.initProvider) && has(self.initProvider.featureName))",message="spec.forProvider.featureName is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec InstanceRoleAssociationSpec `json:"spec"` - Status InstanceRoleAssociationStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.featureName) || (has(self.initProvider) && has(self.initProvider.featureName))",message="spec.forProvider.featureName is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec InstanceRoleAssociationSpec `json:"spec"` + Status InstanceRoleAssociationStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_optiongroup_types.go b/apis/rds/v1alpha1/zz_optiongroup_types.go index 956b44d..4cdc3eb 100755 --- a/apis/rds/v1alpha1/zz_optiongroup_types.go +++ b/apis/rds/v1alpha1/zz_optiongroup_types.go @@ -15,190 +15,211 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type OptionGroupInitParameters struct { - // Specifies the name of the engine that this option group should be associated with. - EngineName *string `json:"engineName,omitempty" tf:"engine_name,omitempty"` - // Specifies the major version of the engine that this option group should be associated with. - MajorEngineVersion *string `json:"majorEngineVersion,omitempty" tf:"major_engine_version,omitempty"` +// Specifies the name of the engine that this option group should be associated with. +EngineName *string `json:"engineName,omitempty" tf:"engine_name,omitempty"` + +// Specifies the major version of the engine that this option group should be associated with. +MajorEngineVersion *string `json:"majorEngineVersion,omitempty" tf:"major_engine_version,omitempty"` - // A list of Options to apply. - Option []OptionInitParameters `json:"option,omitempty" tf:"option,omitempty"` +// A list of Options to apply. +Option []OptionInitParameters `json:"option,omitempty" tf:"option,omitempty"` - // The description of the option group. - OptionGroupDescription *string `json:"optionGroupDescription,omitempty" tf:"option_group_description,omitempty"` +// The description of the option group. +OptionGroupDescription *string `json:"optionGroupDescription,omitempty" tf:"option_group_description,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type OptionGroupObservation struct { - // The ARN of the db option group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Specifies the name of the engine that this option group should be associated with. - EngineName *string `json:"engineName,omitempty" tf:"engine_name,omitempty"` +// The ARN of the db option group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The db option group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Specifies the name of the engine that this option group should be associated with. +EngineName *string `json:"engineName,omitempty" tf:"engine_name,omitempty"` - // Specifies the major version of the engine that this option group should be associated with. - MajorEngineVersion *string `json:"majorEngineVersion,omitempty" tf:"major_engine_version,omitempty"` +// The db option group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A list of Options to apply. - Option []OptionObservation `json:"option,omitempty" tf:"option,omitempty"` +// Specifies the major version of the engine that this option group should be associated with. +MajorEngineVersion *string `json:"majorEngineVersion,omitempty" tf:"major_engine_version,omitempty"` - // The description of the option group. - OptionGroupDescription *string `json:"optionGroupDescription,omitempty" tf:"option_group_description,omitempty"` +// A list of Options to apply. +Option []OptionObservation `json:"option,omitempty" tf:"option,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The description of the option group. +OptionGroupDescription *string `json:"optionGroupDescription,omitempty" tf:"option_group_description,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type OptionGroupParameters struct { - // Specifies the name of the engine that this option group should be associated with. - // +kubebuilder:validation:Optional - EngineName *string `json:"engineName,omitempty" tf:"engine_name,omitempty"` - // Specifies the major version of the engine that this option group should be associated with. - // +kubebuilder:validation:Optional - MajorEngineVersion *string `json:"majorEngineVersion,omitempty" tf:"major_engine_version,omitempty"` +// Specifies the name of the engine that this option group should be associated with. +// +kubebuilder:validation:Optional +EngineName *string `json:"engineName,omitempty" tf:"engine_name,omitempty"` + +// Specifies the major version of the engine that this option group should be associated with. +// +kubebuilder:validation:Optional +MajorEngineVersion *string `json:"majorEngineVersion,omitempty" tf:"major_engine_version,omitempty"` - // A list of Options to apply. - // +kubebuilder:validation:Optional - Option []OptionParameters `json:"option,omitempty" tf:"option,omitempty"` +// A list of Options to apply. +// +kubebuilder:validation:Optional +Option []OptionParameters `json:"option,omitempty" tf:"option,omitempty"` - // The description of the option group. - // +kubebuilder:validation:Optional - OptionGroupDescription *string `json:"optionGroupDescription,omitempty" tf:"option_group_description,omitempty"` +// The description of the option group. +// +kubebuilder:validation:Optional +OptionGroupDescription *string `json:"optionGroupDescription,omitempty" tf:"option_group_description,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type OptionInitParameters struct { - // A list of DB Security Groups for which the option is enabled. - DBSecurityGroupMemberships []*string `json:"dbSecurityGroupMemberships,omitempty" tf:"db_security_group_memberships,omitempty"` - // The Name of the Option (e.g., MEMCACHED). - OptionName *string `json:"optionName,omitempty" tf:"option_name,omitempty"` +// A list of DB Security Groups for which the option is enabled. +DBSecurityGroupMemberships []*string `json:"dbSecurityGroupMemberships,omitempty" tf:"db_security_group_memberships,omitempty"` + +// The Name of the Option (e.g., MEMCACHED). +OptionName *string `json:"optionName,omitempty" tf:"option_name,omitempty"` - // A list of option settings to apply. - OptionSettings []OptionSettingsInitParameters `json:"optionSettings,omitempty" tf:"option_settings,omitempty"` +// A list of option settings to apply. +OptionSettings []OptionSettingsInitParameters `json:"optionSettings,omitempty" tf:"option_settings,omitempty"` - // The Port number when connecting to the Option (e.g., 11211). - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The Port number when connecting to the Option (e.g., 11211). +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // A list of VPC Security Groups for which the option is enabled. - VPCSecurityGroupMemberships []*string `json:"vpcSecurityGroupMemberships,omitempty" tf:"vpc_security_group_memberships,omitempty"` +// A list of VPC Security Groups for which the option is enabled. +VPCSecurityGroupMemberships []*string `json:"vpcSecurityGroupMemberships,omitempty" tf:"vpc_security_group_memberships,omitempty"` - // The version of the option (e.g., 13.1.0.0). - Version *string `json:"version,omitempty" tf:"version,omitempty"` +// The version of the option (e.g., 13.1.0.0). +Version *string `json:"version,omitempty" tf:"version,omitempty"` } + type OptionObservation struct { - // A list of DB Security Groups for which the option is enabled. - DBSecurityGroupMemberships []*string `json:"dbSecurityGroupMemberships,omitempty" tf:"db_security_group_memberships,omitempty"` - // The Name of the Option (e.g., MEMCACHED). - OptionName *string `json:"optionName,omitempty" tf:"option_name,omitempty"` +// A list of DB Security Groups for which the option is enabled. +DBSecurityGroupMemberships []*string `json:"dbSecurityGroupMemberships,omitempty" tf:"db_security_group_memberships,omitempty"` + +// The Name of the Option (e.g., MEMCACHED). +OptionName *string `json:"optionName,omitempty" tf:"option_name,omitempty"` - // A list of option settings to apply. - OptionSettings []OptionSettingsObservation `json:"optionSettings,omitempty" tf:"option_settings,omitempty"` +// A list of option settings to apply. +OptionSettings []OptionSettingsObservation `json:"optionSettings,omitempty" tf:"option_settings,omitempty"` - // The Port number when connecting to the Option (e.g., 11211). - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// The Port number when connecting to the Option (e.g., 11211). +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // A list of VPC Security Groups for which the option is enabled. - VPCSecurityGroupMemberships []*string `json:"vpcSecurityGroupMemberships,omitempty" tf:"vpc_security_group_memberships,omitempty"` +// A list of VPC Security Groups for which the option is enabled. +VPCSecurityGroupMemberships []*string `json:"vpcSecurityGroupMemberships,omitempty" tf:"vpc_security_group_memberships,omitempty"` - // The version of the option (e.g., 13.1.0.0). - Version *string `json:"version,omitempty" tf:"version,omitempty"` +// The version of the option (e.g., 13.1.0.0). +Version *string `json:"version,omitempty" tf:"version,omitempty"` } + type OptionParameters struct { - // A list of DB Security Groups for which the option is enabled. - // +kubebuilder:validation:Optional - DBSecurityGroupMemberships []*string `json:"dbSecurityGroupMemberships,omitempty" tf:"db_security_group_memberships,omitempty"` - // The Name of the Option (e.g., MEMCACHED). - // +kubebuilder:validation:Optional - OptionName *string `json:"optionName" tf:"option_name,omitempty"` +// A list of DB Security Groups for which the option is enabled. +// +kubebuilder:validation:Optional +DBSecurityGroupMemberships []*string `json:"dbSecurityGroupMemberships,omitempty" tf:"db_security_group_memberships,omitempty"` - // A list of option settings to apply. - // +kubebuilder:validation:Optional - OptionSettings []OptionSettingsParameters `json:"optionSettings,omitempty" tf:"option_settings,omitempty"` +// The Name of the Option (e.g., MEMCACHED). +// +kubebuilder:validation:Optional +OptionName *string `json:"optionName" tf:"option_name,omitempty"` - // The Port number when connecting to the Option (e.g., 11211). - // +kubebuilder:validation:Optional - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// A list of option settings to apply. +// +kubebuilder:validation:Optional +OptionSettings []OptionSettingsParameters `json:"optionSettings,omitempty" tf:"option_settings,omitempty"` - // A list of VPC Security Groups for which the option is enabled. - // +kubebuilder:validation:Optional - VPCSecurityGroupMemberships []*string `json:"vpcSecurityGroupMemberships,omitempty" tf:"vpc_security_group_memberships,omitempty"` +// The Port number when connecting to the Option (e.g., 11211). +// +kubebuilder:validation:Optional +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // The version of the option (e.g., 13.1.0.0). - // +kubebuilder:validation:Optional - Version *string `json:"version,omitempty" tf:"version,omitempty"` +// A list of VPC Security Groups for which the option is enabled. +// +kubebuilder:validation:Optional +VPCSecurityGroupMemberships []*string `json:"vpcSecurityGroupMemberships,omitempty" tf:"vpc_security_group_memberships,omitempty"` + +// The version of the option (e.g., 13.1.0.0). +// +kubebuilder:validation:Optional +Version *string `json:"version,omitempty" tf:"version,omitempty"` } + type OptionSettingsInitParameters struct { - // The name of the option group. Must be lowercase, to match as it is stored in AWS. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // The Value of the setting. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the option group. Must be lowercase, to match as it is stored in AWS. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The Value of the setting. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type OptionSettingsObservation struct { - // The name of the option group. Must be lowercase, to match as it is stored in AWS. - Name *string `json:"name,omitempty" tf:"name,omitempty"` - // The Value of the setting. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the option group. Must be lowercase, to match as it is stored in AWS. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The Value of the setting. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type OptionSettingsParameters struct { - // The name of the option group. Must be lowercase, to match as it is stored in AWS. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` - // The Value of the setting. - // +kubebuilder:validation:Optional - Value *string `json:"value" tf:"value,omitempty"` +// The name of the option group. Must be lowercase, to match as it is stored in AWS. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` + +// The Value of the setting. +// +kubebuilder:validation:Optional +Value *string `json:"value" tf:"value,omitempty"` } // OptionGroupSpec defines the desired state of OptionGroup type OptionGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider OptionGroupParameters `json:"forProvider"` + ForProvider OptionGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -209,13 +230,13 @@ type OptionGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider OptionGroupInitParameters `json:"initProvider,omitempty"` + InitProvider OptionGroupInitParameters `json:"initProvider,omitempty"` } // OptionGroupStatus defines the observed state of OptionGroup. type OptionGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider OptionGroupObservation `json:"atProvider,omitempty"` + AtProvider OptionGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -230,11 +251,11 @@ type OptionGroupStatus struct { type OptionGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineName) || (has(self.initProvider) && has(self.initProvider.engineName))",message="spec.forProvider.engineName is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.majorEngineVersion) || (has(self.initProvider) && has(self.initProvider.majorEngineVersion))",message="spec.forProvider.majorEngineVersion is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec OptionGroupSpec `json:"spec"` - Status OptionGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineName) || (has(self.initProvider) && has(self.initProvider.engineName))",message="spec.forProvider.engineName is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.majorEngineVersion) || (has(self.initProvider) && has(self.initProvider.majorEngineVersion))",message="spec.forProvider.majorEngineVersion is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec OptionGroupSpec `json:"spec"` + Status OptionGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_parametergroup_types.go b/apis/rds/v1alpha1/zz_parametergroup_types.go index bba6e14..fde9b34 100755 --- a/apis/rds/v1alpha1/zz_parametergroup_types.go +++ b/apis/rds/v1alpha1/zz_parametergroup_types.go @@ -15,127 +15,142 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ParameterGroupInitParameters struct { - // The description of the DB parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the DB parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DB parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-parameters after initial creation of the group. - Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The family of the DB parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-parameters after initial creation of the group. +Parameter []ParameterInitParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterGroupObservation struct { - // The ARN of the db parameter group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The description of the DB parameter group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the db parameter group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The family of the DB parameter group. - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DB parameter group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The db parameter group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The family of the DB parameter group. +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-parameters after initial creation of the group. - Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The db parameter group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-parameters after initial creation of the group. +Parameter []ParameterObservation `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterGroupParameters struct { - // The description of the DB parameter group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The family of the DB parameter group. - // +kubebuilder:validation:Optional - Family *string `json:"family,omitempty" tf:"family,omitempty"` +// The description of the DB parameter group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-parameters after initial creation of the group. - // +kubebuilder:validation:Optional - Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` +// The family of the DB parameter group. +// +kubebuilder:validation:Optional +Family *string `json:"family,omitempty" tf:"family,omitempty"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// A list of DB parameters to apply. Note that parameters may differ from a family to an other. Full list of all parameters can be discovered via aws rds describe-db-parameters after initial creation of the group. +// +kubebuilder:validation:Optional +Parameter []ParameterParameters `json:"parameter,omitempty" tf:"parameter,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type ParameterInitParameters struct { - // "immediate" (default), or "pending-reboot". Some - // engines can't apply some parameters without a reboot, and you will need to - // specify "pending-reboot" here. - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DB parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// "immediate" (default), or "pending-reboot". Some +// engines can't apply some parameters without a reboot, and you will need to +// specify "pending-reboot" here. +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DB parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the DB parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the DB parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterObservation struct { - // "immediate" (default), or "pending-reboot". Some - // engines can't apply some parameters without a reboot, and you will need to - // specify "pending-reboot" here. - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DB parameter group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// "immediate" (default), or "pending-reboot". Some +// engines can't apply some parameters without a reboot, and you will need to +// specify "pending-reboot" here. +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The value of the DB parameter. - Value *string `json:"value,omitempty" tf:"value,omitempty"` +// The name of the DB parameter group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` + +// The value of the DB parameter. +Value *string `json:"value,omitempty" tf:"value,omitempty"` } + type ParameterParameters struct { - // "immediate" (default), or "pending-reboot". Some - // engines can't apply some parameters without a reboot, and you will need to - // specify "pending-reboot" here. - // +kubebuilder:validation:Optional - ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` - // The name of the DB parameter group. - // +kubebuilder:validation:Optional - Name *string `json:"name" tf:"name,omitempty"` +// "immediate" (default), or "pending-reboot". Some +// engines can't apply some parameters without a reboot, and you will need to +// specify "pending-reboot" here. +// +kubebuilder:validation:Optional +ApplyMethod *string `json:"applyMethod,omitempty" tf:"apply_method,omitempty"` + +// The name of the DB parameter group. +// +kubebuilder:validation:Optional +Name *string `json:"name" tf:"name,omitempty"` - // The value of the DB parameter. - // +kubebuilder:validation:Optional - Value *string `json:"value" tf:"value,omitempty"` +// The value of the DB parameter. +// +kubebuilder:validation:Optional +Value *string `json:"value" tf:"value,omitempty"` } // ParameterGroupSpec defines the desired state of ParameterGroup type ParameterGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ParameterGroupParameters `json:"forProvider"` + ForProvider ParameterGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -146,13 +161,13 @@ type ParameterGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ParameterGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ParameterGroupInitParameters `json:"initProvider,omitempty"` } // ParameterGroupStatus defines the observed state of ParameterGroup. type ParameterGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ParameterGroupObservation `json:"atProvider,omitempty"` + AtProvider ParameterGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -167,10 +182,10 @@ type ParameterGroupStatus struct { type ParameterGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ParameterGroupSpec `json:"spec"` - Status ParameterGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.family) || (has(self.initProvider) && has(self.initProvider.family))",message="spec.forProvider.family is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ParameterGroupSpec `json:"spec"` + Status ParameterGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_proxy_types.go b/apis/rds/v1alpha1/zz_proxy_types.go index e1e6927..1b21853 100755 --- a/apis/rds/v1alpha1/zz_proxy_types.go +++ b/apis/rds/v1alpha1/zz_proxy_types.go @@ -15,226 +15,241 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type AuthInitParameters struct { - // The type of authentication that the proxy uses for connections from the proxy to the underlying database. One of SECRETS. - AuthScheme *string `json:"authScheme,omitempty" tf:"auth_scheme,omitempty"` - // The type of authentication the proxy uses for connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. - ClientPasswordAuthType *string `json:"clientPasswordAuthType,omitempty" tf:"client_password_auth_type,omitempty"` +// The type of authentication that the proxy uses for connections from the proxy to the underlying database. One of SECRETS. +AuthScheme *string `json:"authScheme,omitempty" tf:"auth_scheme,omitempty"` - // A user-specified description about the authentication used by a proxy to log in as a specific database user. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The type of authentication the proxy uses for connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. +ClientPasswordAuthType *string `json:"clientPasswordAuthType,omitempty" tf:"client_password_auth_type,omitempty"` - // Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy. One of DISABLED, REQUIRED. - IAMAuth *string `json:"iamAuth,omitempty" tf:"iam_auth,omitempty"` +// A user-specified description about the authentication used by a proxy to log in as a specific database user. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The name of the database user to which the proxy connects. - Username *string `json:"username,omitempty" tf:"username,omitempty"` +// Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy. One of DISABLED, REQUIRED. +IAMAuth *string `json:"iamAuth,omitempty" tf:"iam_auth,omitempty"` + +// The name of the database user to which the proxy connects. +Username *string `json:"username,omitempty" tf:"username,omitempty"` } + type AuthObservation struct { - // The type of authentication that the proxy uses for connections from the proxy to the underlying database. One of SECRETS. - AuthScheme *string `json:"authScheme,omitempty" tf:"auth_scheme,omitempty"` - // The type of authentication the proxy uses for connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. - ClientPasswordAuthType *string `json:"clientPasswordAuthType,omitempty" tf:"client_password_auth_type,omitempty"` +// The type of authentication that the proxy uses for connections from the proxy to the underlying database. One of SECRETS. +AuthScheme *string `json:"authScheme,omitempty" tf:"auth_scheme,omitempty"` - // A user-specified description about the authentication used by a proxy to log in as a specific database user. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The type of authentication the proxy uses for connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. +ClientPasswordAuthType *string `json:"clientPasswordAuthType,omitempty" tf:"client_password_auth_type,omitempty"` - // Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy. One of DISABLED, REQUIRED. - IAMAuth *string `json:"iamAuth,omitempty" tf:"iam_auth,omitempty"` +// A user-specified description about the authentication used by a proxy to log in as a specific database user. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. - SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` +// Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy. One of DISABLED, REQUIRED. +IAMAuth *string `json:"iamAuth,omitempty" tf:"iam_auth,omitempty"` - // The name of the database user to which the proxy connects. - Username *string `json:"username,omitempty" tf:"username,omitempty"` +// The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. +SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` + +// The name of the database user to which the proxy connects. +Username *string `json:"username,omitempty" tf:"username,omitempty"` } + type AuthParameters struct { - // The type of authentication that the proxy uses for connections from the proxy to the underlying database. One of SECRETS. - // +kubebuilder:validation:Optional - AuthScheme *string `json:"authScheme,omitempty" tf:"auth_scheme,omitempty"` - // The type of authentication the proxy uses for connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. - // +kubebuilder:validation:Optional - ClientPasswordAuthType *string `json:"clientPasswordAuthType,omitempty" tf:"client_password_auth_type,omitempty"` +// The type of authentication that the proxy uses for connections from the proxy to the underlying database. One of SECRETS. +// +kubebuilder:validation:Optional +AuthScheme *string `json:"authScheme,omitempty" tf:"auth_scheme,omitempty"` - // A user-specified description about the authentication used by a proxy to log in as a specific database user. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The type of authentication the proxy uses for connections from clients. Valid values are MYSQL_NATIVE_PASSWORD, POSTGRES_SCRAM_SHA_256, POSTGRES_MD5, and SQL_SERVER_AUTHENTICATION. +// +kubebuilder:validation:Optional +ClientPasswordAuthType *string `json:"clientPasswordAuthType,omitempty" tf:"client_password_auth_type,omitempty"` - // Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy. One of DISABLED, REQUIRED. - // +kubebuilder:validation:Optional - IAMAuth *string `json:"iamAuth,omitempty" tf:"iam_auth,omitempty"` +// A user-specified description about the authentication used by a proxy to log in as a specific database user. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/secretsmanager/v1alpha1.Secret - // +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) - // +kubebuilder:validation:Optional - SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` +// Whether to require or disallow AWS Identity and Access Management (IAM) authentication for connections to the proxy. One of DISABLED, REQUIRED. +// +kubebuilder:validation:Optional +IAMAuth *string `json:"iamAuth,omitempty" tf:"iam_auth,omitempty"` - // Reference to a Secret in secretsmanager to populate secretArn. - // +kubebuilder:validation:Optional - SecretArnRef *v1.Reference `json:"secretArnRef,omitempty" tf:"-"` +// The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/secretsmanager/v1alpha1.Secret +// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractParamPath("arn",true) +// +kubebuilder:validation:Optional +SecretArn *string `json:"secretArn,omitempty" tf:"secret_arn,omitempty"` - // Selector for a Secret in secretsmanager to populate secretArn. - // +kubebuilder:validation:Optional - SecretArnSelector *v1.Selector `json:"secretArnSelector,omitempty" tf:"-"` +// Reference to a Secret in secretsmanager to populate secretArn. +// +kubebuilder:validation:Optional +SecretArnRef *v1.Reference `json:"secretArnRef,omitempty" tf:"-"` - // The name of the database user to which the proxy connects. - // +kubebuilder:validation:Optional - Username *string `json:"username,omitempty" tf:"username,omitempty"` +// Selector for a Secret in secretsmanager to populate secretArn. +// +kubebuilder:validation:Optional +SecretArnSelector *v1.Selector `json:"secretArnSelector,omitempty" tf:"-"` + +// The name of the database user to which the proxy connects. +// +kubebuilder:validation:Optional +Username *string `json:"username,omitempty" tf:"username,omitempty"` } + type ProxyInitParameters struct { - // Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below. - Auth []AuthInitParameters `json:"auth,omitempty" tf:"auth,omitempty"` - // Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs. - DebugLogging *bool `json:"debugLogging,omitempty" tf:"debug_logging,omitempty"` +// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below. +Auth []AuthInitParameters `json:"auth,omitempty" tf:"auth,omitempty"` - // The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. - EngineFamily *string `json:"engineFamily,omitempty" tf:"engine_family,omitempty"` +// Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs. +DebugLogging *bool `json:"debugLogging,omitempty" tf:"debug_logging,omitempty"` - // The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database. - IdleClientTimeout *float64 `json:"idleClientTimeout,omitempty" tf:"idle_client_timeout,omitempty"` +// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. +EngineFamily *string `json:"engineFamily,omitempty" tf:"engine_family,omitempty"` - // A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy. - RequireTLS *bool `json:"requireTls,omitempty" tf:"require_tls,omitempty"` +// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database. +IdleClientTimeout *float64 `json:"idleClientTimeout,omitempty" tf:"idle_client_timeout,omitempty"` - // A mapping of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy. +RequireTLS *bool `json:"requireTls,omitempty" tf:"require_tls,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A mapping of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // One or more VPC subnet IDs to associate with the new proxy. - VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// One or more VPC subnet IDs to associate with the new proxy. +VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` } + type ProxyObservation struct { - // The Amazon Resource Name (ARN) for the proxy. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below. - Auth []AuthObservation `json:"auth,omitempty" tf:"auth,omitempty"` +// The Amazon Resource Name (ARN) for the proxy. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs. - DebugLogging *bool `json:"debugLogging,omitempty" tf:"debug_logging,omitempty"` +// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below. +Auth []AuthObservation `json:"auth,omitempty" tf:"auth,omitempty"` - // The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application. - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs. +DebugLogging *bool `json:"debugLogging,omitempty" tf:"debug_logging,omitempty"` - // The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. - EngineFamily *string `json:"engineFamily,omitempty" tf:"engine_family,omitempty"` +// The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application. +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // The Amazon Resource Name (ARN) for the proxy. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. +EngineFamily *string `json:"engineFamily,omitempty" tf:"engine_family,omitempty"` - // The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database. - IdleClientTimeout *float64 `json:"idleClientTimeout,omitempty" tf:"idle_client_timeout,omitempty"` +// The Amazon Resource Name (ARN) for the proxy. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy. - RequireTLS *bool `json:"requireTls,omitempty" tf:"require_tls,omitempty"` +// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database. +IdleClientTimeout *float64 `json:"idleClientTimeout,omitempty" tf:"idle_client_timeout,omitempty"` - // The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager. - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` +// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy. +RequireTLS *bool `json:"requireTls,omitempty" tf:"require_tls,omitempty"` - // A mapping of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager. +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A mapping of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // One or more VPC security group IDs to associate with the new proxy. - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // One or more VPC subnet IDs to associate with the new proxy. - VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` +// One or more VPC security group IDs to associate with the new proxy. +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` + +// One or more VPC subnet IDs to associate with the new proxy. +VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` } + type ProxyParameters struct { - // Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below. - // +kubebuilder:validation:Optional - Auth []AuthParameters `json:"auth,omitempty" tf:"auth,omitempty"` - - // Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs. - // +kubebuilder:validation:Optional - DebugLogging *bool `json:"debugLogging,omitempty" tf:"debug_logging,omitempty"` - - // The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. - // +kubebuilder:validation:Optional - EngineFamily *string `json:"engineFamily,omitempty" tf:"engine_family,omitempty"` - - // The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database. - // +kubebuilder:validation:Optional - IdleClientTimeout *float64 `json:"idleClientTimeout,omitempty" tf:"idle_client_timeout,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy. - // +kubebuilder:validation:Optional - RequireTLS *bool `json:"requireTls,omitempty" tf:"require_tls,omitempty"` - - // The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` - - // Reference to a Role in iam to populate roleArn. - // +kubebuilder:validation:Optional - RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate roleArn. - // +kubebuilder:validation:Optional - RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"` - - // A mapping of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` - - // One or more VPC security group IDs to associate with the new proxy. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector - // +kubebuilder:validation:Optional - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` - - // One or more VPC subnet IDs to associate with the new proxy. - // +kubebuilder:validation:Optional - VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` + +// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below. +// +kubebuilder:validation:Optional +Auth []AuthParameters `json:"auth,omitempty" tf:"auth,omitempty"` + +// Whether the proxy includes detailed information about SQL statements in its logs. This information helps you to debug issues involving SQL behavior or the performance and scalability of the proxy connections. The debug information includes the text of SQL statements that you submit through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs. +// +kubebuilder:validation:Optional +DebugLogging *bool `json:"debugLogging,omitempty" tf:"debug_logging,omitempty"` + +// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Valid values are MYSQL and POSTGRESQL. +// +kubebuilder:validation:Optional +EngineFamily *string `json:"engineFamily,omitempty" tf:"engine_family,omitempty"` + +// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database. +// +kubebuilder:validation:Optional +IdleClientTimeout *float64 `json:"idleClientTimeout,omitempty" tf:"idle_client_timeout,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy. +// +kubebuilder:validation:Optional +RequireTLS *bool `json:"requireTls,omitempty" tf:"require_tls,omitempty"` + +// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +RoleArn *string `json:"roleArn,omitempty" tf:"role_arn,omitempty"` + +// Reference to a Role in iam to populate roleArn. +// +kubebuilder:validation:Optional +RoleArnRef *v1.Reference `json:"roleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate roleArn. +// +kubebuilder:validation:Optional +RoleArnSelector *v1.Selector `json:"roleArnSelector,omitempty" tf:"-"` + +// A mapping of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` + +// One or more VPC security group IDs to associate with the new proxy. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector +// +kubebuilder:validation:Optional +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` + +// One or more VPC subnet IDs to associate with the new proxy. +// +kubebuilder:validation:Optional +VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` } // ProxySpec defines the desired state of Proxy type ProxySpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ProxyParameters `json:"forProvider"` + ForProvider ProxyParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -245,13 +260,13 @@ type ProxySpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ProxyInitParameters `json:"initProvider,omitempty"` + InitProvider ProxyInitParameters `json:"initProvider,omitempty"` } // ProxyStatus defines the observed state of Proxy. type ProxyStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ProxyObservation `json:"atProvider,omitempty"` + AtProvider ProxyObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -266,12 +281,12 @@ type ProxyStatus struct { type Proxy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.auth) || (has(self.initProvider) && has(self.initProvider.auth))",message="spec.forProvider.auth is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineFamily) || (has(self.initProvider) && has(self.initProvider.engineFamily))",message="spec.forProvider.engineFamily is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcSubnetIds) || (has(self.initProvider) && has(self.initProvider.vpcSubnetIds))",message="spec.forProvider.vpcSubnetIds is a required parameter" - Spec ProxySpec `json:"spec"` - Status ProxyStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.auth) || (has(self.initProvider) && has(self.initProvider.auth))",message="spec.forProvider.auth is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineFamily) || (has(self.initProvider) && has(self.initProvider.engineFamily))",message="spec.forProvider.engineFamily is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcSubnetIds) || (has(self.initProvider) && has(self.initProvider.vpcSubnetIds))",message="spec.forProvider.vpcSubnetIds is a required parameter" + Spec ProxySpec `json:"spec"` + Status ProxyStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_proxydefaulttargetgroup_types.go b/apis/rds/v1alpha1/zz_proxydefaulttargetgroup_types.go index 4bf2937..d8fbe0f 100755 --- a/apis/rds/v1alpha1/zz_proxydefaulttargetgroup_types.go +++ b/apis/rds/v1alpha1/zz_proxydefaulttargetgroup_types.go @@ -15,120 +15,135 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ConnectionPoolConfigInitParameters struct { - // The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. - ConnectionBorrowTimeout *float64 `json:"connectionBorrowTimeout,omitempty" tf:"connection_borrow_timeout,omitempty"` - // One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2. - InitQuery *string `json:"initQuery,omitempty" tf:"init_query,omitempty"` +// The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. +ConnectionBorrowTimeout *float64 `json:"connectionBorrowTimeout,omitempty" tf:"connection_borrow_timeout,omitempty"` - // The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. - MaxConnectionsPercent *float64 `json:"maxConnectionsPercent,omitempty" tf:"max_connections_percent,omitempty"` +// One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2. +InitQuery *string `json:"initQuery,omitempty" tf:"init_query,omitempty"` - // Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. - MaxIdleConnectionsPercent *float64 `json:"maxIdleConnectionsPercent,omitempty" tf:"max_idle_connections_percent,omitempty"` +// The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. +MaxConnectionsPercent *float64 `json:"maxConnectionsPercent,omitempty" tf:"max_connections_percent,omitempty"` - // Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. - SessionPinningFilters []*string `json:"sessionPinningFilters,omitempty" tf:"session_pinning_filters,omitempty"` +// Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. +MaxIdleConnectionsPercent *float64 `json:"maxIdleConnectionsPercent,omitempty" tf:"max_idle_connections_percent,omitempty"` + +// Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. +SessionPinningFilters []*string `json:"sessionPinningFilters,omitempty" tf:"session_pinning_filters,omitempty"` } + type ConnectionPoolConfigObservation struct { - // The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. - ConnectionBorrowTimeout *float64 `json:"connectionBorrowTimeout,omitempty" tf:"connection_borrow_timeout,omitempty"` - // One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2. - InitQuery *string `json:"initQuery,omitempty" tf:"init_query,omitempty"` +// The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. +ConnectionBorrowTimeout *float64 `json:"connectionBorrowTimeout,omitempty" tf:"connection_borrow_timeout,omitempty"` - // The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. - MaxConnectionsPercent *float64 `json:"maxConnectionsPercent,omitempty" tf:"max_connections_percent,omitempty"` +// One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2. +InitQuery *string `json:"initQuery,omitempty" tf:"init_query,omitempty"` - // Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. - MaxIdleConnectionsPercent *float64 `json:"maxIdleConnectionsPercent,omitempty" tf:"max_idle_connections_percent,omitempty"` +// The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. +MaxConnectionsPercent *float64 `json:"maxConnectionsPercent,omitempty" tf:"max_connections_percent,omitempty"` - // Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. - SessionPinningFilters []*string `json:"sessionPinningFilters,omitempty" tf:"session_pinning_filters,omitempty"` +// Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. +MaxIdleConnectionsPercent *float64 `json:"maxIdleConnectionsPercent,omitempty" tf:"max_idle_connections_percent,omitempty"` + +// Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. +SessionPinningFilters []*string `json:"sessionPinningFilters,omitempty" tf:"session_pinning_filters,omitempty"` } + type ConnectionPoolConfigParameters struct { - // The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. - // +kubebuilder:validation:Optional - ConnectionBorrowTimeout *float64 `json:"connectionBorrowTimeout,omitempty" tf:"connection_borrow_timeout,omitempty"` - // One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2. - // +kubebuilder:validation:Optional - InitQuery *string `json:"initQuery,omitempty" tf:"init_query,omitempty"` +// The number of seconds for a proxy to wait for a connection to become available in the connection pool. Only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. +// +kubebuilder:validation:Optional +ConnectionBorrowTimeout *float64 `json:"connectionBorrowTimeout,omitempty" tf:"connection_borrow_timeout,omitempty"` - // The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. - // +kubebuilder:validation:Optional - MaxConnectionsPercent *float64 `json:"maxConnectionsPercent,omitempty" tf:"max_connections_percent,omitempty"` +// One or more SQL statements for the proxy to run when opening each new database connection. Typically used with SET statements to make sure that each connection has identical settings such as time zone and character set. This setting is empty by default. For multiple statements, use semicolons as the separator. You can also include multiple variables in a single SET statement, such as SET x=1, y=2. +// +kubebuilder:validation:Optional +InitQuery *string `json:"initQuery,omitempty" tf:"init_query,omitempty"` - // Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. - // +kubebuilder:validation:Optional - MaxIdleConnectionsPercent *float64 `json:"maxIdleConnectionsPercent,omitempty" tf:"max_idle_connections_percent,omitempty"` +// The maximum size of the connection pool for each target in a target group. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. +// +kubebuilder:validation:Optional +MaxConnectionsPercent *float64 `json:"maxConnectionsPercent,omitempty" tf:"max_connections_percent,omitempty"` - // Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. - // +kubebuilder:validation:Optional - SessionPinningFilters []*string `json:"sessionPinningFilters,omitempty" tf:"session_pinning_filters,omitempty"` +// Controls how actively the proxy closes idle database connections in the connection pool. A high value enables the proxy to leave a high percentage of idle connections open. A low value causes the proxy to close idle client connections and return the underlying database connections to the connection pool. For Aurora MySQL, it is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. +// +kubebuilder:validation:Optional +MaxIdleConnectionsPercent *float64 `json:"maxIdleConnectionsPercent,omitempty" tf:"max_idle_connections_percent,omitempty"` + +// Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS. +// +kubebuilder:validation:Optional +SessionPinningFilters []*string `json:"sessionPinningFilters,omitempty" tf:"session_pinning_filters,omitempty"` } + type ProxyDefaultTargetGroupInitParameters struct { - // The settings that determine the size and behavior of the connection pool for the target group. - ConnectionPoolConfig []ConnectionPoolConfigInitParameters `json:"connectionPoolConfig,omitempty" tf:"connection_pool_config,omitempty"` + +// The settings that determine the size and behavior of the connection pool for the target group. +ConnectionPoolConfig []ConnectionPoolConfigInitParameters `json:"connectionPoolConfig,omitempty" tf:"connection_pool_config,omitempty"` } + type ProxyDefaultTargetGroupObservation struct { - // The Amazon Resource Name (ARN) representing the target group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The settings that determine the size and behavior of the connection pool for the target group. - ConnectionPoolConfig []ConnectionPoolConfigObservation `json:"connectionPoolConfig,omitempty" tf:"connection_pool_config,omitempty"` +// The Amazon Resource Name (ARN) representing the target group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Name of the RDS DB Proxy. - DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` +// The settings that determine the size and behavior of the connection pool for the target group. +ConnectionPoolConfig []ConnectionPoolConfigObservation `json:"connectionPoolConfig,omitempty" tf:"connection_pool_config,omitempty"` - // Name of the RDS DB Proxy. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Name of the RDS DB Proxy. +DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` - // The name of the default target group. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Name of the RDS DB Proxy. +ID *string `json:"id,omitempty" tf:"id,omitempty"` + +// The name of the default target group. +Name *string `json:"name,omitempty" tf:"name,omitempty"` } + type ProxyDefaultTargetGroupParameters struct { - // The settings that determine the size and behavior of the connection pool for the target group. - // +kubebuilder:validation:Optional - ConnectionPoolConfig []ConnectionPoolConfigParameters `json:"connectionPoolConfig,omitempty" tf:"connection_pool_config,omitempty"` - // Name of the RDS DB Proxy. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Proxy - // +kubebuilder:validation:Optional - DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` +// The settings that determine the size and behavior of the connection pool for the target group. +// +kubebuilder:validation:Optional +ConnectionPoolConfig []ConnectionPoolConfigParameters `json:"connectionPoolConfig,omitempty" tf:"connection_pool_config,omitempty"` + +// Name of the RDS DB Proxy. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Proxy +// +kubebuilder:validation:Optional +DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` - // Reference to a Proxy in rds to populate dbProxyName. - // +kubebuilder:validation:Optional - DBProxyNameRef *v1.Reference `json:"dbProxyNameRef,omitempty" tf:"-"` +// Reference to a Proxy in rds to populate dbProxyName. +// +kubebuilder:validation:Optional +DBProxyNameRef *v1.Reference `json:"dbProxyNameRef,omitempty" tf:"-"` - // Selector for a Proxy in rds to populate dbProxyName. - // +kubebuilder:validation:Optional - DBProxyNameSelector *v1.Selector `json:"dbProxyNameSelector,omitempty" tf:"-"` +// Selector for a Proxy in rds to populate dbProxyName. +// +kubebuilder:validation:Optional +DBProxyNameSelector *v1.Selector `json:"dbProxyNameSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` } // ProxyDefaultTargetGroupSpec defines the desired state of ProxyDefaultTargetGroup type ProxyDefaultTargetGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ProxyDefaultTargetGroupParameters `json:"forProvider"` + ForProvider ProxyDefaultTargetGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -139,13 +154,13 @@ type ProxyDefaultTargetGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ProxyDefaultTargetGroupInitParameters `json:"initProvider,omitempty"` + InitProvider ProxyDefaultTargetGroupInitParameters `json:"initProvider,omitempty"` } // ProxyDefaultTargetGroupStatus defines the observed state of ProxyDefaultTargetGroup. type ProxyDefaultTargetGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ProxyDefaultTargetGroupObservation `json:"atProvider,omitempty"` + AtProvider ProxyDefaultTargetGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -160,9 +175,9 @@ type ProxyDefaultTargetGroupStatus struct { type ProxyDefaultTargetGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec ProxyDefaultTargetGroupSpec `json:"spec"` - Status ProxyDefaultTargetGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec ProxyDefaultTargetGroupSpec `json:"spec"` + Status ProxyDefaultTargetGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_proxyendpoint_types.go b/apis/rds/v1alpha1/zz_proxyendpoint_types.go index 45f47ec..18b75e3 100755 --- a/apis/rds/v1alpha1/zz_proxyendpoint_types.go +++ b/apis/rds/v1alpha1/zz_proxyendpoint_types.go @@ -15,112 +15,121 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ProxyEndpointInitParameters struct { - // A mapping of tags to assign to the resource. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A mapping of tags to assign to the resource. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. - TargetRole *string `json:"targetRole,omitempty" tf:"target_role,omitempty"` +// Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. +TargetRole *string `json:"targetRole,omitempty" tf:"target_role,omitempty"` - // One or more VPC subnet IDs to associate with the new proxy. - VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` +// One or more VPC subnet IDs to associate with the new proxy. +VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` } + type ProxyEndpointObservation struct { - // The Amazon Resource Name (ARN) for the proxy endpoint. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The name of the DB proxy associated with the DB proxy endpoint that you create. - DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` +// The Amazon Resource Name (ARN) for the proxy endpoint. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + +// The name of the DB proxy associated with the DB proxy endpoint that you create. +DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` - // The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application. - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application. +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // The name of the proxy and proxy endpoint separated by /, DB-PROXY-NAME/DB-PROXY-ENDPOINT-NAME. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The name of the proxy and proxy endpoint separated by /, DB-PROXY-NAME/DB-PROXY-ENDPOINT-NAME. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Indicates whether this endpoint is the default endpoint for the associated DB proxy. - IsDefault *bool `json:"isDefault,omitempty" tf:"is_default,omitempty"` +// Indicates whether this endpoint is the default endpoint for the associated DB proxy. +IsDefault *bool `json:"isDefault,omitempty" tf:"is_default,omitempty"` - // A mapping of tags to assign to the resource. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// A mapping of tags to assign to the resource. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. - TargetRole *string `json:"targetRole,omitempty" tf:"target_role,omitempty"` +// Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. +TargetRole *string `json:"targetRole,omitempty" tf:"target_role,omitempty"` - // The VPC ID of the DB proxy endpoint. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// The VPC ID of the DB proxy endpoint. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` - // One or more VPC security group IDs to associate with the new proxy. - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` +// One or more VPC security group IDs to associate with the new proxy. +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` - // One or more VPC subnet IDs to associate with the new proxy. - VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` +// One or more VPC subnet IDs to associate with the new proxy. +VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` } + type ProxyEndpointParameters struct { - // The name of the DB proxy associated with the DB proxy endpoint that you create. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Proxy - // +kubebuilder:validation:Optional - DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` - - // Reference to a Proxy in rds to populate dbProxyName. - // +kubebuilder:validation:Optional - DBProxyNameRef *v1.Reference `json:"dbProxyNameRef,omitempty" tf:"-"` - - // Selector for a Proxy in rds to populate dbProxyName. - // +kubebuilder:validation:Optional - DBProxyNameSelector *v1.Selector `json:"dbProxyNameSelector,omitempty" tf:"-"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // A mapping of tags to assign to the resource. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. - // +kubebuilder:validation:Optional - TargetRole *string `json:"targetRole,omitempty" tf:"target_role,omitempty"` - - // References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` - - // Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. - // +kubebuilder:validation:Optional - VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` - - // One or more VPC security group IDs to associate with the new proxy. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup - // +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs - // +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector - // +kubebuilder:validation:Optional - VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` - - // One or more VPC subnet IDs to associate with the new proxy. - // +kubebuilder:validation:Optional - VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` + +// The name of the DB proxy associated with the DB proxy endpoint that you create. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Proxy +// +kubebuilder:validation:Optional +DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` + +// Reference to a Proxy in rds to populate dbProxyName. +// +kubebuilder:validation:Optional +DBProxyNameRef *v1.Reference `json:"dbProxyNameRef,omitempty" tf:"-"` + +// Selector for a Proxy in rds to populate dbProxyName. +// +kubebuilder:validation:Optional +DBProxyNameSelector *v1.Selector `json:"dbProxyNameSelector,omitempty" tf:"-"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// A mapping of tags to assign to the resource. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. Valid values are READ_WRITE and READ_ONLY. +// +kubebuilder:validation:Optional +TargetRole *string `json:"targetRole,omitempty" tf:"target_role,omitempty"` + +// References to SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDRefs []v1.Reference `json:"vpcSecurityGroupIdRefs,omitempty" tf:"-"` + +// Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds. +// +kubebuilder:validation:Optional +VPCSecurityGroupIDSelector *v1.Selector `json:"vpcSecurityGroupIdSelector,omitempty" tf:"-"` + +// One or more VPC security group IDs to associate with the new proxy. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.SecurityGroup +// +crossplane:generate:reference:refFieldName=VPCSecurityGroupIDRefs +// +crossplane:generate:reference:selectorFieldName=VPCSecurityGroupIDSelector +// +kubebuilder:validation:Optional +VPCSecurityGroupIds []*string `json:"vpcSecurityGroupIds,omitempty" tf:"vpc_security_group_ids,omitempty"` + +// One or more VPC subnet IDs to associate with the new proxy. +// +kubebuilder:validation:Optional +VPCSubnetIds []*string `json:"vpcSubnetIds,omitempty" tf:"vpc_subnet_ids,omitempty"` } // ProxyEndpointSpec defines the desired state of ProxyEndpoint type ProxyEndpointSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ProxyEndpointParameters `json:"forProvider"` + ForProvider ProxyEndpointParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -131,13 +140,13 @@ type ProxyEndpointSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ProxyEndpointInitParameters `json:"initProvider,omitempty"` + InitProvider ProxyEndpointInitParameters `json:"initProvider,omitempty"` } // ProxyEndpointStatus defines the observed state of ProxyEndpoint. type ProxyEndpointStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ProxyEndpointObservation `json:"atProvider,omitempty"` + AtProvider ProxyEndpointObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -152,10 +161,10 @@ type ProxyEndpointStatus struct { type ProxyEndpoint struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcSubnetIds) || (has(self.initProvider) && has(self.initProvider.vpcSubnetIds))",message="spec.forProvider.vpcSubnetIds is a required parameter" - Spec ProxyEndpointSpec `json:"spec"` - Status ProxyEndpointStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcSubnetIds) || (has(self.initProvider) && has(self.initProvider.vpcSubnetIds))",message="spec.forProvider.vpcSubnetIds is a required parameter" + Spec ProxyEndpointSpec `json:"spec"` + Status ProxyEndpointStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_proxytarget_types.go b/apis/rds/v1alpha1/zz_proxytarget_types.go index f0e2488..74172b9 100755 --- a/apis/rds/v1alpha1/zz_proxytarget_types.go +++ b/apis/rds/v1alpha1/zz_proxytarget_types.go @@ -15,99 +15,108 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ProxyTargetInitParameters struct { - // DB cluster identifier. - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // The name of the target group. - TargetGroupName *string `json:"targetGroupName,omitempty" tf:"target_group_name,omitempty"` +// DB cluster identifier. +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` + +// The name of the target group. +TargetGroupName *string `json:"targetGroupName,omitempty" tf:"target_group_name,omitempty"` } + type ProxyTargetObservation struct { - // DB cluster identifier. - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // DB instance identifier. - DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` +// DB cluster identifier. +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` + +// DB instance identifier. +DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - // The name of the DB proxy. - DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` +// The name of the DB proxy. +DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` - // Hostname for the target RDS DB Instance. Only returned for RDS_INSTANCE type. - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` +// Hostname for the target RDS DB Instance. Only returned for RDS_INSTANCE type. +Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - // Identifier of db_proxy_name, target_group_name, target type (e.g., RDS_INSTANCE or TRACKED_CLUSTER), and resource identifier separated by forward slashes (/). - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Identifier of db_proxy_name, target_group_name, target type (e.g., RDS_INSTANCE or TRACKED_CLUSTER), and resource identifier separated by forward slashes (/). +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Port for the target RDS DB Instance or Aurora DB Cluster. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +// Port for the target RDS DB Instance or Aurora DB Cluster. +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // Identifier representing the DB Instance or DB Cluster target. - RDSResourceID *string `json:"rdsResourceId,omitempty" tf:"rds_resource_id,omitempty"` +// Identifier representing the DB Instance or DB Cluster target. +RDSResourceID *string `json:"rdsResourceId,omitempty" tf:"rds_resource_id,omitempty"` - // Amazon Resource Name (ARN) for the DB instance or DB cluster. Currently not returned by the RDS API. - TargetArn *string `json:"targetArn,omitempty" tf:"target_arn,omitempty"` +// Amazon Resource Name (ARN) for the DB instance or DB cluster. Currently not returned by the RDS API. +TargetArn *string `json:"targetArn,omitempty" tf:"target_arn,omitempty"` - // The name of the target group. - TargetGroupName *string `json:"targetGroupName,omitempty" tf:"target_group_name,omitempty"` +// The name of the target group. +TargetGroupName *string `json:"targetGroupName,omitempty" tf:"target_group_name,omitempty"` - // DB Cluster identifier for the DB Instance target. Not returned unless manually importing an RDS_INSTANCE target that is part of a DB Cluster. - TrackedClusterID *string `json:"trackedClusterId,omitempty" tf:"tracked_cluster_id,omitempty"` +// DB Cluster identifier for the DB Instance target. Not returned unless manually importing an RDS_INSTANCE target that is part of a DB Cluster. +TrackedClusterID *string `json:"trackedClusterId,omitempty" tf:"tracked_cluster_id,omitempty"` - // Type of targetE.g., RDS_INSTANCE or TRACKED_CLUSTER - Type *string `json:"type,omitempty" tf:"type,omitempty"` +// Type of targetE.g., RDS_INSTANCE or TRACKED_CLUSTER +Type *string `json:"type,omitempty" tf:"type,omitempty"` } + type ProxyTargetParameters struct { - // DB cluster identifier. - // +kubebuilder:validation:Optional - DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` - // DB instance identifier. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance - // +kubebuilder:validation:Optional - DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` +// DB cluster identifier. +// +kubebuilder:validation:Optional +DBClusterIdentifier *string `json:"dbClusterIdentifier,omitempty" tf:"db_cluster_identifier,omitempty"` + +// DB instance identifier. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance +// +kubebuilder:validation:Optional +DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - // Reference to a Instance in rds to populate dbInstanceIdentifier. - // +kubebuilder:validation:Optional - DBInstanceIdentifierRef *v1.Reference `json:"dbInstanceIdentifierRef,omitempty" tf:"-"` +// Reference to a Instance in rds to populate dbInstanceIdentifier. +// +kubebuilder:validation:Optional +DBInstanceIdentifierRef *v1.Reference `json:"dbInstanceIdentifierRef,omitempty" tf:"-"` - // Selector for a Instance in rds to populate dbInstanceIdentifier. - // +kubebuilder:validation:Optional - DBInstanceIdentifierSelector *v1.Selector `json:"dbInstanceIdentifierSelector,omitempty" tf:"-"` +// Selector for a Instance in rds to populate dbInstanceIdentifier. +// +kubebuilder:validation:Optional +DBInstanceIdentifierSelector *v1.Selector `json:"dbInstanceIdentifierSelector,omitempty" tf:"-"` - // The name of the DB proxy. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Proxy - // +kubebuilder:validation:Optional - DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` +// The name of the DB proxy. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Proxy +// +kubebuilder:validation:Optional +DBProxyName *string `json:"dbProxyName,omitempty" tf:"db_proxy_name,omitempty"` - // Reference to a Proxy in rds to populate dbProxyName. - // +kubebuilder:validation:Optional - DBProxyNameRef *v1.Reference `json:"dbProxyNameRef,omitempty" tf:"-"` +// Reference to a Proxy in rds to populate dbProxyName. +// +kubebuilder:validation:Optional +DBProxyNameRef *v1.Reference `json:"dbProxyNameRef,omitempty" tf:"-"` - // Selector for a Proxy in rds to populate dbProxyName. - // +kubebuilder:validation:Optional - DBProxyNameSelector *v1.Selector `json:"dbProxyNameSelector,omitempty" tf:"-"` +// Selector for a Proxy in rds to populate dbProxyName. +// +kubebuilder:validation:Optional +DBProxyNameSelector *v1.Selector `json:"dbProxyNameSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // The name of the target group. - // +kubebuilder:validation:Optional - TargetGroupName *string `json:"targetGroupName,omitempty" tf:"target_group_name,omitempty"` +// The name of the target group. +// +kubebuilder:validation:Optional +TargetGroupName *string `json:"targetGroupName,omitempty" tf:"target_group_name,omitempty"` } // ProxyTargetSpec defines the desired state of ProxyTarget type ProxyTargetSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider ProxyTargetParameters `json:"forProvider"` + ForProvider ProxyTargetParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -118,13 +127,13 @@ type ProxyTargetSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider ProxyTargetInitParameters `json:"initProvider,omitempty"` + InitProvider ProxyTargetInitParameters `json:"initProvider,omitempty"` } // ProxyTargetStatus defines the observed state of ProxyTarget. type ProxyTargetStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider ProxyTargetObservation `json:"atProvider,omitempty"` + AtProvider ProxyTargetObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -139,10 +148,10 @@ type ProxyTargetStatus struct { type ProxyTarget struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.targetGroupName) || (has(self.initProvider) && has(self.initProvider.targetGroupName))",message="spec.forProvider.targetGroupName is a required parameter" - Spec ProxyTargetSpec `json:"spec"` - Status ProxyTargetStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.targetGroupName) || (has(self.initProvider) && has(self.initProvider.targetGroupName))",message="spec.forProvider.targetGroupName is a required parameter" + Spec ProxyTargetSpec `json:"spec"` + Status ProxyTargetStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_snapshot_types.go b/apis/rds/v1alpha1/zz_snapshot_types.go index 8a977c8..f20c8f0 100755 --- a/apis/rds/v1alpha1/zz_snapshot_types.go +++ b/apis/rds/v1alpha1/zz_snapshot_types.go @@ -15,123 +15,132 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SnapshotInitParameters struct { - // List of AWS Account ids to share snapshot with, use all to make snaphot public. - SharedAccounts []*string `json:"sharedAccounts,omitempty" tf:"shared_accounts,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// List of AWS Account ids to share snapshot with, use all to make snaphot public. +SharedAccounts []*string `json:"sharedAccounts,omitempty" tf:"shared_accounts,omitempty"` + +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SnapshotObservation struct { - // Specifies the allocated storage size in gigabytes (GB). - AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` - // Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot. - AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` +// Specifies the allocated storage size in gigabytes (GB). +AllocatedStorage *float64 `json:"allocatedStorage,omitempty" tf:"allocated_storage,omitempty"` + +// Specifies the name of the Availability Zone the DB instance was located in at the time of the DB snapshot. +AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` - // The DB Instance Identifier from which to take the snapshot. - DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` +// The DB Instance Identifier from which to take the snapshot. +DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - // The Amazon Resource Name (ARN) for the DB snapshot. - DBSnapshotArn *string `json:"dbSnapshotArn,omitempty" tf:"db_snapshot_arn,omitempty"` +// The Amazon Resource Name (ARN) for the DB snapshot. +DBSnapshotArn *string `json:"dbSnapshotArn,omitempty" tf:"db_snapshot_arn,omitempty"` - // Specifies whether the DB snapshot is encrypted. - Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` +// Specifies whether the DB snapshot is encrypted. +Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` - // Specifies the name of the database engine. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` +// Specifies the name of the database engine. +Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // Specifies the version of the database engine. - EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` +// Specifies the version of the database engine. +EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` - ID *string `json:"id,omitempty" tf:"id,omitempty"` +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot. - Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` +// Specifies the Provisioned IOPS (I/O operations per second) value of the DB instance at the time of the snapshot. +Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` - // The ARN for the KMS encryption key. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// The ARN for the KMS encryption key. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // License model information for the restored DB instance. - LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` +// License model information for the restored DB instance. +LicenseModel *string `json:"licenseModel,omitempty" tf:"license_model,omitempty"` - // Provides the option group name for the DB snapshot. - OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` +// Provides the option group name for the DB snapshot. +OptionGroupName *string `json:"optionGroupName,omitempty" tf:"option_group_name,omitempty"` - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` +Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - // List of AWS Account ids to share snapshot with, use all to make snaphot public. - SharedAccounts []*string `json:"sharedAccounts,omitempty" tf:"shared_accounts,omitempty"` +// List of AWS Account ids to share snapshot with, use all to make snaphot public. +SharedAccounts []*string `json:"sharedAccounts,omitempty" tf:"shared_accounts,omitempty"` - SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` +SnapshotType *string `json:"snapshotType,omitempty" tf:"snapshot_type,omitempty"` - // The DB snapshot Arn that the DB snapshot was copied from. It only has value in case of cross customer or cross region copy. - SourceDBSnapshotIdentifier *string `json:"sourceDbSnapshotIdentifier,omitempty" tf:"source_db_snapshot_identifier,omitempty"` +// The DB snapshot Arn that the DB snapshot was copied from. It only has value in case of cross customer or cross region copy. +SourceDBSnapshotIdentifier *string `json:"sourceDbSnapshotIdentifier,omitempty" tf:"source_db_snapshot_identifier,omitempty"` - // The region that the DB snapshot was created in or copied from. - SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` +// The region that the DB snapshot was created in or copied from. +SourceRegion *string `json:"sourceRegion,omitempty" tf:"source_region,omitempty"` - // Specifies the status of this DB snapshot. - Status *string `json:"status,omitempty" tf:"status,omitempty"` +// Specifies the status of this DB snapshot. +Status *string `json:"status,omitempty" tf:"status,omitempty"` - // Specifies the storage type associated with DB snapshot. - StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` +// Specifies the storage type associated with DB snapshot. +StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Provides the VPC ID associated with the DB snapshot. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// Provides the VPC ID associated with the DB snapshot. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type SnapshotParameters struct { - // The DB Instance Identifier from which to take the snapshot. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance - // +kubebuilder:validation:Optional - DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` - // Reference to a Instance in rds to populate dbInstanceIdentifier. - // +kubebuilder:validation:Optional - DBInstanceIdentifierRef *v1.Reference `json:"dbInstanceIdentifierRef,omitempty" tf:"-"` +// The DB Instance Identifier from which to take the snapshot. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/rds/v1alpha1.Instance +// +kubebuilder:validation:Optional +DBInstanceIdentifier *string `json:"dbInstanceIdentifier,omitempty" tf:"db_instance_identifier,omitempty"` + +// Reference to a Instance in rds to populate dbInstanceIdentifier. +// +kubebuilder:validation:Optional +DBInstanceIdentifierRef *v1.Reference `json:"dbInstanceIdentifierRef,omitempty" tf:"-"` - // Selector for a Instance in rds to populate dbInstanceIdentifier. - // +kubebuilder:validation:Optional - DBInstanceIdentifierSelector *v1.Selector `json:"dbInstanceIdentifierSelector,omitempty" tf:"-"` +// Selector for a Instance in rds to populate dbInstanceIdentifier. +// +kubebuilder:validation:Optional +DBInstanceIdentifierSelector *v1.Selector `json:"dbInstanceIdentifierSelector,omitempty" tf:"-"` - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // List of AWS Account ids to share snapshot with, use all to make snaphot public. - // +kubebuilder:validation:Optional - SharedAccounts []*string `json:"sharedAccounts,omitempty" tf:"shared_accounts,omitempty"` +// List of AWS Account ids to share snapshot with, use all to make snaphot public. +// +kubebuilder:validation:Optional +SharedAccounts []*string `json:"sharedAccounts,omitempty" tf:"shared_accounts,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SnapshotSpec defines the desired state of Snapshot type SnapshotSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SnapshotParameters `json:"forProvider"` + ForProvider SnapshotParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -142,13 +151,13 @@ type SnapshotSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SnapshotInitParameters `json:"initProvider,omitempty"` + InitProvider SnapshotInitParameters `json:"initProvider,omitempty"` } // SnapshotStatus defines the observed state of Snapshot. type SnapshotStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SnapshotObservation `json:"atProvider,omitempty"` + AtProvider SnapshotObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -163,9 +172,9 @@ type SnapshotStatus struct { type Snapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SnapshotSpec `json:"spec"` - Status SnapshotStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SnapshotSpec `json:"spec"` + Status SnapshotStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/rds/v1alpha1/zz_subnetgroup_types.go b/apis/rds/v1alpha1/zz_subnetgroup_types.go index ed4a411..9426ea4 100755 --- a/apis/rds/v1alpha1/zz_subnetgroup_types.go +++ b/apis/rds/v1alpha1/zz_subnetgroup_types.go @@ -15,86 +15,95 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type SubnetGroupInitParameters struct { - // The description of the DB subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The description of the DB subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SubnetGroupObservation struct { - // The ARN of the db subnet group. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The description of the DB subnet group. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// The ARN of the db subnet group. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // The db subnet group name. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The description of the DB subnet group. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // A list of VPC subnet IDs. - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` +// The db subnet group name. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The network type of the db subnet group. - SupportedNetworkTypes []*string `json:"supportedNetworkTypes,omitempty" tf:"supported_network_types,omitempty"` +// A list of VPC subnet IDs. +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// The network type of the db subnet group. +SupportedNetworkTypes []*string `json:"supportedNetworkTypes,omitempty" tf:"supported_network_types,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Provides the VPC ID of the DB subnet group. - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Provides the VPC ID of the DB subnet group. +VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` } + type SubnetGroupParameters struct { - // The description of the DB subnet group. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // References to Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` - - // Selector for a list of Subnet in ec2 to populate subnetIds. - // +kubebuilder:validation:Optional - SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` - - // A list of VPC subnet IDs. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet - // +crossplane:generate:reference:refFieldName=SubnetIDRefs - // +crossplane:generate:reference:selectorFieldName=SubnetIDSelector - // +kubebuilder:validation:Optional - SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` - - // A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// The description of the DB subnet group. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// References to Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` + +// Selector for a list of Subnet in ec2 to populate subnetIds. +// +kubebuilder:validation:Optional +SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + +// A list of VPC subnet IDs. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/ec2/v1alpha1.Subnet +// +crossplane:generate:reference:refFieldName=SubnetIDRefs +// +crossplane:generate:reference:selectorFieldName=SubnetIDSelector +// +kubebuilder:validation:Optional +SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` + +// A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SubnetGroupSpec defines the desired state of SubnetGroup type SubnetGroupSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SubnetGroupParameters `json:"forProvider"` + ForProvider SubnetGroupParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -105,13 +114,13 @@ type SubnetGroupSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` + InitProvider SubnetGroupInitParameters `json:"initProvider,omitempty"` } // SubnetGroupStatus defines the observed state of SubnetGroup. type SubnetGroupStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` + AtProvider SubnetGroupObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -126,9 +135,9 @@ type SubnetGroupStatus struct { type SubnetGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SubnetGroupSpec `json:"spec"` - Status SubnetGroupStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SubnetGroupSpec `json:"spec"` + Status SubnetGroupStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/register_crd.go b/apis/register_crd.go new file mode 100644 index 0000000..a655129 --- /dev/null +++ b/apis/register_crd.go @@ -0,0 +1,18 @@ +package apis + +import ( + extentionapi "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +func init() { + // Register the types with the Scheme so the components can map objects to GroupVersionKinds and back + AddToSchemes = append(AddToSchemes, + extentionapi.AddToScheme, + ) +} + +// AddToScheme adds all Resources to the Scheme +func AddToSchemeCrd(s *runtime.Scheme) error { + return AddToSchemes.AddToScheme(s) +} diff --git a/apis/secretsmanager/v1alpha1/zz_secret_types.go b/apis/secretsmanager/v1alpha1/zz_secret_types.go index 193244b..341a21d 100755 --- a/apis/secretsmanager/v1alpha1/zz_secret_types.go +++ b/apis/secretsmanager/v1alpha1/zz_secret_types.go @@ -15,170 +15,185 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type ReplicaInitParameters struct { - // ARN, Key ID, or Alias of the AWS KMS key within the region secret is replicated to. If one is not specified, then Secrets Manager defaults to using the AWS account's default KMS key (aws/secretsmanager) in the region or creates one for use if non-existent. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Region for replicating the secret. - Region *string `json:"region,omitempty" tf:"region,omitempty"` +// ARN, Key ID, or Alias of the AWS KMS key within the region secret is replicated to. If one is not specified, then Secrets Manager defaults to using the AWS account's default KMS key (aws/secretsmanager) in the region or creates one for use if non-existent. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Region for replicating the secret. +Region *string `json:"region,omitempty" tf:"region,omitempty"` } + type ReplicaObservation struct { - // ARN, Key ID, or Alias of the AWS KMS key within the region secret is replicated to. If one is not specified, then Secrets Manager defaults to using the AWS account's default KMS key (aws/secretsmanager) in the region or creates one for use if non-existent. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Date that you last accessed the secret in the Region. - LastAccessedDate *string `json:"lastAccessedDate,omitempty" tf:"last_accessed_date,omitempty"` +// ARN, Key ID, or Alias of the AWS KMS key within the region secret is replicated to. If one is not specified, then Secrets Manager defaults to using the AWS account's default KMS key (aws/secretsmanager) in the region or creates one for use if non-existent. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Region for replicating the secret. - Region *string `json:"region,omitempty" tf:"region,omitempty"` +// Date that you last accessed the secret in the Region. +LastAccessedDate *string `json:"lastAccessedDate,omitempty" tf:"last_accessed_date,omitempty"` - // Status can be InProgress, Failed, or InSync. - Status *string `json:"status,omitempty" tf:"status,omitempty"` +// Region for replicating the secret. +Region *string `json:"region,omitempty" tf:"region,omitempty"` - // Message such as Replication succeeded or Secret with this name already exists in this region. - StatusMessage *string `json:"statusMessage,omitempty" tf:"status_message,omitempty"` +// Status can be InProgress, Failed, or InSync. +Status *string `json:"status,omitempty" tf:"status,omitempty"` + +// Message such as Replication succeeded or Secret with this name already exists in this region. +StatusMessage *string `json:"statusMessage,omitempty" tf:"status_message,omitempty"` } + type ReplicaParameters struct { - // ARN, Key ID, or Alias of the AWS KMS key within the region secret is replicated to. If one is not specified, then Secrets Manager defaults to using the AWS account's default KMS key (aws/secretsmanager) in the region or creates one for use if non-existent. - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Region for replicating the secret. - // +kubebuilder:validation:Optional - Region *string `json:"region" tf:"region,omitempty"` +// ARN, Key ID, or Alias of the AWS KMS key within the region secret is replicated to. If one is not specified, then Secrets Manager defaults to using the AWS account's default KMS key (aws/secretsmanager) in the region or creates one for use if non-existent. +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + +// Region for replicating the secret. +// +kubebuilder:validation:Optional +Region *string `json:"region" tf:"region,omitempty"` } + type SecretInitParameters struct { - // Description of the secret. - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Accepts boolean value to specify whether to overwrite a secret with the same name in the destination Region. - ForceOverwriteReplicaSecret *bool `json:"forceOverwriteReplicaSecret,omitempty" tf:"force_overwrite_replica_secret,omitempty"` +// Description of the secret. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Friendly name of the new secret. The secret name can consist of uppercase letters, lowercase letters, digits, and any of the following characters: /_+=.@- Conflicts with name_prefix. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Accepts boolean value to specify whether to overwrite a secret with the same name in the destination Region. +ForceOverwriteReplicaSecret *bool `json:"forceOverwriteReplicaSecret,omitempty" tf:"force_overwrite_replica_secret,omitempty"` - // Creates a unique name beginning with the specified prefix. Conflicts with name. - NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` +// Friendly name of the new secret. The secret name can consist of uppercase letters, lowercase letters, digits, and any of the following characters: /_+=.@- Conflicts with name_prefix. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. The default value is 30. - RecoveryWindowInDays *float64 `json:"recoveryWindowInDays,omitempty" tf:"recovery_window_in_days,omitempty"` +// Creates a unique name beginning with the specified prefix. Conflicts with name. +NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` - // Configuration block to support secret replication. See details below. - Replica []ReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"` +// Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. The default value is 30. +RecoveryWindowInDays *float64 `json:"recoveryWindowInDays,omitempty" tf:"recovery_window_in_days,omitempty"` - // Key-value map of user-defined tags that are attached to the secret. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Configuration block to support secret replication. See details below. +Replica []ReplicaInitParameters `json:"replica,omitempty" tf:"replica,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value map of user-defined tags that are attached to the secret. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SecretObservation struct { - // ARN of the secret. - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Description of the secret. - Description *string `json:"description,omitempty" tf:"description,omitempty"` +// ARN of the secret. +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Accepts boolean value to specify whether to overwrite a secret with the same name in the destination Region. - ForceOverwriteReplicaSecret *bool `json:"forceOverwriteReplicaSecret,omitempty" tf:"force_overwrite_replica_secret,omitempty"` +// Description of the secret. +Description *string `json:"description,omitempty" tf:"description,omitempty"` - // ARN of the secret. - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// Accepts boolean value to specify whether to overwrite a secret with the same name in the destination Region. +ForceOverwriteReplicaSecret *bool `json:"forceOverwriteReplicaSecret,omitempty" tf:"force_overwrite_replica_secret,omitempty"` - // ARN or Id of the AWS KMS key to be used to encrypt the secret values in the versions stored in this secret. If you need to reference a CMK in a different account, you can use only the key ARN. If you don't specify this value, then Secrets Manager defaults to using the AWS account's default KMS key (the one named aws/secretsmanager). If the default KMS key with that name doesn't yet exist, then AWS Secrets Manager creates it for you automatically the first time. - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// ARN of the secret. +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // Friendly name of the new secret. The secret name can consist of uppercase letters, lowercase letters, digits, and any of the following characters: /_+=.@- Conflicts with name_prefix. - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// ARN or Id of the AWS KMS key to be used to encrypt the secret values in the versions stored in this secret. If you need to reference a CMK in a different account, you can use only the key ARN. If you don't specify this value, then Secrets Manager defaults to using the AWS account's default KMS key (the one named aws/secretsmanager). If the default KMS key with that name doesn't yet exist, then AWS Secrets Manager creates it for you automatically the first time. +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Creates a unique name beginning with the specified prefix. Conflicts with name. - NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` +// Friendly name of the new secret. The secret name can consist of uppercase letters, lowercase letters, digits, and any of the following characters: /_+=.@- Conflicts with name_prefix. +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Valid JSON document representing a resource policy. Removing policy from your configuration or setting policy to null or an empty string (i.e., policy = "") will not delete the policy since it could have been set by aws_secretsmanager_secret_policy. To delete the policy, set it to "{}" (an empty JSON document). - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// Creates a unique name beginning with the specified prefix. Conflicts with name. +NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` - // Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. The default value is 30. - RecoveryWindowInDays *float64 `json:"recoveryWindowInDays,omitempty" tf:"recovery_window_in_days,omitempty"` +// Valid JSON document representing a resource policy. Removing policy from your configuration or setting policy to null or an empty string (i.e., policy = "") will not delete the policy since it could have been set by aws_secretsmanager_secret_policy. To delete the policy, set it to "{}" (an empty JSON document). +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // Configuration block to support secret replication. See details below. - Replica []ReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"` +// Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. The default value is 30. +RecoveryWindowInDays *float64 `json:"recoveryWindowInDays,omitempty" tf:"recovery_window_in_days,omitempty"` - // Key-value map of user-defined tags that are attached to the secret. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Configuration block to support secret replication. See details below. +Replica []ReplicaObservation `json:"replica,omitempty" tf:"replica,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Key-value map of user-defined tags that are attached to the secret. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } + type SecretParameters struct { - // Description of the secret. - // +kubebuilder:validation:Optional - Description *string `json:"description,omitempty" tf:"description,omitempty"` - // Accepts boolean value to specify whether to overwrite a secret with the same name in the destination Region. - // +kubebuilder:validation:Optional - ForceOverwriteReplicaSecret *bool `json:"forceOverwriteReplicaSecret,omitempty" tf:"force_overwrite_replica_secret,omitempty"` +// Description of the secret. +// +kubebuilder:validation:Optional +Description *string `json:"description,omitempty" tf:"description,omitempty"` + +// Accepts boolean value to specify whether to overwrite a secret with the same name in the destination Region. +// +kubebuilder:validation:Optional +ForceOverwriteReplicaSecret *bool `json:"forceOverwriteReplicaSecret,omitempty" tf:"force_overwrite_replica_secret,omitempty"` - // ARN or Id of the AWS KMS key to be used to encrypt the secret values in the versions stored in this secret. If you need to reference a CMK in a different account, you can use only the key ARN. If you don't specify this value, then Secrets Manager defaults to using the AWS account's default KMS key (the one named aws/secretsmanager). If the default KMS key with that name doesn't yet exist, then AWS Secrets Manager creates it for you automatically the first time. - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key - // +kubebuilder:validation:Optional - KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +// ARN or Id of the AWS KMS key to be used to encrypt the secret values in the versions stored in this secret. If you need to reference a CMK in a different account, you can use only the key ARN. If you don't specify this value, then Secrets Manager defaults to using the AWS account's default KMS key (the one named aws/secretsmanager). If the default KMS key with that name doesn't yet exist, then AWS Secrets Manager creates it for you automatically the first time. +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/kms/v1alpha1.Key +// +kubebuilder:validation:Optional +KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` - // Reference to a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` +// Reference to a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` - // Selector for a Key in kms to populate kmsKeyId. - // +kubebuilder:validation:Optional - KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` +// Selector for a Key in kms to populate kmsKeyId. +// +kubebuilder:validation:Optional +KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` - // Friendly name of the new secret. The secret name can consist of uppercase letters, lowercase letters, digits, and any of the following characters: /_+=.@- Conflicts with name_prefix. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` +// Friendly name of the new secret. The secret name can consist of uppercase letters, lowercase letters, digits, and any of the following characters: /_+=.@- Conflicts with name_prefix. +// +kubebuilder:validation:Optional +Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Creates a unique name beginning with the specified prefix. Conflicts with name. - // +kubebuilder:validation:Optional - NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` +// Creates a unique name beginning with the specified prefix. Conflicts with name. +// +kubebuilder:validation:Optional +NamePrefix *string `json:"namePrefix,omitempty" tf:"name_prefix,omitempty"` - // Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. The default value is 30. - // +kubebuilder:validation:Optional - RecoveryWindowInDays *float64 `json:"recoveryWindowInDays,omitempty" tf:"recovery_window_in_days,omitempty"` +// Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. The default value is 30. +// +kubebuilder:validation:Optional +RecoveryWindowInDays *float64 `json:"recoveryWindowInDays,omitempty" tf:"recovery_window_in_days,omitempty"` - // Region for replicating the secret. - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` +// Region for replicating the secret. +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` - // Configuration block to support secret replication. See details below. - // +kubebuilder:validation:Optional - Replica []ReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"` +// Configuration block to support secret replication. See details below. +// +kubebuilder:validation:Optional +Replica []ReplicaParameters `json:"replica,omitempty" tf:"replica,omitempty"` - // Key-value map of user-defined tags that are attached to the secret. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of user-defined tags that are attached to the secret. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` } // SecretSpec defines the desired state of Secret type SecretSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider SecretParameters `json:"forProvider"` + ForProvider SecretParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -189,13 +204,13 @@ type SecretSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider SecretInitParameters `json:"initProvider,omitempty"` + InitProvider SecretInitParameters `json:"initProvider,omitempty"` } // SecretStatus defines the observed state of Secret. type SecretStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider SecretObservation `json:"atProvider,omitempty"` + AtProvider SecretObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -210,9 +225,9 @@ type SecretStatus struct { type Secret struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec SecretSpec `json:"spec"` - Status SecretStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec SecretSpec `json:"spec"` + Status SecretStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/sns/v1alpha1/zz_topic_types.go b/apis/sns/v1alpha1/zz_topic_types.go index c2a9de4..25855b9 100755 --- a/apis/sns/v1alpha1/zz_topic_types.go +++ b/apis/sns/v1alpha1/zz_topic_types.go @@ -15,355 +15,364 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + ) + + + type TopicInitParameters struct { - // Percentage of success to sample - ApplicationSuccessFeedbackSampleRate *float64 `json:"applicationSuccessFeedbackSampleRate,omitempty" tf:"application_success_feedback_sample_rate,omitempty"` - // Enables content-based deduplication for FIFO topics. For more information, see the related documentation - ContentBasedDeduplication *bool `json:"contentBasedDeduplication,omitempty" tf:"content_based_deduplication,omitempty"` +// Percentage of success to sample +ApplicationSuccessFeedbackSampleRate *float64 `json:"applicationSuccessFeedbackSampleRate,omitempty" tf:"application_success_feedback_sample_rate,omitempty"` + +// Enables content-based deduplication for FIFO topics. For more information, see the related documentation +ContentBasedDeduplication *bool `json:"contentBasedDeduplication,omitempty" tf:"content_based_deduplication,omitempty"` - // The SNS delivery policy. More on AWS documentation - DeliveryPolicy *string `json:"deliveryPolicy,omitempty" tf:"delivery_policy,omitempty"` +// The SNS delivery policy. More on AWS documentation +DeliveryPolicy *string `json:"deliveryPolicy,omitempty" tf:"delivery_policy,omitempty"` - // The display name for the topic - DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` +// The display name for the topic +DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` - // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is false). - FifoTopic *bool `json:"fifoTopic,omitempty" tf:"fifo_topic,omitempty"` +// Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is false). +FifoTopic *bool `json:"fifoTopic,omitempty" tf:"fifo_topic,omitempty"` - // Percentage of success to sample - FirehoseSuccessFeedbackSampleRate *float64 `json:"firehoseSuccessFeedbackSampleRate,omitempty" tf:"firehose_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +FirehoseSuccessFeedbackSampleRate *float64 `json:"firehoseSuccessFeedbackSampleRate,omitempty" tf:"firehose_success_feedback_sample_rate,omitempty"` - // Percentage of success to sample - HTTPSuccessFeedbackSampleRate *float64 `json:"httpSuccessFeedbackSampleRate,omitempty" tf:"http_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +HTTPSuccessFeedbackSampleRate *float64 `json:"httpSuccessFeedbackSampleRate,omitempty" tf:"http_success_feedback_sample_rate,omitempty"` - // The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms - KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty" tf:"kms_master_key_id,omitempty"` +// The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms +KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty" tf:"kms_master_key_id,omitempty"` - // Percentage of success to sample - LambdaSuccessFeedbackSampleRate *float64 `json:"lambdaSuccessFeedbackSampleRate,omitempty" tf:"lambda_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +LambdaSuccessFeedbackSampleRate *float64 `json:"lambdaSuccessFeedbackSampleRate,omitempty" tf:"lambda_success_feedback_sample_rate,omitempty"` - // The fully-formed AWS policy as JSON. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// The fully-formed AWS policy as JSON. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // If SignatureVersion should be 1 (SHA1) or 2 (SHA256). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. - SignatureVersion *float64 `json:"signatureVersion,omitempty" tf:"signature_version,omitempty"` +// If SignatureVersion should be 1 (SHA1) or 2 (SHA256). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. +SignatureVersion *float64 `json:"signatureVersion,omitempty" tf:"signature_version,omitempty"` - // Percentage of success to sample - SqsSuccessFeedbackSampleRate *float64 `json:"sqsSuccessFeedbackSampleRate,omitempty" tf:"sqs_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +SqsSuccessFeedbackSampleRate *float64 `json:"sqsSuccessFeedbackSampleRate,omitempty" tf:"sqs_success_feedback_sample_rate,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Tracing mode of an Amazon SNS topic. Valid values: "PassThrough", "Active". - TracingConfig *string `json:"tracingConfig,omitempty" tf:"tracing_config,omitempty"` +// Tracing mode of an Amazon SNS topic. Valid values: "PassThrough", "Active". +TracingConfig *string `json:"tracingConfig,omitempty" tf:"tracing_config,omitempty"` } + type TopicObservation struct { - // IAM role for failure feedback - ApplicationFailureFeedbackRoleArn *string `json:"applicationFailureFeedbackRoleArn,omitempty" tf:"application_failure_feedback_role_arn,omitempty"` - // The IAM role permitted to receive success feedback for this topic - ApplicationSuccessFeedbackRoleArn *string `json:"applicationSuccessFeedbackRoleArn,omitempty" tf:"application_success_feedback_role_arn,omitempty"` +// IAM role for failure feedback +ApplicationFailureFeedbackRoleArn *string `json:"applicationFailureFeedbackRoleArn,omitempty" tf:"application_failure_feedback_role_arn,omitempty"` + +// The IAM role permitted to receive success feedback for this topic +ApplicationSuccessFeedbackRoleArn *string `json:"applicationSuccessFeedbackRoleArn,omitempty" tf:"application_success_feedback_role_arn,omitempty"` - // Percentage of success to sample - ApplicationSuccessFeedbackSampleRate *float64 `json:"applicationSuccessFeedbackSampleRate,omitempty" tf:"application_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +ApplicationSuccessFeedbackSampleRate *float64 `json:"applicationSuccessFeedbackSampleRate,omitempty" tf:"application_success_feedback_sample_rate,omitempty"` - // The ARN of the SNS topic, as a more obvious property (clone of id) - Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` +// The ARN of the SNS topic, as a more obvious property (clone of id) +Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` - // Enables content-based deduplication for FIFO topics. For more information, see the related documentation - ContentBasedDeduplication *bool `json:"contentBasedDeduplication,omitempty" tf:"content_based_deduplication,omitempty"` +// Enables content-based deduplication for FIFO topics. For more information, see the related documentation +ContentBasedDeduplication *bool `json:"contentBasedDeduplication,omitempty" tf:"content_based_deduplication,omitempty"` - // The SNS delivery policy. More on AWS documentation - DeliveryPolicy *string `json:"deliveryPolicy,omitempty" tf:"delivery_policy,omitempty"` +// The SNS delivery policy. More on AWS documentation +DeliveryPolicy *string `json:"deliveryPolicy,omitempty" tf:"delivery_policy,omitempty"` - // The display name for the topic - DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` +// The display name for the topic +DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` - // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is false). - FifoTopic *bool `json:"fifoTopic,omitempty" tf:"fifo_topic,omitempty"` +// Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is false). +FifoTopic *bool `json:"fifoTopic,omitempty" tf:"fifo_topic,omitempty"` - // IAM role for failure feedback - FirehoseFailureFeedbackRoleArn *string `json:"firehoseFailureFeedbackRoleArn,omitempty" tf:"firehose_failure_feedback_role_arn,omitempty"` +// IAM role for failure feedback +FirehoseFailureFeedbackRoleArn *string `json:"firehoseFailureFeedbackRoleArn,omitempty" tf:"firehose_failure_feedback_role_arn,omitempty"` - // The IAM role permitted to receive success feedback for this topic - FirehoseSuccessFeedbackRoleArn *string `json:"firehoseSuccessFeedbackRoleArn,omitempty" tf:"firehose_success_feedback_role_arn,omitempty"` +// The IAM role permitted to receive success feedback for this topic +FirehoseSuccessFeedbackRoleArn *string `json:"firehoseSuccessFeedbackRoleArn,omitempty" tf:"firehose_success_feedback_role_arn,omitempty"` - // Percentage of success to sample - FirehoseSuccessFeedbackSampleRate *float64 `json:"firehoseSuccessFeedbackSampleRate,omitempty" tf:"firehose_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +FirehoseSuccessFeedbackSampleRate *float64 `json:"firehoseSuccessFeedbackSampleRate,omitempty" tf:"firehose_success_feedback_sample_rate,omitempty"` - // IAM role for failure feedback - HTTPFailureFeedbackRoleArn *string `json:"httpFailureFeedbackRoleArn,omitempty" tf:"http_failure_feedback_role_arn,omitempty"` +// IAM role for failure feedback +HTTPFailureFeedbackRoleArn *string `json:"httpFailureFeedbackRoleArn,omitempty" tf:"http_failure_feedback_role_arn,omitempty"` - // The IAM role permitted to receive success feedback for this topic - HTTPSuccessFeedbackRoleArn *string `json:"httpSuccessFeedbackRoleArn,omitempty" tf:"http_success_feedback_role_arn,omitempty"` +// The IAM role permitted to receive success feedback for this topic +HTTPSuccessFeedbackRoleArn *string `json:"httpSuccessFeedbackRoleArn,omitempty" tf:"http_success_feedback_role_arn,omitempty"` - // Percentage of success to sample - HTTPSuccessFeedbackSampleRate *float64 `json:"httpSuccessFeedbackSampleRate,omitempty" tf:"http_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +HTTPSuccessFeedbackSampleRate *float64 `json:"httpSuccessFeedbackSampleRate,omitempty" tf:"http_success_feedback_sample_rate,omitempty"` - // The ARN of the SNS topic - ID *string `json:"id,omitempty" tf:"id,omitempty"` +// The ARN of the SNS topic +ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms - KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty" tf:"kms_master_key_id,omitempty"` +// The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms +KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty" tf:"kms_master_key_id,omitempty"` - // IAM role for failure feedback - LambdaFailureFeedbackRoleArn *string `json:"lambdaFailureFeedbackRoleArn,omitempty" tf:"lambda_failure_feedback_role_arn,omitempty"` +// IAM role for failure feedback +LambdaFailureFeedbackRoleArn *string `json:"lambdaFailureFeedbackRoleArn,omitempty" tf:"lambda_failure_feedback_role_arn,omitempty"` - // The IAM role permitted to receive success feedback for this topic - LambdaSuccessFeedbackRoleArn *string `json:"lambdaSuccessFeedbackRoleArn,omitempty" tf:"lambda_success_feedback_role_arn,omitempty"` +// The IAM role permitted to receive success feedback for this topic +LambdaSuccessFeedbackRoleArn *string `json:"lambdaSuccessFeedbackRoleArn,omitempty" tf:"lambda_success_feedback_role_arn,omitempty"` - // Percentage of success to sample - LambdaSuccessFeedbackSampleRate *float64 `json:"lambdaSuccessFeedbackSampleRate,omitempty" tf:"lambda_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +LambdaSuccessFeedbackSampleRate *float64 `json:"lambdaSuccessFeedbackSampleRate,omitempty" tf:"lambda_success_feedback_sample_rate,omitempty"` - // The AWS Account ID of the SNS topic owner - Owner *string `json:"owner,omitempty" tf:"owner,omitempty"` +// The AWS Account ID of the SNS topic owner +Owner *string `json:"owner,omitempty" tf:"owner,omitempty"` - // The fully-formed AWS policy as JSON. - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +// The fully-formed AWS policy as JSON. +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - // If SignatureVersion should be 1 (SHA1) or 2 (SHA256). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. - SignatureVersion *float64 `json:"signatureVersion,omitempty" tf:"signature_version,omitempty"` +// If SignatureVersion should be 1 (SHA1) or 2 (SHA256). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. +SignatureVersion *float64 `json:"signatureVersion,omitempty" tf:"signature_version,omitempty"` - // IAM role for failure feedback - SqsFailureFeedbackRoleArn *string `json:"sqsFailureFeedbackRoleArn,omitempty" tf:"sqs_failure_feedback_role_arn,omitempty"` +// IAM role for failure feedback +SqsFailureFeedbackRoleArn *string `json:"sqsFailureFeedbackRoleArn,omitempty" tf:"sqs_failure_feedback_role_arn,omitempty"` - // The IAM role permitted to receive success feedback for this topic - SqsSuccessFeedbackRoleArn *string `json:"sqsSuccessFeedbackRoleArn,omitempty" tf:"sqs_success_feedback_role_arn,omitempty"` +// The IAM role permitted to receive success feedback for this topic +SqsSuccessFeedbackRoleArn *string `json:"sqsSuccessFeedbackRoleArn,omitempty" tf:"sqs_success_feedback_role_arn,omitempty"` - // Percentage of success to sample - SqsSuccessFeedbackSampleRate *float64 `json:"sqsSuccessFeedbackSampleRate,omitempty" tf:"sqs_success_feedback_sample_rate,omitempty"` +// Percentage of success to sample +SqsSuccessFeedbackSampleRate *float64 `json:"sqsSuccessFeedbackSampleRate,omitempty" tf:"sqs_success_feedback_sample_rate,omitempty"` - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - // Tracing mode of an Amazon SNS topic. Valid values: "PassThrough", "Active". - TracingConfig *string `json:"tracingConfig,omitempty" tf:"tracing_config,omitempty"` +// Tracing mode of an Amazon SNS topic. Valid values: "PassThrough", "Active". +TracingConfig *string `json:"tracingConfig,omitempty" tf:"tracing_config,omitempty"` } + type TopicParameters struct { - // IAM role for failure feedback - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - ApplicationFailureFeedbackRoleArn *string `json:"applicationFailureFeedbackRoleArn,omitempty" tf:"application_failure_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate applicationFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - ApplicationFailureFeedbackRoleArnRef *v1.Reference `json:"applicationFailureFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate applicationFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - ApplicationFailureFeedbackRoleArnSelector *v1.Selector `json:"applicationFailureFeedbackRoleArnSelector,omitempty" tf:"-"` - - // The IAM role permitted to receive success feedback for this topic - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - ApplicationSuccessFeedbackRoleArn *string `json:"applicationSuccessFeedbackRoleArn,omitempty" tf:"application_success_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate applicationSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - ApplicationSuccessFeedbackRoleArnRef *v1.Reference `json:"applicationSuccessFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate applicationSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - ApplicationSuccessFeedbackRoleArnSelector *v1.Selector `json:"applicationSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` - - // Percentage of success to sample - // +kubebuilder:validation:Optional - ApplicationSuccessFeedbackSampleRate *float64 `json:"applicationSuccessFeedbackSampleRate,omitempty" tf:"application_success_feedback_sample_rate,omitempty"` - - // Enables content-based deduplication for FIFO topics. For more information, see the related documentation - // +kubebuilder:validation:Optional - ContentBasedDeduplication *bool `json:"contentBasedDeduplication,omitempty" tf:"content_based_deduplication,omitempty"` - - // The SNS delivery policy. More on AWS documentation - // +kubebuilder:validation:Optional - DeliveryPolicy *string `json:"deliveryPolicy,omitempty" tf:"delivery_policy,omitempty"` - - // The display name for the topic - // +kubebuilder:validation:Optional - DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` - - // Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is false). - // +kubebuilder:validation:Optional - FifoTopic *bool `json:"fifoTopic,omitempty" tf:"fifo_topic,omitempty"` - - // IAM role for failure feedback - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - FirehoseFailureFeedbackRoleArn *string `json:"firehoseFailureFeedbackRoleArn,omitempty" tf:"firehose_failure_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate firehoseFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - FirehoseFailureFeedbackRoleArnRef *v1.Reference `json:"firehoseFailureFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate firehoseFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - FirehoseFailureFeedbackRoleArnSelector *v1.Selector `json:"firehoseFailureFeedbackRoleArnSelector,omitempty" tf:"-"` - - // The IAM role permitted to receive success feedback for this topic - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - FirehoseSuccessFeedbackRoleArn *string `json:"firehoseSuccessFeedbackRoleArn,omitempty" tf:"firehose_success_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate firehoseSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - FirehoseSuccessFeedbackRoleArnRef *v1.Reference `json:"firehoseSuccessFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate firehoseSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - FirehoseSuccessFeedbackRoleArnSelector *v1.Selector `json:"firehoseSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` - - // Percentage of success to sample - // +kubebuilder:validation:Optional - FirehoseSuccessFeedbackSampleRate *float64 `json:"firehoseSuccessFeedbackSampleRate,omitempty" tf:"firehose_success_feedback_sample_rate,omitempty"` - - // IAM role for failure feedback - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - HTTPFailureFeedbackRoleArn *string `json:"httpFailureFeedbackRoleArn,omitempty" tf:"http_failure_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate httpFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - HTTPFailureFeedbackRoleArnRef *v1.Reference `json:"httpFailureFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate httpFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - HTTPFailureFeedbackRoleArnSelector *v1.Selector `json:"httpFailureFeedbackRoleArnSelector,omitempty" tf:"-"` - - // The IAM role permitted to receive success feedback for this topic - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - HTTPSuccessFeedbackRoleArn *string `json:"httpSuccessFeedbackRoleArn,omitempty" tf:"http_success_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate httpSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - HTTPSuccessFeedbackRoleArnRef *v1.Reference `json:"httpSuccessFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate httpSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - HTTPSuccessFeedbackRoleArnSelector *v1.Selector `json:"httpSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` - - // Percentage of success to sample - // +kubebuilder:validation:Optional - HTTPSuccessFeedbackSampleRate *float64 `json:"httpSuccessFeedbackSampleRate,omitempty" tf:"http_success_feedback_sample_rate,omitempty"` - - // The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms - // +kubebuilder:validation:Optional - KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty" tf:"kms_master_key_id,omitempty"` - - // IAM role for failure feedback - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - LambdaFailureFeedbackRoleArn *string `json:"lambdaFailureFeedbackRoleArn,omitempty" tf:"lambda_failure_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate lambdaFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - LambdaFailureFeedbackRoleArnRef *v1.Reference `json:"lambdaFailureFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate lambdaFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - LambdaFailureFeedbackRoleArnSelector *v1.Selector `json:"lambdaFailureFeedbackRoleArnSelector,omitempty" tf:"-"` - - // The IAM role permitted to receive success feedback for this topic - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - LambdaSuccessFeedbackRoleArn *string `json:"lambdaSuccessFeedbackRoleArn,omitempty" tf:"lambda_success_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate lambdaSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - LambdaSuccessFeedbackRoleArnRef *v1.Reference `json:"lambdaSuccessFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate lambdaSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - LambdaSuccessFeedbackRoleArnSelector *v1.Selector `json:"lambdaSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` - - // Percentage of success to sample - // +kubebuilder:validation:Optional - LambdaSuccessFeedbackSampleRate *float64 `json:"lambdaSuccessFeedbackSampleRate,omitempty" tf:"lambda_success_feedback_sample_rate,omitempty"` - - // The fully-formed AWS policy as JSON. - // +kubebuilder:validation:Optional - Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` - - // Region is the region you'd like your resource to be created in. - // +upjet:crd:field:TFTag=- - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"-"` - - // If SignatureVersion should be 1 (SHA1) or 2 (SHA256). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. - // +kubebuilder:validation:Optional - SignatureVersion *float64 `json:"signatureVersion,omitempty" tf:"signature_version,omitempty"` - - // IAM role for failure feedback - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - SqsFailureFeedbackRoleArn *string `json:"sqsFailureFeedbackRoleArn,omitempty" tf:"sqs_failure_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate sqsFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - SqsFailureFeedbackRoleArnRef *v1.Reference `json:"sqsFailureFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate sqsFailureFeedbackRoleArn. - // +kubebuilder:validation:Optional - SqsFailureFeedbackRoleArnSelector *v1.Selector `json:"sqsFailureFeedbackRoleArnSelector,omitempty" tf:"-"` - - // The IAM role permitted to receive success feedback for this topic - // +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role - // +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() - // +kubebuilder:validation:Optional - SqsSuccessFeedbackRoleArn *string `json:"sqsSuccessFeedbackRoleArn,omitempty" tf:"sqs_success_feedback_role_arn,omitempty"` - - // Reference to a Role in iam to populate sqsSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - SqsSuccessFeedbackRoleArnRef *v1.Reference `json:"sqsSuccessFeedbackRoleArnRef,omitempty" tf:"-"` - - // Selector for a Role in iam to populate sqsSuccessFeedbackRoleArn. - // +kubebuilder:validation:Optional - SqsSuccessFeedbackRoleArnSelector *v1.Selector `json:"sqsSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` - - // Percentage of success to sample - // +kubebuilder:validation:Optional - SqsSuccessFeedbackSampleRate *float64 `json:"sqsSuccessFeedbackSampleRate,omitempty" tf:"sqs_success_feedback_sample_rate,omitempty"` - - // Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. - // +kubebuilder:validation:Optional - Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` - - // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. - // +kubebuilder:validation:Optional - TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` - - // Tracing mode of an Amazon SNS topic. Valid values: "PassThrough", "Active". - // +kubebuilder:validation:Optional - TracingConfig *string `json:"tracingConfig,omitempty" tf:"tracing_config,omitempty"` + +// IAM role for failure feedback +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +ApplicationFailureFeedbackRoleArn *string `json:"applicationFailureFeedbackRoleArn,omitempty" tf:"application_failure_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate applicationFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +ApplicationFailureFeedbackRoleArnRef *v1.Reference `json:"applicationFailureFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate applicationFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +ApplicationFailureFeedbackRoleArnSelector *v1.Selector `json:"applicationFailureFeedbackRoleArnSelector,omitempty" tf:"-"` + +// The IAM role permitted to receive success feedback for this topic +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +ApplicationSuccessFeedbackRoleArn *string `json:"applicationSuccessFeedbackRoleArn,omitempty" tf:"application_success_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate applicationSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +ApplicationSuccessFeedbackRoleArnRef *v1.Reference `json:"applicationSuccessFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate applicationSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +ApplicationSuccessFeedbackRoleArnSelector *v1.Selector `json:"applicationSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` + +// Percentage of success to sample +// +kubebuilder:validation:Optional +ApplicationSuccessFeedbackSampleRate *float64 `json:"applicationSuccessFeedbackSampleRate,omitempty" tf:"application_success_feedback_sample_rate,omitempty"` + +// Enables content-based deduplication for FIFO topics. For more information, see the related documentation +// +kubebuilder:validation:Optional +ContentBasedDeduplication *bool `json:"contentBasedDeduplication,omitempty" tf:"content_based_deduplication,omitempty"` + +// The SNS delivery policy. More on AWS documentation +// +kubebuilder:validation:Optional +DeliveryPolicy *string `json:"deliveryPolicy,omitempty" tf:"delivery_policy,omitempty"` + +// The display name for the topic +// +kubebuilder:validation:Optional +DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + +// Boolean indicating whether or not to create a FIFO (first-in-first-out) topic (default is false). +// +kubebuilder:validation:Optional +FifoTopic *bool `json:"fifoTopic,omitempty" tf:"fifo_topic,omitempty"` + +// IAM role for failure feedback +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +FirehoseFailureFeedbackRoleArn *string `json:"firehoseFailureFeedbackRoleArn,omitempty" tf:"firehose_failure_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate firehoseFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +FirehoseFailureFeedbackRoleArnRef *v1.Reference `json:"firehoseFailureFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate firehoseFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +FirehoseFailureFeedbackRoleArnSelector *v1.Selector `json:"firehoseFailureFeedbackRoleArnSelector,omitempty" tf:"-"` + +// The IAM role permitted to receive success feedback for this topic +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +FirehoseSuccessFeedbackRoleArn *string `json:"firehoseSuccessFeedbackRoleArn,omitempty" tf:"firehose_success_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate firehoseSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +FirehoseSuccessFeedbackRoleArnRef *v1.Reference `json:"firehoseSuccessFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate firehoseSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +FirehoseSuccessFeedbackRoleArnSelector *v1.Selector `json:"firehoseSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` + +// Percentage of success to sample +// +kubebuilder:validation:Optional +FirehoseSuccessFeedbackSampleRate *float64 `json:"firehoseSuccessFeedbackSampleRate,omitempty" tf:"firehose_success_feedback_sample_rate,omitempty"` + +// IAM role for failure feedback +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +HTTPFailureFeedbackRoleArn *string `json:"httpFailureFeedbackRoleArn,omitempty" tf:"http_failure_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate httpFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +HTTPFailureFeedbackRoleArnRef *v1.Reference `json:"httpFailureFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate httpFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +HTTPFailureFeedbackRoleArnSelector *v1.Selector `json:"httpFailureFeedbackRoleArnSelector,omitempty" tf:"-"` + +// The IAM role permitted to receive success feedback for this topic +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +HTTPSuccessFeedbackRoleArn *string `json:"httpSuccessFeedbackRoleArn,omitempty" tf:"http_success_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate httpSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +HTTPSuccessFeedbackRoleArnRef *v1.Reference `json:"httpSuccessFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate httpSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +HTTPSuccessFeedbackRoleArnSelector *v1.Selector `json:"httpSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` + +// Percentage of success to sample +// +kubebuilder:validation:Optional +HTTPSuccessFeedbackSampleRate *float64 `json:"httpSuccessFeedbackSampleRate,omitempty" tf:"http_success_feedback_sample_rate,omitempty"` + +// The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms +// +kubebuilder:validation:Optional +KMSMasterKeyID *string `json:"kmsMasterKeyId,omitempty" tf:"kms_master_key_id,omitempty"` + +// IAM role for failure feedback +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +LambdaFailureFeedbackRoleArn *string `json:"lambdaFailureFeedbackRoleArn,omitempty" tf:"lambda_failure_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate lambdaFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +LambdaFailureFeedbackRoleArnRef *v1.Reference `json:"lambdaFailureFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate lambdaFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +LambdaFailureFeedbackRoleArnSelector *v1.Selector `json:"lambdaFailureFeedbackRoleArnSelector,omitempty" tf:"-"` + +// The IAM role permitted to receive success feedback for this topic +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +LambdaSuccessFeedbackRoleArn *string `json:"lambdaSuccessFeedbackRoleArn,omitempty" tf:"lambda_success_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate lambdaSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +LambdaSuccessFeedbackRoleArnRef *v1.Reference `json:"lambdaSuccessFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate lambdaSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +LambdaSuccessFeedbackRoleArnSelector *v1.Selector `json:"lambdaSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` + +// Percentage of success to sample +// +kubebuilder:validation:Optional +LambdaSuccessFeedbackSampleRate *float64 `json:"lambdaSuccessFeedbackSampleRate,omitempty" tf:"lambda_success_feedback_sample_rate,omitempty"` + +// The fully-formed AWS policy as JSON. +// +kubebuilder:validation:Optional +Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + +// Region is the region you'd like your resource to be created in. +// +upjet:crd:field:TFTag=- +// +kubebuilder:validation:Optional +Region *string `json:"region,omitempty" tf:"-"` + +// If SignatureVersion should be 1 (SHA1) or 2 (SHA256). The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. +// +kubebuilder:validation:Optional +SignatureVersion *float64 `json:"signatureVersion,omitempty" tf:"signature_version,omitempty"` + +// IAM role for failure feedback +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +SqsFailureFeedbackRoleArn *string `json:"sqsFailureFeedbackRoleArn,omitempty" tf:"sqs_failure_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate sqsFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +SqsFailureFeedbackRoleArnRef *v1.Reference `json:"sqsFailureFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate sqsFailureFeedbackRoleArn. +// +kubebuilder:validation:Optional +SqsFailureFeedbackRoleArnSelector *v1.Selector `json:"sqsFailureFeedbackRoleArnSelector,omitempty" tf:"-"` + +// The IAM role permitted to receive success feedback for this topic +// +crossplane:generate:reference:type=kubedb.dev/provider-aws/apis/iam/v1alpha1.Role +// +crossplane:generate:reference:extractor=kubedb.dev/provider-aws/config/common.ARNExtractor() +// +kubebuilder:validation:Optional +SqsSuccessFeedbackRoleArn *string `json:"sqsSuccessFeedbackRoleArn,omitempty" tf:"sqs_success_feedback_role_arn,omitempty"` + +// Reference to a Role in iam to populate sqsSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +SqsSuccessFeedbackRoleArnRef *v1.Reference `json:"sqsSuccessFeedbackRoleArnRef,omitempty" tf:"-"` + +// Selector for a Role in iam to populate sqsSuccessFeedbackRoleArn. +// +kubebuilder:validation:Optional +SqsSuccessFeedbackRoleArnSelector *v1.Selector `json:"sqsSuccessFeedbackRoleArnSelector,omitempty" tf:"-"` + +// Percentage of success to sample +// +kubebuilder:validation:Optional +SqsSuccessFeedbackSampleRate *float64 `json:"sqsSuccessFeedbackSampleRate,omitempty" tf:"sqs_success_feedback_sample_rate,omitempty"` + +// Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. +// +kubebuilder:validation:Optional +Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + +// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. +// +kubebuilder:validation:Optional +TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + +// Tracing mode of an Amazon SNS topic. Valid values: "PassThrough", "Active". +// +kubebuilder:validation:Optional +TracingConfig *string `json:"tracingConfig,omitempty" tf:"tracing_config,omitempty"` } // TopicSpec defines the desired state of Topic type TopicSpec struct { v1.ResourceSpec `json:",inline"` - ForProvider TopicParameters `json:"forProvider"` + ForProvider TopicParameters `json:"forProvider"` // THIS IS A BETA FIELD. It will be honored // unless the Management Policies feature flag is disabled. // InitProvider holds the same fields as ForProvider, with the exception @@ -374,13 +383,13 @@ type TopicSpec struct { // required on creation, but we do not desire to update them after creation, // for example because of an external controller is managing them, like an // autoscaler. - InitProvider TopicInitParameters `json:"initProvider,omitempty"` + InitProvider TopicInitParameters `json:"initProvider,omitempty"` } // TopicStatus defines the observed state of Topic. type TopicStatus struct { v1.ResourceStatus `json:",inline"` - AtProvider TopicObservation `json:"atProvider,omitempty"` + AtProvider TopicObservation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true @@ -395,9 +404,9 @@ type TopicStatus struct { type Topic struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" - Spec TopicSpec `json:"spec"` - Status TopicStatus `json:"status,omitempty"` +// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region)",message="spec.forProvider.region is a required parameter" + Spec TopicSpec `json:"spec"` + Status TopicStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/cmd/dynamic-controller/generate_dynamic_controller.go b/cmd/dynamic-controller/generate_dynamic_controller.go new file mode 100644 index 0000000..68c60f3 --- /dev/null +++ b/cmd/dynamic-controller/generate_dynamic_controller.go @@ -0,0 +1,142 @@ +package dynamic_controller + +import ( + "fmt" + "github.com/crossplane/crossplane-runtime/pkg/errors" + "github.com/crossplane/upjet/pkg/config" + "github.com/crossplane/upjet/pkg/examples" + "github.com/crossplane/upjet/pkg/pipeline" + "os" + "os/exec" + "path/filepath" + "sort" + "strings" +) + +var ( + groupKind map[string]string +) + +func GenerateController(pc *config.Provider, absRootDir string) { + groupKind = make(map[string]string) + if len(os.Args) < 2 || os.Args[1] == "" { + panic("root directory is required to be given as argument") + } + rootDir := os.Args[1] + rootDir, err := filepath.Abs(rootDir) + if err != nil { + panic(fmt.Sprintf("cannot calculate the absolute path with %s", rootDir)) + } + resourcesGroups := map[string]map[string]map[string]*config.Resource{} + for name, resource := range pc.Resources { + group := pc.RootGroup + if resource.ShortGroup != "" { + group = strings.ToLower(resource.ShortGroup) + "." + pc.RootGroup + } + if len(resourcesGroups[group]) == 0 { + resourcesGroups[group] = map[string]map[string]*config.Resource{} + } + if len(resourcesGroups[group][resource.Version]) == 0 { + resourcesGroups[group][resource.Version] = map[string]*config.Resource{} + } + resourcesGroups[group][resource.Version][name] = resource + kind := strings.ToLower(resource.Kind) + groupKind[kind] = resource.Kind + } + + exampleGen := examples.NewGenerator(rootDir, pc.ModulePath, pc.ShortName, pc.Resources) + if err := exampleGen.SetReferenceTypes(pc.Resources); err != nil { + panic(errors.Wrap(err, "cannot set reference types for resources")) + } + // Add ProviderConfig API package to the list of API version packages. + apiVersionPkgList := make([]string, 0) + for _, p := range pc.BasePackages.APIVersion { + + apiVersionPkgList = append(apiVersionPkgList, filepath.Join(pc.ModulePath, p)) + } + // Add ProviderConfig controller package to the list of controller packages. + controllerPkgMap := make(map[string][]string) + // new API takes precedence + for p, g := range pc.BasePackages.ControllerMap { + path := filepath.Join(pc.ModulePath, p) + controllerPkgMap[g] = append(controllerPkgMap[g], path) + controllerPkgMap[config.PackageNameMonolith] = append(controllerPkgMap[config.PackageNameMonolith], path) + } + //nolint:staticcheck + for _, p := range pc.BasePackages.Controller { + path := filepath.Join(pc.ModulePath, p) + found := false + for _, p := range controllerPkgMap[config.PackageNameConfig] { + if path == p { + found = true + break + } + } + if !found { + controllerPkgMap[config.PackageNameConfig] = append(controllerPkgMap[config.PackageNameConfig], path) + } + found = false + for _, p := range controllerPkgMap[config.PackageNameMonolith] { + if path == p { + found = true + break + } + } + if !found { + controllerPkgMap[config.PackageNameMonolith] = append(controllerPkgMap[config.PackageNameMonolith], path) + } + } + count := 0 + for group, versions := range resourcesGroups { + for version, resources := range versions { + versionGen := pipeline.NewVersionGenerator(rootDir, pc.ModulePath, group, version) + crdGen := pipeline.NewCRDGenerator(versionGen.Package(), rootDir, pc.ShortName, group, version) + var _ = pipeline.NewTerraformedGenerator(versionGen.Package(), rootDir, group, version) + ctrlGen := pipeline.NewControllerGenerator(rootDir, pc.ModulePath, group) + + for _, name := range sortedResources(resources) { + _, err := crdGen.Generate(resources[name]) + if err != nil { + panic(errors.Wrapf(err, "cannot generate crd for resource %s", name)) + } + featuresPkgPath := "" + if pc.FeaturesPackage != "" { + featuresPkgPath = filepath.Join(pc.ModulePath, pc.FeaturesPackage) + } + ctrlPkgPath, err := ctrlGen.Generate(resources[name], versionGen.Package().Path(), featuresPkgPath) + if err != nil { + panic(errors.Wrapf(err, "cannot generate controller for resource %s", name)) + } + sGroup := strings.Split(group, ".")[0] + controllerPkgMap[sGroup] = append(controllerPkgMap[sGroup], ctrlPkgPath) + controllerPkgMap[config.PackageNameMonolith] = append(controllerPkgMap[config.PackageNameMonolith], ctrlPkgPath) + + count++ + } + if err := versionGen.Generate(); err != nil { + panic(errors.Wrap(err, "cannot generate version files")) + } + apiVersionPkgList = append(apiVersionPkgList, versionGen.Package().Path()) + } + } + if err := NewProviderGenerator(rootDir, pc.ModulePath).Generate(controllerPkgMap, pc.MainTemplate, pc.ShortName, pc.RootGroup, absRootDir); err != nil { + panic(errors.Wrap(err, "cannot generate setup file")) + } + + internalCmd := exec.Command("bash", "-c", "goimports -w $(find . -iname 'zz_*')") + internalCmd.Dir = filepath.Clean(filepath.Join(rootDir, "internal")) + if out, err := internalCmd.CombinedOutput(); err != nil { + panic(errors.Wrap(err, "cannot run goimports for internal folder: "+string(out))) + } +} + +func sortedResources(m map[string]*config.Resource) []string { + result := make([]string, len(m)) + i := 0 + for g := range m { + result[i] = g + i++ + } + sort.Strings(result) + return result +} diff --git a/cmd/dynamic-controller/setup.go b/cmd/dynamic-controller/setup.go new file mode 100644 index 0000000..0174da6 --- /dev/null +++ b/cmd/dynamic-controller/setup.go @@ -0,0 +1,170 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +package dynamic_controller + +import ( + "fmt" + "github.com/crossplane/upjet/pkg/pipeline" + "io/ioutil" + "log" + "os" + "path/filepath" + "sort" + "strings" + "text/template" + + "github.com/crossplane/upjet/pkg/config" + "github.com/crossplane/upjet/pkg/pipeline/templates" + "github.com/muvaf/typewriter/pkg/wrapper" + "github.com/pkg/errors" +) + +// NewProviderGenerator returns a new ProviderGenerator. +func NewProviderGenerator(rootDir, modulePath string) *ProviderGenerator { + return &ProviderGenerator{ + ProviderPath: filepath.Join(rootDir, "cmd", "provider"), + LocalDirectoryPath: filepath.Join(rootDir, "internal", "controller"), + LicenseHeaderPath: filepath.Join(rootDir, "hack", "boilerplate.go.txt"), + ModulePath: modulePath, + } +} + +// ProviderGenerator generates controller setup file. +type ProviderGenerator struct { + ProviderPath string + LocalDirectoryPath string + LicenseHeaderPath string + ModulePath string +} + +// Generate writes the setup file and the corresponding provider main file +// using the given list of version packages. +func (sg *ProviderGenerator) Generate(versionPkgMap map[string][]string, mainTemplate string, shortName string, rootGroup string, absRootDir string) error { + var t *template.Template + if len(mainTemplate) != 0 { + tmpl, err := template.New("main").Parse(mainTemplate) + if err != nil { + return errors.Wrap(err, "failed to parse the provider main program template") + } + t = tmpl + } + if t == nil { + return errors.Wrap(sg.generate(rootGroup, versionPkgMap[config.PackageNameMonolith], shortName, absRootDir), "failed to generate the controller setup file") + } + for g, versionPkgList := range versionPkgMap { + + if err := sg.generate(rootGroup, versionPkgList, shortName, absRootDir); err != nil { + return errors.Wrapf(err, "failed to generate the controller setup file for group: %s", g) + } + if err := generateProviderMain(sg.ProviderPath, g, t); err != nil { + return errors.Wrapf(err, "failed to write main program for group: %s", g) + } + } + return nil +} + +func generateProviderMain(providerPath, group string, t *template.Template) error { + f := filepath.Join(providerPath, group) + if err := os.MkdirAll(f, 0750); err != nil { + return errors.Wrapf(err, "failed to mkdir provider main program path: %s", f) + } + m, err := os.OpenFile(filepath.Join(filepath.Clean(f), "zz_main.go"), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) + if err != nil { + return errors.Wrap(err, "failed to open provider main program file") + } + defer func() { + if err := m.Close(); err != nil { + log.Fatalf("Failed to close the templated main %q: %s", f, err.Error()) + } + }() + if err := t.Execute(m, map[string]any{ + "Group": group, + }); err != nil { + return errors.Wrap(err, "failed to execute provider main program template") + } + return nil +} + +func (sg *ProviderGenerator) generate(rootGroup string, versionPkgList []string, shortName string, absRootDir string) error { + setupFile := wrapper.NewFile(filepath.Join(sg.ModulePath, "apis"), "apis", templates.SetupTemplate, + wrapper.WithGenStatement(pipeline.GenStatement), + wrapper.WithHeaderPath(sg.LicenseHeaderPath), + ) + sort.Strings(versionPkgList) + aliases := make([]string, len(versionPkgList)) + var importData string + var kindMapData string + importData += "package controller\n\nimport (\n" + importData += "\"context\"\n\t\"github.com/crossplane/upjet/pkg/controller\"\n\tapiextensions \"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tctrl \"sigs.k8s.io/controller-runtime\"\n\t\"sigs.k8s.io/controller-runtime/pkg/client\"\n\t\"sigs.k8s.io/controller-runtime/pkg/log\"\n\t\"sync\"\n" + kindMapData += "\n\nvar (\n" + kindMapData += "setupFns = map[schema.GroupKind]func(ctrl.Manager, controller.Options) error{\n" + for i, pkgPath := range versionPkgList { + aliases[i] = setupFile.Imports.UsePackage(pkgPath) + rmDot := strings.Split(aliases[i], ".") + words := strings.Split(pkgPath, "/") + siz := len(words) + group := words[siz-2] + kind := words[siz-1] + importData += rmDot[0] + " " + "\"" + pkgPath + "\"\n" + if group == shortName { + kindMapData += "schema.GroupKind{\"" + rootGroup + "\", " + } else if group == "controller" { + kindMapData += "schema.GroupKind{\"" + kind + "." + rootGroup + "\", " + } else { + kindMapData += "schema.GroupKind{\"" + group + "." + rootGroup + "\", " + } + kindMapData += "\"" + groupKind[kind] + "\"}: " + aliases[i] + "Setup,\n" + } + importData += ")\n\n" + kindMapData += "}\n)\n\n" + if err := generateControllerFile(importData, kindMapData, absRootDir); err != nil { + panic(errors.Wrap(err, "cannot create controller")) + } + return nil +} + +func generateControllerFile(importData string, kindMapData string, absRootDir string) error { + importData += kindMapData + + filePath := absRootDir + "/internal/controller/zz_dynamic_crd_controller.go" // Replace with the path to your file + + // Attempt to remove the file + os.Remove(filePath) + + filePath = absRootDir + "/cmd/generator/crd_controller.go.txt" // Replace with the path to your file + // Read the entire file content + content, err := ioutil.ReadFile(filePath) + if err != nil { + return err + } + // Convert byte slice to string for printing + fileContent := string(content) + importData += fileContent + + filePath = absRootDir + "/internal/controller/zz_dynamic_crd_controller.go" + + // Open or create the file for writing + file, err := os.OpenFile(filePath, os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return err + } + defer file.Close() + + // Writing data into the file + _, err = fmt.Fprintf(file, "%s\n", importData) + if err != nil { + return err + } + return nil +} + +/* +var ( + setupFns = map[schema.GroupKind]func(ctrl.Manager, controller.Options) error{ + schema.GroupKind{"azure.kubedb.com", "ResourceGroup"}: resourcegroup.Setup, + schema.GroupKind{"azure.kubedb.com", "ProviderConfig"}: providerregistration.Setup, + } +) +*/ diff --git a/cmd/generator/crd_controller.go.txt b/cmd/generator/crd_controller.go.txt new file mode 100644 index 0000000..52e1879 --- /dev/null +++ b/cmd/generator/crd_controller.go.txt @@ -0,0 +1,48 @@ +//package controller + +var ( + + setupDone = map[schema.GroupKind]bool{} + mu sync.RWMutex +) + +type CustomResourceReconciler struct { + mgr ctrl.Manager + o controller.Options +} + +func NewCustomResourceReconciler(mgr ctrl.Manager, o controller.Options) *CustomResourceReconciler { + return &CustomResourceReconciler{mgr: mgr, o: o} +} + +func (r *CustomResourceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + log := log.FromContext(ctx) + var crd apiextensions.CustomResourceDefinition + if err := r.mgr.GetClient().Get(ctx, req.NamespacedName, &crd); err != nil { + log.Error(err, "unable to fetch CustomResourceDefinition") + return ctrl.Result{}, client.IgnoreNotFound(err) + } + gk := schema.GroupKind{ + Group: crd.Spec.Group, + Kind: crd.Spec.Names.Kind, + } + mu.Lock() + defer mu.Unlock() + _, found := setupDone[gk] + if found { + return ctrl.Result{}, nil + } + setup, found := setupFns[gk] + if found { + setup(r.mgr, r.o) + setupDone[gk] = true + } + + return ctrl.Result{}, nil +} + +func (r *CustomResourceReconciler) SetupWithManager(mgr ctrl.Manager) error { + return ctrl.NewControllerManagedBy(mgr). + For(&apiextensions.CustomResourceDefinition{}). + Complete(r) +} diff --git a/cmd/generator/main.go b/cmd/generator/main.go index d98d2a3..e2e64e5 100644 --- a/cmd/generator/main.go +++ b/cmd/generator/main.go @@ -7,6 +7,7 @@ package main import ( "context" "fmt" + dynamic_controller "kubedb.dev/provider-aws/cmd/dynamic-controller" "os" "path/filepath" @@ -26,4 +27,5 @@ func main() { } p, err := config.GetProvider(context.Background(), true) pipeline.Run(p, absRootDir) + dynamic_controller.GenerateController(p, absRootDir) } diff --git a/cmd/provider/main.go b/cmd/provider/main.go index 39ed2b7..fe178ad 100644 --- a/cmd/provider/main.go +++ b/cmd/provider/main.go @@ -9,6 +9,7 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/certificates" "github.com/crossplane/crossplane-runtime/pkg/feature" "gopkg.in/alecthomas/kingpin.v2" + "k8s.io/klog/v2" "os" "path/filepath" "sigs.k8s.io/controller-runtime/pkg/cache" @@ -87,7 +88,7 @@ func main() { }) kingpin.FatalIfError(err, "Cannot create controller manager") kingpin.FatalIfError(apis.AddToScheme(mgr.GetScheme()), "Cannot add AWS APIs to scheme") - + kingpin.FatalIfError(apis.AddToSchemeCrd(mgr.GetScheme()), "Cannot add Azure APIs to scheme") // if the native Terraform provider plugin's path is not configured via // the env. variable TERRAFORM_NATIVE_PROVIDER_PATH or // the `--terraform-native-provider-path` command-line option, @@ -154,7 +155,10 @@ func main() { Status: v1alpha1.StoreConfigStatus{}, })), "cannot create default store config") } - - kingpin.FatalIfError(controller.Setup(mgr, o), "Cannot setup Aws controllers") + if err := controller.NewCustomResourceReconciler(mgr, o).SetupWithManager(mgr); err != nil { + klog.Error(err, "unable to create controller", "controller", "CustomResourceReconciler") + os.Exit(1) + } + //kingpin.FatalIfError(controller.Setup(mgr, o), "Cannot setup Aws controllers") kingpin.FatalIfError(mgr.Start(ctrl.SetupSignalHandler()), "Cannot start controller manager") } diff --git a/examples/providerconfig/providerconfig.yaml b/examples/providerconfig/providerconfig.yaml index 164b660..44a02eb 100644 --- a/examples/providerconfig/providerconfig.yaml +++ b/examples/providerconfig/providerconfig.yaml @@ -6,6 +6,14 @@ spec: credentials: source: Secret secretRef: - name: example-creds + name: aws-secret + key: creds namespace: crossplane-system - key: credentials + +# echo ' +# [default] +# aws_access_key_id = +# aws_secret_access_key = +# ' > aws-credentials.txt + +# kubectl create secret generic aws-secret -n crossplane-system --from-file=creds=./aws-credentials.txt \ No newline at end of file diff --git a/go.mod b/go.mod index afd6af9..95463f8 100644 --- a/go.mod +++ b/go.mod @@ -17,11 +17,14 @@ require ( github.com/hashicorp/terraform-json v0.17.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.26.1 github.com/hashicorp/terraform-provider-aws v0.0.0-00010101000000-000000000000 + github.com/muvaf/typewriter v0.0.0-20220131201631-921e94e8e8d7 github.com/pkg/errors v0.9.1 gopkg.in/alecthomas/kingpin.v2 v2.2.6 k8s.io/api v0.28.4 + k8s.io/apiextensions-apiserver v0.28.3 k8s.io/apimachinery v0.28.4 k8s.io/client-go v0.28.4 + k8s.io/klog/v2 v2.100.1 sigs.k8s.io/controller-runtime v0.16.3 sigs.k8s.io/controller-tools v0.13.0 ) @@ -154,7 +157,6 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/muvaf/typewriter v0.0.0-20220131201631-921e94e8e8d7 // indirect github.com/oklog/run v1.1.0 // indirect github.com/prometheus/client_golang v1.16.0 // indirect github.com/prometheus/client_model v0.4.0 // indirect @@ -196,9 +198,7 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.28.3 // indirect k8s.io/component-base v0.28.3 // indirect - k8s.io/klog/v2 v2.100.1 // indirect k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect diff --git a/internal/controller/zz_dynamic_crd_controller.go b/internal/controller/zz_dynamic_crd_controller.go new file mode 100644 index 0000000..29df88b --- /dev/null +++ b/internal/controller/zz_dynamic_crd_controller.go @@ -0,0 +1,194 @@ +package controller + +import ( + "context" + "sync" + + "github.com/crossplane/upjet/pkg/controller" + apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + cluster "kubedb.dev/provider-aws/internal/controller/docdb/cluster" + clusterinstance "kubedb.dev/provider-aws/internal/controller/docdb/clusterinstance" + clusterparametergroup "kubedb.dev/provider-aws/internal/controller/docdb/clusterparametergroup" + clustersnapshot "kubedb.dev/provider-aws/internal/controller/docdb/clustersnapshot" + eventsubscription "kubedb.dev/provider-aws/internal/controller/docdb/eventsubscription" + globalcluster "kubedb.dev/provider-aws/internal/controller/docdb/globalcluster" + subnetgroup "kubedb.dev/provider-aws/internal/controller/docdb/subnetgroup" + contributorinsights "kubedb.dev/provider-aws/internal/controller/dynamodb/contributorinsights" + globaltable "kubedb.dev/provider-aws/internal/controller/dynamodb/globaltable" + kinesisstreamingdestination "kubedb.dev/provider-aws/internal/controller/dynamodb/kinesisstreamingdestination" + table "kubedb.dev/provider-aws/internal/controller/dynamodb/table" + tableitem "kubedb.dev/provider-aws/internal/controller/dynamodb/tableitem" + tablereplica "kubedb.dev/provider-aws/internal/controller/dynamodb/tablereplica" + tag "kubedb.dev/provider-aws/internal/controller/dynamodb/tag" + route "kubedb.dev/provider-aws/internal/controller/ec2/route" + securitygroup "kubedb.dev/provider-aws/internal/controller/ec2/securitygroup" + securitygrouprule "kubedb.dev/provider-aws/internal/controller/ec2/securitygrouprule" + subnet "kubedb.dev/provider-aws/internal/controller/ec2/subnet" + vpc "kubedb.dev/provider-aws/internal/controller/ec2/vpc" + vpcendpoint "kubedb.dev/provider-aws/internal/controller/ec2/vpcendpoint" + vpcpeeringconnection "kubedb.dev/provider-aws/internal/controller/ec2/vpcpeeringconnection" + clusterelasticache "kubedb.dev/provider-aws/internal/controller/elasticache/cluster" + parametergroup "kubedb.dev/provider-aws/internal/controller/elasticache/parametergroup" + replicationgroup "kubedb.dev/provider-aws/internal/controller/elasticache/replicationgroup" + subnetgroupelasticache "kubedb.dev/provider-aws/internal/controller/elasticache/subnetgroup" + user "kubedb.dev/provider-aws/internal/controller/elasticache/user" + usergroup "kubedb.dev/provider-aws/internal/controller/elasticache/usergroup" + domain "kubedb.dev/provider-aws/internal/controller/elasticsearch/domain" + domainpolicy "kubedb.dev/provider-aws/internal/controller/elasticsearch/domainpolicy" + domainsamloptions "kubedb.dev/provider-aws/internal/controller/elasticsearch/domainsamloptions" + role "kubedb.dev/provider-aws/internal/controller/iam/role" + clusterkafka "kubedb.dev/provider-aws/internal/controller/kafka/cluster" + configuration "kubedb.dev/provider-aws/internal/controller/kafka/configuration" + stream "kubedb.dev/provider-aws/internal/controller/kinesis/stream" + key "kubedb.dev/provider-aws/internal/controller/kms/key" + acl "kubedb.dev/provider-aws/internal/controller/memorydb/acl" + clustermemorydb "kubedb.dev/provider-aws/internal/controller/memorydb/cluster" + parametergroupmemorydb "kubedb.dev/provider-aws/internal/controller/memorydb/parametergroup" + snapshot "kubedb.dev/provider-aws/internal/controller/memorydb/snapshot" + subnetgroupmemorydb "kubedb.dev/provider-aws/internal/controller/memorydb/subnetgroup" + providerconfig "kubedb.dev/provider-aws/internal/controller/providerconfig" + clusterrds "kubedb.dev/provider-aws/internal/controller/rds/cluster" + clusteractivitystream "kubedb.dev/provider-aws/internal/controller/rds/clusteractivitystream" + clusterendpoint "kubedb.dev/provider-aws/internal/controller/rds/clusterendpoint" + clusterinstancerds "kubedb.dev/provider-aws/internal/controller/rds/clusterinstance" + clusterparametergrouprds "kubedb.dev/provider-aws/internal/controller/rds/clusterparametergroup" + clusterroleassociation "kubedb.dev/provider-aws/internal/controller/rds/clusterroleassociation" + clustersnapshotrds "kubedb.dev/provider-aws/internal/controller/rds/clustersnapshot" + dbinstanceautomatedbackupsreplication "kubedb.dev/provider-aws/internal/controller/rds/dbinstanceautomatedbackupsreplication" + dbsnapshotcopy "kubedb.dev/provider-aws/internal/controller/rds/dbsnapshotcopy" + eventsubscriptionrds "kubedb.dev/provider-aws/internal/controller/rds/eventsubscription" + globalclusterrds "kubedb.dev/provider-aws/internal/controller/rds/globalcluster" + instance "kubedb.dev/provider-aws/internal/controller/rds/instance" + instanceroleassociation "kubedb.dev/provider-aws/internal/controller/rds/instanceroleassociation" + optiongroup "kubedb.dev/provider-aws/internal/controller/rds/optiongroup" + parametergrouprds "kubedb.dev/provider-aws/internal/controller/rds/parametergroup" + proxy "kubedb.dev/provider-aws/internal/controller/rds/proxy" + proxydefaulttargetgroup "kubedb.dev/provider-aws/internal/controller/rds/proxydefaulttargetgroup" + proxyendpoint "kubedb.dev/provider-aws/internal/controller/rds/proxyendpoint" + proxytarget "kubedb.dev/provider-aws/internal/controller/rds/proxytarget" + snapshotrds "kubedb.dev/provider-aws/internal/controller/rds/snapshot" + subnetgrouprds "kubedb.dev/provider-aws/internal/controller/rds/subnetgroup" + secret "kubedb.dev/provider-aws/internal/controller/secretsmanager/secret" + topic "kubedb.dev/provider-aws/internal/controller/sns/topic" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/log" +) + +var ( + setupFns = map[schema.GroupKind]func(ctrl.Manager, controller.Options) error{ + schema.GroupKind{"docdb.aws.kubedb.com", "Cluster"}: cluster.Setup, + schema.GroupKind{"docdb.aws.kubedb.com", "ClusterInstance"}: clusterinstance.Setup, + schema.GroupKind{"docdb.aws.kubedb.com", "ClusterParameterGroup"}: clusterparametergroup.Setup, + schema.GroupKind{"docdb.aws.kubedb.com", "ClusterSnapshot"}: clustersnapshot.Setup, + schema.GroupKind{"docdb.aws.kubedb.com", "EventSubscription"}: eventsubscription.Setup, + schema.GroupKind{"docdb.aws.kubedb.com", "GlobalCluster"}: globalcluster.Setup, + schema.GroupKind{"docdb.aws.kubedb.com", "SubnetGroup"}: subnetgroup.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "ContributorInsights"}: contributorinsights.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "GlobalTable"}: globaltable.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "KinesisStreamingDestination"}: kinesisstreamingdestination.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "Table"}: table.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "TableItem"}: tableitem.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "TableReplica"}: tablereplica.Setup, + schema.GroupKind{"dynamodb.aws.kubedb.com", "Tag"}: tag.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "Route"}: route.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "SecurityGroup"}: securitygroup.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "SecurityGroupRule"}: securitygrouprule.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "Subnet"}: subnet.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "VPC"}: vpc.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "VPCEndpoint"}: vpcendpoint.Setup, + schema.GroupKind{"ec2.aws.kubedb.com", "VPCPeeringConnection"}: vpcpeeringconnection.Setup, + schema.GroupKind{"elasticache.aws.kubedb.com", "Cluster"}: clusterelasticache.Setup, + schema.GroupKind{"elasticache.aws.kubedb.com", "ParameterGroup"}: parametergroup.Setup, + schema.GroupKind{"elasticache.aws.kubedb.com", "ReplicationGroup"}: replicationgroup.Setup, + schema.GroupKind{"elasticache.aws.kubedb.com", "SubnetGroup"}: subnetgroupelasticache.Setup, + schema.GroupKind{"elasticache.aws.kubedb.com", "User"}: user.Setup, + schema.GroupKind{"elasticache.aws.kubedb.com", "UserGroup"}: usergroup.Setup, + schema.GroupKind{"elasticsearch.aws.kubedb.com", "Domain"}: domain.Setup, + schema.GroupKind{"elasticsearch.aws.kubedb.com", "DomainPolicy"}: domainpolicy.Setup, + schema.GroupKind{"elasticsearch.aws.kubedb.com", "DomainSAMLOptions"}: domainsamloptions.Setup, + schema.GroupKind{"iam.aws.kubedb.com", "Role"}: role.Setup, + schema.GroupKind{"kafka.aws.kubedb.com", "Cluster"}: clusterkafka.Setup, + schema.GroupKind{"kafka.aws.kubedb.com", "Configuration"}: configuration.Setup, + schema.GroupKind{"kinesis.aws.kubedb.com", "Stream"}: stream.Setup, + schema.GroupKind{"kms.aws.kubedb.com", "Key"}: key.Setup, + schema.GroupKind{"memorydb.aws.kubedb.com", "ACL"}: acl.Setup, + schema.GroupKind{"memorydb.aws.kubedb.com", "Cluster"}: clustermemorydb.Setup, + schema.GroupKind{"memorydb.aws.kubedb.com", "ParameterGroup"}: parametergroupmemorydb.Setup, + schema.GroupKind{"memorydb.aws.kubedb.com", "Snapshot"}: snapshot.Setup, + schema.GroupKind{"memorydb.aws.kubedb.com", "SubnetGroup"}: subnetgroupmemorydb.Setup, + schema.GroupKind{"providerconfig.aws.kubedb.com", ""}: providerconfig.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "Cluster"}: clusterrds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ClusterActivityStream"}: clusteractivitystream.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ClusterEndpoint"}: clusterendpoint.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ClusterInstance"}: clusterinstancerds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ClusterParameterGroup"}: clusterparametergrouprds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ClusterRoleAssociation"}: clusterroleassociation.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ClusterSnapshot"}: clustersnapshotrds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "DBInstanceAutomatedBackupsReplication"}: dbinstanceautomatedbackupsreplication.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "DBSnapshotCopy"}: dbsnapshotcopy.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "EventSubscription"}: eventsubscriptionrds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "GlobalCluster"}: globalclusterrds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "Instance"}: instance.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "InstanceRoleAssociation"}: instanceroleassociation.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "OptionGroup"}: optiongroup.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ParameterGroup"}: parametergrouprds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "Proxy"}: proxy.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ProxyDefaultTargetGroup"}: proxydefaulttargetgroup.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ProxyEndpoint"}: proxyendpoint.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "ProxyTarget"}: proxytarget.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "Snapshot"}: snapshotrds.Setup, + schema.GroupKind{"rds.aws.kubedb.com", "SubnetGroup"}: subnetgrouprds.Setup, + schema.GroupKind{"secretsmanager.aws.kubedb.com", "Secret"}: secret.Setup, + schema.GroupKind{"sns.aws.kubedb.com", "Topic"}: topic.Setup, + } +) + +//package controller + +var ( + setupDone = map[schema.GroupKind]bool{} + mu sync.RWMutex +) + +type CustomResourceReconciler struct { + mgr ctrl.Manager + o controller.Options +} + +func NewCustomResourceReconciler(mgr ctrl.Manager, o controller.Options) *CustomResourceReconciler { + return &CustomResourceReconciler{mgr: mgr, o: o} +} + +func (r *CustomResourceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + log := log.FromContext(ctx) + var crd apiextensions.CustomResourceDefinition + if err := r.mgr.GetClient().Get(ctx, req.NamespacedName, &crd); err != nil { + log.Error(err, "unable to fetch CustomResourceDefinition") + return ctrl.Result{}, client.IgnoreNotFound(err) + } + gk := schema.GroupKind{ + Group: crd.Spec.Group, + Kind: crd.Spec.Names.Kind, + } + mu.Lock() + defer mu.Unlock() + _, found := setupDone[gk] + if found { + return ctrl.Result{}, nil + } + setup, found := setupFns[gk] + if found { + setup(r.mgr, r.o) + setupDone[gk] = true + } + + return ctrl.Result{}, nil +} + +func (r *CustomResourceReconciler) SetupWithManager(mgr ctrl.Manager) error { + return ctrl.NewControllerManagedBy(mgr). + For(&apiextensions.CustomResourceDefinition{}). + Complete(r) +}