{
  "description": "Cluster is the Schema for the Clusters API. Manages an RDS Aurora Cluster or a RDS Multi-AZ DB Cluster",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "ClusterSpec defines the desired state of Cluster",
      "properties": {
        "deletionPolicy": {
          "default": "Delete",
          "description": "DeletionPolicy specifies what will happen to the underlying external\nwhen this managed resource is deleted - either \"Delete\" or \"Orphan\" the\nexternal resource.\nThis field is planned to be deprecated in favor of the ManagementPolicies\nfield in a future release. Currently, both could be set independently and\nnon-default values would be honored if the feature flag is enabled.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223",
          "enum": [
            "Orphan",
            "Delete"
          ],
          "type": "string"
        },
        "forProvider": {
          "properties": {
            "allocatedStorage": {
              "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.",
              "type": "number"
            },
            "allowMajorVersionUpgrade": {
              "description": "Enable to allow major engine version upgrades when changing engine versions. Defaults to false.",
              "type": "boolean"
            },
            "applyImmediately": {
              "description": "Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information.",
              "type": "boolean"
            },
            "autoGeneratePassword": {
              "description": "If true, the password will be auto-generated and stored in the Secret referenced by the masterPasswordSecretRef field.",
              "type": "boolean"
            },
            "availabilityZones": {
              "description": "List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.\nWe recommend specifying 3 AZs or using the  if necessary.\nA maximum of 3 AZs can be configured.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "backtrackWindow": {
              "description": "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)",
              "type": "number"
            },
            "backupRetentionPeriod": {
              "description": "Days to retain backups for. Default 1",
              "type": "number"
            },
            "caCertificateIdentifier": {
              "description": "The CA certificate identifier to use for the DB cluster's server certificate.",
              "type": "string"
            },
            "clusterMembers": {
              "description": "List of RDS Instances that are a part of this cluster",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "clusterScalabilityType": {
              "description": "Specifies the scalability mode of the Aurora DB cluster. When set to limitless, the cluster operates as an Aurora Limitless Database. When set to standard (the default), the cluster uses normal DB instance creation. Valid values: limitless, standard.",
              "type": "string"
            },
            "copyTagsToSnapshot": {
              "description": "Copy all Cluster tags to snapshots. Default is false.",
              "type": "boolean"
            },
            "databaseInsightsMode": {
              "description": "The mode of Database Insights to enable for the DB cluster. Valid values: standard, advanced.",
              "type": "string"
            },
            "databaseName": {
              "description": "Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints",
              "type": "string"
            },
            "dbClusterInstanceClass": {
              "description": "The 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.",
              "type": "string"
            },
            "dbClusterParameterGroupName": {
              "description": "A cluster parameter group to associate with the cluster.",
              "type": "string"
            },
            "dbClusterParameterGroupNameRef": {
              "description": "Reference to a ClusterParameterGroup in rds to populate dbClusterParameterGroupName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "dbClusterParameterGroupNameSelector": {
              "description": "Selector for a ClusterParameterGroup in rds to populate dbClusterParameterGroupName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dbInstanceParameterGroupName": {
              "description": "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.",
              "type": "string"
            },
            "dbInstanceParameterGroupNameRef": {
              "description": "Reference to a ParameterGroup in rds to populate dbInstanceParameterGroupName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "dbInstanceParameterGroupNameSelector": {
              "description": "Selector for a ParameterGroup in rds to populate dbInstanceParameterGroupName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dbSubnetGroupName": {
              "description": "DB subnet group to associate with this DB cluster.\nNOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster.",
              "type": "string"
            },
            "dbSubnetGroupNameRef": {
              "description": "Reference to a SubnetGroup in rds to populate dbSubnetGroupName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "dbSubnetGroupNameSelector": {
              "description": "Selector for a SubnetGroup in rds to populate dbSubnetGroupName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dbSystemId": {
              "description": "For use with RDS Custom.",
              "type": "string"
            },
            "deleteAutomatedBackups": {
              "description": "Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is true.",
              "type": "boolean"
            },
            "deletionProtection": {
              "description": "If the DB cluster should have deletion protection enabled.\nThe database can't be deleted when this value is set to true.\nThe default is false.",
              "type": "boolean"
            },
            "domain": {
              "description": "The ID of the Directory Service Active Directory domain to create the cluster in.",
              "type": "string"
            },
            "domainIamRoleName": {
              "description": "The name of the IAM role to be used when making API calls to the Directory Service.",
              "type": "string"
            },
            "enableGlobalWriteForwarding": {
              "description": "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 User Guide for Aurora for more information.",
              "type": "boolean"
            },
            "enableHttpEndpoint": {
              "description": "Enable HTTP endpoint (data API). Only valid for some combinations of engine_mode, engine and engine_version and only available in some regions. See the Region and version availability section of the documentation. This option also does not work with any of these options specified: snapshot_identifier, replication_source_identifier, s3_import.",
              "type": "boolean"
            },
            "enableLocalWriteForwarding": {
              "description": "Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the User Guide for Aurora for more information. NOTE: Local write forwarding requires Aurora MySQL version 3.04 or higher.",
              "type": "boolean"
            },
            "enabledCloudwatchLogsExports": {
              "description": "Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, iam-db-auth-error, instance, postgresql (PostgreSQL), slowquery.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "engine": {
              "description": "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).",
              "type": "string"
            },
            "engineLifecycleSupport": {
              "description": "The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are open-source-rds-extended-support, open-source-rds-extended-support-disabled. Default value is open-source-rds-extended-support. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html",
              "type": "string"
            },
            "engineMode": {
              "description": "Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), parallelquery, provisioned, serverless. Defaults to: provisioned. Specify an empty value (\"\") for no engine mode. See the RDS User Guide for limitations when using serverless.",
              "type": "string"
            },
            "engineVersion": {
              "description": "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 Attribute Reference below.",
              "type": "string"
            },
            "finalSnapshotIdentifier": {
              "description": "Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.",
              "type": "string"
            },
            "globalClusterIdentifier": {
              "description": "Global cluster identifier specified on aws_rds_global_cluster.",
              "type": "string"
            },
            "iamDatabaseAuthenticationEnabled": {
              "description": "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.",
              "type": "boolean"
            },
            "iops": {
              "description": "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.",
              "type": "number"
            },
            "kmsKeyId": {
              "description": "ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true.",
              "type": "string"
            },
            "kmsKeyIdRef": {
              "description": "Reference to a Key in kms to populate kmsKeyId.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "kmsKeyIdSelector": {
              "description": "Selector for a Key in kms to populate kmsKeyId.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "manageMasterUserPassword": {
              "description": "Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided.",
              "type": "boolean"
            },
            "masterPasswordSecretRef": {
              "description": "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.\nPassword 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.",
              "properties": {
                "key": {
                  "description": "The key to select.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the secret.",
                  "type": "string"
                },
                "namespace": {
                  "description": "Namespace of the secret.",
                  "type": "string"
                }
              },
              "required": [
                "key",
                "name",
                "namespace"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "masterPasswordWoSecretRef": {
              "description": "Only required unless manage_master_user_password is set to true, a snapshot_identifier, replication_source_identifier, or master_password is provided or unless a global_cluster_identifier is provided when the cluster is the \"secondary\" cluster of a global database) Password for the master DB user. Note that this may show up in logs. Please refer to the RDS Naming Constraints. Cannot be set if manage_master_user_password is set to true.",
              "properties": {
                "key": {
                  "description": "The key to select.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the secret.",
                  "type": "string"
                },
                "namespace": {
                  "description": "Namespace of the secret.",
                  "type": "string"
                }
              },
              "required": [
                "key",
                "name",
                "namespace"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "masterPasswordWoVersion": {
              "description": "Used together with master_password_wo to trigger an update. Increment this value when an update to the master_password_wo is required.",
              "type": "number"
            },
            "masterUserSecretKmsKeyId": {
              "description": "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.",
              "type": "string"
            },
            "masterUserSecretKmsKeyIdRef": {
              "description": "Reference to a Key in kms to populate masterUserSecretKmsKeyId.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "masterUserSecretKmsKeyIdSelector": {
              "description": "Selector for a Key in kms to populate masterUserSecretKmsKeyId.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "masterUsername": {
              "description": "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.",
              "type": "string"
            },
            "monitoringInterval": {
              "description": "Interval, in seconds, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.",
              "type": "number"
            },
            "monitoringRoleArn": {
              "description": "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 Clusters.",
              "type": "string"
            },
            "monitoringRoleArnRef": {
              "description": "Reference to a Role in iam to populate monitoringRoleArn.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "monitoringRoleArnSelector": {
              "description": "Selector for a Role in iam to populate monitoringRoleArn.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "networkType": {
              "description": "Network type of the cluster. Valid values: IPV4, DUAL.",
              "type": "string"
            },
            "performanceInsightsEnabled": {
              "description": "Enables Performance Insights.",
              "type": "boolean"
            },
            "performanceInsightsKmsKeyId": {
              "description": "Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (aws/rds).",
              "type": "string"
            },
            "performanceInsightsRetentionPeriod": {
              "description": "Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are 7, month * 31 (where month is a number of months from 1-23), and 731. See here for more information on retention periods.",
              "type": "number"
            },
            "port": {
              "description": "Port on which the DB accepts connections.",
              "type": "number"
            },
            "preferredBackupWindow": {
              "description": "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 region, e.g. 04:00-09:00.",
              "type": "string"
            },
            "preferredMaintenanceWindow": {
              "description": "Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30",
              "type": "string"
            },
            "region": {
              "description": "Region where this resource will be managed. Defaults to the Region set in the provider configuration.\nRegion is the region you'd like your resource to be created in.",
              "type": "string"
            },
            "replicationSourceIdentifier": {
              "description": "ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. Note: Removing this attribute after creation will promote the read replica to a standalone cluster.",
              "type": "string"
            },
            "restoreToPointInTime": {
              "description": "Nested attribute for point in time restore. More details below.",
              "properties": {
                "restoreToTime": {
                  "description": "Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time.",
                  "type": "string"
                },
                "restoreType": {
                  "description": "Type of restore to be performed.\nValid options are full-copy (default) and copy-on-write.",
                  "type": "string"
                },
                "sourceClusterIdentifier": {
                  "description": "Identifier of the source database cluster from which to restore. When restoring from a cluster in another AWS account, the identifier is the ARN of that cluster.",
                  "type": "string"
                },
                "sourceClusterIdentifierRef": {
                  "description": "Reference to a Cluster in rds to populate sourceClusterIdentifier.",
                  "properties": {
                    "name": {
                      "description": "Name of the referenced object.",
                      "type": "string"
                    },
                    "policy": {
                      "description": "Policies for referencing.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "sourceClusterIdentifierSelector": {
                  "description": "Selector for a Cluster in rds to populate sourceClusterIdentifier.",
                  "properties": {
                    "matchControllerRef": {
                      "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                      "type": "boolean"
                    },
                    "matchLabels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "MatchLabels ensures an object with matching labels is selected.",
                      "type": "object"
                    },
                    "policy": {
                      "description": "Policies for selection.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "sourceClusterResourceId": {
                  "description": "Cluster resource ID of the source database cluster from which to restore. To be used for restoring a deleted cluster in the same account which still has a retained automatic backup available.",
                  "type": "string"
                },
                "useLatestRestorableTime": {
                  "description": "Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "s3Import": {
              "description": "Port on which the DB accepts connections.",
              "properties": {
                "bucketName": {
                  "description": "Bucket name where your backup is stored",
                  "type": "string"
                },
                "bucketNameRef": {
                  "description": "Reference to a Bucket in s3 to populate bucketName.",
                  "properties": {
                    "name": {
                      "description": "Name of the referenced object.",
                      "type": "string"
                    },
                    "policy": {
                      "description": "Policies for referencing.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bucketNameSelector": {
                  "description": "Selector for a Bucket in s3 to populate bucketName.",
                  "properties": {
                    "matchControllerRef": {
                      "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                      "type": "boolean"
                    },
                    "matchLabels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "MatchLabels ensures an object with matching labels is selected.",
                      "type": "object"
                    },
                    "policy": {
                      "description": "Policies for selection.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "bucketPrefix": {
                  "description": "Can be blank, but is the path to your backup",
                  "type": "string"
                },
                "ingestionRole": {
                  "description": "Role applied to load the data.",
                  "type": "string"
                },
                "sourceEngine": {
                  "description": "Source engine for the backup",
                  "type": "string"
                },
                "sourceEngineVersion": {
                  "description": "Version of the source engine used to make the backup",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "scalingConfiguration": {
              "description": "Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below.",
              "properties": {
                "autoPause": {
                  "description": "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.",
                  "type": "boolean"
                },
                "maxCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "minCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "secondsBeforeTimeout": {
                  "description": "Amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. Valid values are 60 through 600. Defaults to 300.",
                  "type": "number"
                },
                "secondsUntilAutoPause": {
                  "description": "Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300.",
                  "type": "number"
                },
                "timeoutAction": {
                  "description": "Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "serverlessv2ScalingConfiguration": {
              "description": "Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below.",
              "properties": {
                "maxCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "minCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "secondsUntilAutoPause": {
                  "description": "Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "skipFinalSnapshot": {
              "description": "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.",
              "type": "boolean"
            },
            "snapshotIdentifier": {
              "description": "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.",
              "type": "string"
            },
            "sourceRegion": {
              "description": "The source region for an encrypted replica DB cluster.",
              "type": "string"
            },
            "storageEncrypted": {
              "description": "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.",
              "type": "boolean"
            },
            "storageType": {
              "description": "(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, io2 (Multi-AZ DB Clusters). Default: \"\" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters).",
              "type": "string"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "vpcSecurityGroupIdRefs": {
              "description": "References to SecurityGroup in ec2 to populate vpcSecurityGroupIds.",
              "items": {
                "description": "A Reference to a named object.",
                "properties": {
                  "name": {
                    "description": "Name of the referenced object.",
                    "type": "string"
                  },
                  "policy": {
                    "description": "Policies for referencing.",
                    "properties": {
                      "resolution": {
                        "default": "Required",
                        "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                        "enum": [
                          "Required",
                          "Optional"
                        ],
                        "type": "string"
                      },
                      "resolve": {
                        "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                        "enum": [
                          "Always",
                          "IfNotPresent"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "vpcSecurityGroupIdSelector": {
              "description": "Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "vpcSecurityGroupIds": {
              "description": "List of VPC security groups to associate with the Cluster",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            }
          },
          "required": [
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "initProvider": {
          "description": "THIS IS A BETA FIELD. It will be honored\nunless the Management Policies feature flag is disabled.\nInitProvider holds the same fields as ForProvider, with the exception\nof Identifier and other resource reference fields. The fields that are\nin InitProvider are merged into ForProvider when the resource is created.\nThe same fields are also added to the terraform ignore_changes hook, to\navoid updating them after creation. This is useful for fields that are\nrequired on creation, but we do not desire to update them after creation,\nfor example because of an external controller is managing them, like an\nautoscaler.",
          "properties": {
            "allocatedStorage": {
              "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.",
              "type": "number"
            },
            "allowMajorVersionUpgrade": {
              "description": "Enable to allow major engine version upgrades when changing engine versions. Defaults to false.",
              "type": "boolean"
            },
            "applyImmediately": {
              "description": "Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information.",
              "type": "boolean"
            },
            "availabilityZones": {
              "description": "List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.\nWe recommend specifying 3 AZs or using the  if necessary.\nA maximum of 3 AZs can be configured.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "backtrackWindow": {
              "description": "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)",
              "type": "number"
            },
            "backupRetentionPeriod": {
              "description": "Days to retain backups for. Default 1",
              "type": "number"
            },
            "caCertificateIdentifier": {
              "description": "The CA certificate identifier to use for the DB cluster's server certificate.",
              "type": "string"
            },
            "clusterMembers": {
              "description": "List of RDS Instances that are a part of this cluster",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "clusterScalabilityType": {
              "description": "Specifies the scalability mode of the Aurora DB cluster. When set to limitless, the cluster operates as an Aurora Limitless Database. When set to standard (the default), the cluster uses normal DB instance creation. Valid values: limitless, standard.",
              "type": "string"
            },
            "copyTagsToSnapshot": {
              "description": "Copy all Cluster tags to snapshots. Default is false.",
              "type": "boolean"
            },
            "databaseInsightsMode": {
              "description": "The mode of Database Insights to enable for the DB cluster. Valid values: standard, advanced.",
              "type": "string"
            },
            "databaseName": {
              "description": "Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints",
              "type": "string"
            },
            "dbClusterInstanceClass": {
              "description": "The 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.",
              "type": "string"
            },
            "dbClusterParameterGroupName": {
              "description": "A cluster parameter group to associate with the cluster.",
              "type": "string"
            },
            "dbClusterParameterGroupNameRef": {
              "description": "Reference to a ClusterParameterGroup in rds to populate dbClusterParameterGroupName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "dbClusterParameterGroupNameSelector": {
              "description": "Selector for a ClusterParameterGroup in rds to populate dbClusterParameterGroupName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dbInstanceParameterGroupName": {
              "description": "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.",
              "type": "string"
            },
            "dbInstanceParameterGroupNameRef": {
              "description": "Reference to a ParameterGroup in rds to populate dbInstanceParameterGroupName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "dbInstanceParameterGroupNameSelector": {
              "description": "Selector for a ParameterGroup in rds to populate dbInstanceParameterGroupName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dbSubnetGroupName": {
              "description": "DB subnet group to associate with this DB cluster.\nNOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster.",
              "type": "string"
            },
            "dbSubnetGroupNameRef": {
              "description": "Reference to a SubnetGroup in rds to populate dbSubnetGroupName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "dbSubnetGroupNameSelector": {
              "description": "Selector for a SubnetGroup in rds to populate dbSubnetGroupName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dbSystemId": {
              "description": "For use with RDS Custom.",
              "type": "string"
            },
            "deleteAutomatedBackups": {
              "description": "Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is true.",
              "type": "boolean"
            },
            "deletionProtection": {
              "description": "If the DB cluster should have deletion protection enabled.\nThe database can't be deleted when this value is set to true.\nThe default is false.",
              "type": "boolean"
            },
            "domain": {
              "description": "The ID of the Directory Service Active Directory domain to create the cluster in.",
              "type": "string"
            },
            "domainIamRoleName": {
              "description": "The name of the IAM role to be used when making API calls to the Directory Service.",
              "type": "string"
            },
            "enableGlobalWriteForwarding": {
              "description": "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 User Guide for Aurora for more information.",
              "type": "boolean"
            },
            "enableHttpEndpoint": {
              "description": "Enable HTTP endpoint (data API). Only valid for some combinations of engine_mode, engine and engine_version and only available in some regions. See the Region and version availability section of the documentation. This option also does not work with any of these options specified: snapshot_identifier, replication_source_identifier, s3_import.",
              "type": "boolean"
            },
            "enableLocalWriteForwarding": {
              "description": "Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the User Guide for Aurora for more information. NOTE: Local write forwarding requires Aurora MySQL version 3.04 or higher.",
              "type": "boolean"
            },
            "enabledCloudwatchLogsExports": {
              "description": "Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, iam-db-auth-error, instance, postgresql (PostgreSQL), slowquery.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "engine": {
              "description": "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).",
              "type": "string"
            },
            "engineLifecycleSupport": {
              "description": "The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are open-source-rds-extended-support, open-source-rds-extended-support-disabled. Default value is open-source-rds-extended-support. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html",
              "type": "string"
            },
            "engineMode": {
              "description": "Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), parallelquery, provisioned, serverless. Defaults to: provisioned. Specify an empty value (\"\") for no engine mode. See the RDS User Guide for limitations when using serverless.",
              "type": "string"
            },
            "engineVersion": {
              "description": "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 Attribute Reference below.",
              "type": "string"
            },
            "finalSnapshotIdentifier": {
              "description": "Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.",
              "type": "string"
            },
            "globalClusterIdentifier": {
              "description": "Global cluster identifier specified on aws_rds_global_cluster.",
              "type": "string"
            },
            "iamDatabaseAuthenticationEnabled": {
              "description": "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.",
              "type": "boolean"
            },
            "iops": {
              "description": "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.",
              "type": "number"
            },
            "kmsKeyId": {
              "description": "ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true.",
              "type": "string"
            },
            "kmsKeyIdRef": {
              "description": "Reference to a Key in kms to populate kmsKeyId.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "kmsKeyIdSelector": {
              "description": "Selector for a Key in kms to populate kmsKeyId.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "manageMasterUserPassword": {
              "description": "Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided.",
              "type": "boolean"
            },
            "masterPasswordSecretRef": {
              "description": "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.\nPassword 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.",
              "properties": {
                "key": {
                  "description": "The key to select.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the secret.",
                  "type": "string"
                },
                "namespace": {
                  "description": "Namespace of the secret.",
                  "type": "string"
                }
              },
              "required": [
                "key",
                "name",
                "namespace"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "masterPasswordWoSecretRef": {
              "description": "Only required unless manage_master_user_password is set to true, a snapshot_identifier, replication_source_identifier, or master_password is provided or unless a global_cluster_identifier is provided when the cluster is the \"secondary\" cluster of a global database) Password for the master DB user. Note that this may show up in logs. Please refer to the RDS Naming Constraints. Cannot be set if manage_master_user_password is set to true.",
              "properties": {
                "key": {
                  "description": "The key to select.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the secret.",
                  "type": "string"
                },
                "namespace": {
                  "description": "Namespace of the secret.",
                  "type": "string"
                }
              },
              "required": [
                "key",
                "name",
                "namespace"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "masterPasswordWoVersion": {
              "description": "Used together with master_password_wo to trigger an update. Increment this value when an update to the master_password_wo is required.",
              "type": "number"
            },
            "masterUserSecretKmsKeyId": {
              "description": "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.",
              "type": "string"
            },
            "masterUserSecretKmsKeyIdRef": {
              "description": "Reference to a Key in kms to populate masterUserSecretKmsKeyId.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "masterUserSecretKmsKeyIdSelector": {
              "description": "Selector for a Key in kms to populate masterUserSecretKmsKeyId.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "masterUsername": {
              "description": "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.",
              "type": "string"
            },
            "monitoringInterval": {
              "description": "Interval, in seconds, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.",
              "type": "number"
            },
            "monitoringRoleArn": {
              "description": "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 Clusters.",
              "type": "string"
            },
            "monitoringRoleArnRef": {
              "description": "Reference to a Role in iam to populate monitoringRoleArn.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "monitoringRoleArnSelector": {
              "description": "Selector for a Role in iam to populate monitoringRoleArn.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "networkType": {
              "description": "Network type of the cluster. Valid values: IPV4, DUAL.",
              "type": "string"
            },
            "performanceInsightsEnabled": {
              "description": "Enables Performance Insights.",
              "type": "boolean"
            },
            "performanceInsightsKmsKeyId": {
              "description": "Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (aws/rds).",
              "type": "string"
            },
            "performanceInsightsRetentionPeriod": {
              "description": "Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are 7, month * 31 (where month is a number of months from 1-23), and 731. See here for more information on retention periods.",
              "type": "number"
            },
            "port": {
              "description": "Port on which the DB accepts connections.",
              "type": "number"
            },
            "preferredBackupWindow": {
              "description": "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 region, e.g. 04:00-09:00.",
              "type": "string"
            },
            "preferredMaintenanceWindow": {
              "description": "Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30",
              "type": "string"
            },
            "replicationSourceIdentifier": {
              "description": "ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. Note: Removing this attribute after creation will promote the read replica to a standalone cluster.",
              "type": "string"
            },
            "restoreToPointInTime": {
              "description": "Nested attribute for point in time restore. More details below.",
              "properties": {
                "restoreToTime": {
                  "description": "Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time.",
                  "type": "string"
                },
                "restoreType": {
                  "description": "Type of restore to be performed.\nValid options are full-copy (default) and copy-on-write.",
                  "type": "string"
                },
                "sourceClusterIdentifier": {
                  "description": "Identifier of the source database cluster from which to restore. When restoring from a cluster in another AWS account, the identifier is the ARN of that cluster.",
                  "type": "string"
                },
                "sourceClusterIdentifierRef": {
                  "description": "Reference to a Cluster in rds to populate sourceClusterIdentifier.",
                  "properties": {
                    "name": {
                      "description": "Name of the referenced object.",
                      "type": "string"
                    },
                    "policy": {
                      "description": "Policies for referencing.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "sourceClusterIdentifierSelector": {
                  "description": "Selector for a Cluster in rds to populate sourceClusterIdentifier.",
                  "properties": {
                    "matchControllerRef": {
                      "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                      "type": "boolean"
                    },
                    "matchLabels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "MatchLabels ensures an object with matching labels is selected.",
                      "type": "object"
                    },
                    "policy": {
                      "description": "Policies for selection.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "sourceClusterResourceId": {
                  "description": "Cluster resource ID of the source database cluster from which to restore. To be used for restoring a deleted cluster in the same account which still has a retained automatic backup available.",
                  "type": "string"
                },
                "useLatestRestorableTime": {
                  "description": "Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "s3Import": {
              "description": "Port on which the DB accepts connections.",
              "properties": {
                "bucketName": {
                  "description": "Bucket name where your backup is stored",
                  "type": "string"
                },
                "bucketNameRef": {
                  "description": "Reference to a Bucket in s3 to populate bucketName.",
                  "properties": {
                    "name": {
                      "description": "Name of the referenced object.",
                      "type": "string"
                    },
                    "policy": {
                      "description": "Policies for referencing.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "bucketNameSelector": {
                  "description": "Selector for a Bucket in s3 to populate bucketName.",
                  "properties": {
                    "matchControllerRef": {
                      "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                      "type": "boolean"
                    },
                    "matchLabels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "MatchLabels ensures an object with matching labels is selected.",
                      "type": "object"
                    },
                    "policy": {
                      "description": "Policies for selection.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "bucketPrefix": {
                  "description": "Can be blank, but is the path to your backup",
                  "type": "string"
                },
                "ingestionRole": {
                  "description": "Role applied to load the data.",
                  "type": "string"
                },
                "sourceEngine": {
                  "description": "Source engine for the backup",
                  "type": "string"
                },
                "sourceEngineVersion": {
                  "description": "Version of the source engine used to make the backup",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "scalingConfiguration": {
              "description": "Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below.",
              "properties": {
                "autoPause": {
                  "description": "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.",
                  "type": "boolean"
                },
                "maxCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "minCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "secondsBeforeTimeout": {
                  "description": "Amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. Valid values are 60 through 600. Defaults to 300.",
                  "type": "number"
                },
                "secondsUntilAutoPause": {
                  "description": "Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300.",
                  "type": "number"
                },
                "timeoutAction": {
                  "description": "Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "serverlessv2ScalingConfiguration": {
              "description": "Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below.",
              "properties": {
                "maxCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "minCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "secondsUntilAutoPause": {
                  "description": "Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "skipFinalSnapshot": {
              "description": "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.",
              "type": "boolean"
            },
            "snapshotIdentifier": {
              "description": "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.",
              "type": "string"
            },
            "sourceRegion": {
              "description": "The source region for an encrypted replica DB cluster.",
              "type": "string"
            },
            "storageEncrypted": {
              "description": "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.",
              "type": "boolean"
            },
            "storageType": {
              "description": "(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, io2 (Multi-AZ DB Clusters). Default: \"\" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters).",
              "type": "string"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "vpcSecurityGroupIdRefs": {
              "description": "References to SecurityGroup in ec2 to populate vpcSecurityGroupIds.",
              "items": {
                "description": "A Reference to a named object.",
                "properties": {
                  "name": {
                    "description": "Name of the referenced object.",
                    "type": "string"
                  },
                  "policy": {
                    "description": "Policies for referencing.",
                    "properties": {
                      "resolution": {
                        "default": "Required",
                        "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                        "enum": [
                          "Required",
                          "Optional"
                        ],
                        "type": "string"
                      },
                      "resolve": {
                        "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                        "enum": [
                          "Always",
                          "IfNotPresent"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "vpcSecurityGroupIdSelector": {
              "description": "Selector for a list of SecurityGroup in ec2 to populate vpcSecurityGroupIds.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "vpcSecurityGroupIds": {
              "description": "List of VPC security groups to associate with the Cluster",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "managementPolicies": {
          "default": [
            "*"
          ],
          "description": "THIS IS A BETA FIELD. It is on by default but can be opted out\nthrough a Crossplane feature flag.\nManagementPolicies specify the array of actions Crossplane is allowed to\ntake on the managed and external resources.\nThis field is planned to replace the DeletionPolicy field in a future\nrelease. Currently, both could be set independently and non-default\nvalues would be honored if the feature flag is enabled. If both are\ncustom, the DeletionPolicy field will be ignored.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223\nand this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md",
          "items": {
            "description": "A ManagementAction represents an action that the Crossplane controllers\ncan take on an external resource.",
            "enum": [
              "Observe",
              "Create",
              "Update",
              "Delete",
              "LateInitialize",
              "*"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "providerConfigRef": {
          "default": {
            "name": "default"
          },
          "description": "ProviderConfigReference specifies how the provider that will be used to\ncreate, observe, update, and delete this managed resource should be\nconfigured.",
          "properties": {
            "name": {
              "description": "Name of the referenced object.",
              "type": "string"
            },
            "policy": {
              "description": "Policies for referencing.",
              "properties": {
                "resolution": {
                  "default": "Required",
                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                  "enum": [
                    "Required",
                    "Optional"
                  ],
                  "type": "string"
                },
                "resolve": {
                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                  "enum": [
                    "Always",
                    "IfNotPresent"
                  ],
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "writeConnectionSecretToRef": {
          "description": "WriteConnectionSecretToReference specifies the namespace and name of a\nSecret to which any connection details for this managed resource should\nbe written. Connection details frequently include the endpoint, username,\nand password required to connect to the managed resource.",
          "properties": {
            "name": {
              "description": "Name of the secret.",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the secret.",
              "type": "string"
            }
          },
          "required": [
            "name",
            "namespace"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "forProvider"
      ],
      "type": "object",
      "x-kubernetes-validations": [
        {
          "message": "spec.forProvider.engine is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))"
        }
      ],
      "additionalProperties": false
    },
    "status": {
      "description": "ClusterStatus defines the observed state of Cluster.",
      "properties": {
        "atProvider": {
          "properties": {
            "allocatedStorage": {
              "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.",
              "type": "number"
            },
            "allowMajorVersionUpgrade": {
              "description": "Enable to allow major engine version upgrades when changing engine versions. Defaults to false.",
              "type": "boolean"
            },
            "applyImmediately": {
              "description": "Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false. See Amazon RDS Documentation for more information.",
              "type": "boolean"
            },
            "arn": {
              "description": "Amazon Resource Name (ARN) of cluster",
              "type": "string"
            },
            "availabilityZones": {
              "description": "List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.\nWe recommend specifying 3 AZs or using the  if necessary.\nA maximum of 3 AZs can be configured.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "backtrackWindow": {
              "description": "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)",
              "type": "number"
            },
            "backupRetentionPeriod": {
              "description": "Days to retain backups for. Default 1",
              "type": "number"
            },
            "caCertificateIdentifier": {
              "description": "The CA certificate identifier to use for the DB cluster's server certificate.",
              "type": "string"
            },
            "caCertificateValidTill": {
              "description": "Expiration date of the DB instance\u2019s server certificate",
              "type": "string"
            },
            "clusterMembers": {
              "description": "List of RDS Instances that are a part of this cluster",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "clusterResourceId": {
              "description": "RDS Cluster Resource ID",
              "type": "string"
            },
            "clusterScalabilityType": {
              "description": "Specifies the scalability mode of the Aurora DB cluster. When set to limitless, the cluster operates as an Aurora Limitless Database. When set to standard (the default), the cluster uses normal DB instance creation. Valid values: limitless, standard.",
              "type": "string"
            },
            "copyTagsToSnapshot": {
              "description": "Copy all Cluster tags to snapshots. Default is false.",
              "type": "boolean"
            },
            "databaseInsightsMode": {
              "description": "The mode of Database Insights to enable for the DB cluster. Valid values: standard, advanced.",
              "type": "string"
            },
            "databaseName": {
              "description": "Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: RDS Naming Constraints",
              "type": "string"
            },
            "dbClusterInstanceClass": {
              "description": "The 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.",
              "type": "string"
            },
            "dbClusterParameterGroupName": {
              "description": "A cluster parameter group to associate with the cluster.",
              "type": "string"
            },
            "dbInstanceParameterGroupName": {
              "description": "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.",
              "type": "string"
            },
            "dbSubnetGroupName": {
              "description": "DB subnet group to associate with this DB cluster.\nNOTE: This must match the db_subnet_group_name specified on every aws_rds_cluster_instance in the cluster.",
              "type": "string"
            },
            "dbSystemId": {
              "description": "For use with RDS Custom.",
              "type": "string"
            },
            "deleteAutomatedBackups": {
              "description": "Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is true.",
              "type": "boolean"
            },
            "deletionProtection": {
              "description": "If the DB cluster should have deletion protection enabled.\nThe database can't be deleted when this value is set to true.\nThe default is false.",
              "type": "boolean"
            },
            "domain": {
              "description": "The ID of the Directory Service Active Directory domain to create the cluster in.",
              "type": "string"
            },
            "domainIamRoleName": {
              "description": "The name of the IAM role to be used when making API calls to the Directory Service.",
              "type": "string"
            },
            "enableGlobalWriteForwarding": {
              "description": "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 User Guide for Aurora for more information.",
              "type": "boolean"
            },
            "enableHttpEndpoint": {
              "description": "Enable HTTP endpoint (data API). Only valid for some combinations of engine_mode, engine and engine_version and only available in some regions. See the Region and version availability section of the documentation. This option also does not work with any of these options specified: snapshot_identifier, replication_source_identifier, s3_import.",
              "type": "boolean"
            },
            "enableLocalWriteForwarding": {
              "description": "Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the User Guide for Aurora for more information. NOTE: Local write forwarding requires Aurora MySQL version 3.04 or higher.",
              "type": "boolean"
            },
            "enabledCloudwatchLogsExports": {
              "description": "Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: audit, error, general, iam-db-auth-error, instance, postgresql (PostgreSQL), slowquery.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "endpoint": {
              "description": "DNS address of the RDS instance",
              "type": "string"
            },
            "engine": {
              "description": "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).",
              "type": "string"
            },
            "engineLifecycleSupport": {
              "description": "The life cycle type for this DB instance. This setting is valid for cluster types Aurora DB clusters and Multi-AZ DB clusters. Valid values are open-source-rds-extended-support, open-source-rds-extended-support-disabled. Default value is open-source-rds-extended-support. [Using Amazon RDS Extended Support]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html",
              "type": "string"
            },
            "engineMode": {
              "description": "Database engine mode. Valid values: global (only valid for Aurora MySQL 1.21 and earlier), parallelquery, provisioned, serverless. Defaults to: provisioned. Specify an empty value (\"\") for no engine mode. See the RDS User Guide for limitations when using serverless.",
              "type": "string"
            },
            "engineVersion": {
              "description": "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 Attribute Reference below.",
              "type": "string"
            },
            "engineVersionActual": {
              "description": "Running version of the database.",
              "type": "string"
            },
            "finalSnapshotIdentifier": {
              "description": "Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.",
              "type": "string"
            },
            "globalClusterIdentifier": {
              "description": "Global cluster identifier specified on aws_rds_global_cluster.",
              "type": "string"
            },
            "hostedZoneId": {
              "description": "Route53 Hosted Zone ID of the endpoint",
              "type": "string"
            },
            "iamDatabaseAuthenticationEnabled": {
              "description": "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.",
              "type": "boolean"
            },
            "iamRoles": {
              "description": "List of ARNs for the IAM roles to associate to the RDS Cluster.",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            },
            "id": {
              "description": "RDS Cluster Identifier",
              "type": "string"
            },
            "iops": {
              "description": "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.",
              "type": "number"
            },
            "kmsKeyId": {
              "description": "ARN for the KMS encryption key. When specifying kms_key_id, storage_encrypted needs to be set to true.",
              "type": "string"
            },
            "manageMasterUserPassword": {
              "description": "Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if master_password is provided.",
              "type": "boolean"
            },
            "masterPasswordWoVersion": {
              "description": "Used together with master_password_wo to trigger an update. Increment this value when an update to the master_password_wo is required.",
              "type": "number"
            },
            "masterUserSecret": {
              "description": "Block that specifies the master user secret. Only available when manage_master_user_password is set to true. Documented below.",
              "items": {
                "properties": {
                  "kmsKeyId": {
                    "description": "Amazon Web Services KMS key identifier that is used to encrypt the secret.",
                    "type": "string"
                  },
                  "secretArn": {
                    "description": "Amazon Resource Name (ARN) of the secret.",
                    "type": "string"
                  },
                  "secretStatus": {
                    "description": "Status of the secret. Valid Values: creating | active | rotating | impaired.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "masterUserSecretKmsKeyId": {
              "description": "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.",
              "type": "string"
            },
            "masterUsername": {
              "description": "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.",
              "type": "string"
            },
            "monitoringInterval": {
              "description": "Interval, in seconds, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.",
              "type": "number"
            },
            "monitoringRoleArn": {
              "description": "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 Clusters.",
              "type": "string"
            },
            "networkType": {
              "description": "Network type of the cluster. Valid values: IPV4, DUAL.",
              "type": "string"
            },
            "performanceInsightsEnabled": {
              "description": "Enables Performance Insights.",
              "type": "boolean"
            },
            "performanceInsightsKmsKeyId": {
              "description": "Specifies the KMS Key ID to encrypt Performance Insights data. If not specified, the default RDS KMS key will be used (aws/rds).",
              "type": "string"
            },
            "performanceInsightsRetentionPeriod": {
              "description": "Specifies the amount of time to retain performance insights data for. Defaults to 7 days if Performance Insights are enabled. Valid values are 7, month * 31 (where month is a number of months from 1-23), and 731. See here for more information on retention periods.",
              "type": "number"
            },
            "port": {
              "description": "Port on which the DB accepts connections.",
              "type": "number"
            },
            "preferredBackupWindow": {
              "description": "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 region, e.g. 04:00-09:00.",
              "type": "string"
            },
            "preferredMaintenanceWindow": {
              "description": "Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30",
              "type": "string"
            },
            "readerEndpoint": {
              "description": "Read-only endpoint for the Aurora cluster, automatically\nload-balanced across replicas",
              "type": "string"
            },
            "region": {
              "description": "Region where this resource will be managed. Defaults to the Region set in the provider configuration.\nRegion is the region you'd like your resource to be created in.",
              "type": "string"
            },
            "replicationSourceIdentifier": {
              "description": "ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. Note: Removing this attribute after creation will promote the read replica to a standalone cluster.",
              "type": "string"
            },
            "restoreToPointInTime": {
              "description": "Nested attribute for point in time restore. More details below.",
              "properties": {
                "restoreToTime": {
                  "description": "Date and time in UTC format to restore the database cluster to. Conflicts with use_latest_restorable_time.",
                  "type": "string"
                },
                "restoreType": {
                  "description": "Type of restore to be performed.\nValid options are full-copy (default) and copy-on-write.",
                  "type": "string"
                },
                "sourceClusterIdentifier": {
                  "description": "Identifier of the source database cluster from which to restore. When restoring from a cluster in another AWS account, the identifier is the ARN of that cluster.",
                  "type": "string"
                },
                "sourceClusterResourceId": {
                  "description": "Cluster resource ID of the source database cluster from which to restore. To be used for restoring a deleted cluster in the same account which still has a retained automatic backup available.",
                  "type": "string"
                },
                "useLatestRestorableTime": {
                  "description": "Set to true to restore the database cluster to the latest restorable backup time. Defaults to false. Conflicts with restore_to_time.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "s3Import": {
              "description": "Port on which the DB accepts connections.",
              "properties": {
                "bucketName": {
                  "description": "Bucket name where your backup is stored",
                  "type": "string"
                },
                "bucketPrefix": {
                  "description": "Can be blank, but is the path to your backup",
                  "type": "string"
                },
                "ingestionRole": {
                  "description": "Role applied to load the data.",
                  "type": "string"
                },
                "sourceEngine": {
                  "description": "Source engine for the backup",
                  "type": "string"
                },
                "sourceEngineVersion": {
                  "description": "Version of the source engine used to make the backup",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "scalingConfiguration": {
              "description": "Nested attribute with scaling properties. Only valid when engine_mode is set to serverless. More details below.",
              "properties": {
                "autoPause": {
                  "description": "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.",
                  "type": "boolean"
                },
                "maxCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "minCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "secondsBeforeTimeout": {
                  "description": "Amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. Valid values are 60 through 600. Defaults to 300.",
                  "type": "number"
                },
                "secondsUntilAutoPause": {
                  "description": "Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300.",
                  "type": "number"
                },
                "timeoutAction": {
                  "description": "Action to take when the timeout is reached. Valid values: ForceApplyCapacityChange, RollbackCapacityChange. Defaults to RollbackCapacityChange. See documentation.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "serverlessv2ScalingConfiguration": {
              "description": "Nested attribute with scaling properties for ServerlessV2. Only valid when engine_mode is set to provisioned. More details below.",
              "properties": {
                "maxCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "minCapacity": {
                  "description": "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.",
                  "type": "number"
                },
                "secondsUntilAutoPause": {
                  "description": "Time, in seconds, before an Aurora DB cluster in serverless mode is paused. Valid values are 300 through 86400. Defaults to 300.",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "skipFinalSnapshot": {
              "description": "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.",
              "type": "boolean"
            },
            "snapshotIdentifier": {
              "description": "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.",
              "type": "string"
            },
            "sourceRegion": {
              "description": "The source region for an encrypted replica DB cluster.",
              "type": "string"
            },
            "storageEncrypted": {
              "description": "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.",
              "type": "boolean"
            },
            "storageType": {
              "description": "(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, io2 (Multi-AZ DB Clusters). Default: \"\" (Aurora DB Clusters); io1 (Multi-AZ DB Clusters).",
              "type": "string"
            },
            "tags": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Key-value map of resource tags.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "tagsAll": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.",
              "type": "object",
              "x-kubernetes-map-type": "granular"
            },
            "vpcSecurityGroupIds": {
              "description": "List of VPC security groups to associate with the Cluster",
              "items": {
                "type": "string"
              },
              "type": "array",
              "x-kubernetes-list-type": "set"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "Conditions of the resource.",
          "items": {
            "description": "A Condition that may apply to a resource.",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time this condition transitioned from one\nstatus to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A Message containing details about this condition's last transition from\none status to another, if any.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "A Reason for this condition's last transition from one status to another.",
                "type": "string"
              },
              "status": {
                "description": "Status of this condition; is it currently True, False, or Unknown?",
                "type": "string"
              },
              "type": {
                "description": "Type of this condition. At most one of each condition type may apply to\na resource at any point in time.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "type"
          ],
          "x-kubernetes-list-type": "map"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest metadata.generation\nwhich resulted in either a ready state, or stalled due to error\nit can not recover from without human intervention.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
