# AWS RDS Custom for Oracle Module This module provides prescriptive deployment for [RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html). This module provides the ability to create primary instances and associated replicas. Figure 1 shows an example configuration you can deploy using this module. For more details, common deployment examples can be found in [examples/](./examples).
object({
allocated_storage = optional(number)
apply_immediately = optional(bool)
availability_zone = optional(string)
backup_retention_period = number
backup_window = optional(string)
copy_tags_to_snapshot = optional(bool)
db_name = string
delete_automated_backups = optional(bool)
deletion_protection = optional(bool)
engine = string
engine_version = string
final_snapshot_identifier = optional(string)
identifier = string
instance_class = string
iops = optional(number)
maintenance_window = optional(string)
network_type = optional(string)
password = string
port = optional(number)
publicly_accessible = optional(bool)
skip_final_snapshot = optional(bool)
storage_type = optional(string)
username = string
vpc_security_group_ids = optional(list(string))
}) | n/a | yes |
| [private\_subnet\_config](#input\_private\_subnet\_config) | List of private subnets configurations for the RDS instance and replicas. Will be applied in order to the instance first, and then replicas. | list(object({
subnet_id = string
availability_zone = string
})) | n/a | yes |
| [private\_subnet\_route\_table\_ids](#input\_private\_subnet\_route\_table\_ids) | List of private subnets route tables in which to associate the gateway endpoints. | `list(string)` | n/a | yes |
| [vpc\_cidr](#input\_vpc\_cidr) | VPC CIDR for the endpoints to communicate with. | `string` | n/a | yes |
| [vpc\_id](#input\_vpc\_id) | VPC Id. | `string` | n/a | yes |
| [aws\_db\_instance\_replicas](#input\_aws\_db\_instance\_replicas) | Replica instance(s) configuration values. Map where the key is the argument. For examples, see /examples/ folder.object({
replica_count = number
allocated_storage = optional(number)
apply_immediately = optional(bool)
availability_zones = optional(list(string))
backup_retention_period = optional(number)
backup_window = optional(string)
copy_tags_to_snapshot = optional(bool)
delete_automated_backups = optional(bool)
final_snapshot_identifier = optional(string)
identifiers = optional(list(string))
instance_class = string
iops = optional(number)
maintenance_window = optional(string)
network_type = optional(string)
port = optional(number)
replicate_source_db = optional(number)
publicly_accessible = optional(bool)
skip_final_snapshot = optional(bool)
storage_type = optional(string)
vpc_security_group_ids = optional(list(string))
}) | {
"instance_class": "",
"replica_count": 0
} | no |
| [create\_db\_subnet\_group](#input\_create\_db\_subnet\_group) | Toggle to create or assign db subnet group. | `bool` | `true` | no |
| [create\_endpoint\_security\_group](#input\_create\_endpoint\_security\_group) | Toggle to create or assign endpoint security group. | `bool` | `true` | no |
| [create\_iam\_instance\_profile](#input\_create\_iam\_instance\_profile) | Toggle to create or assign IAM instance profile. | `bool` | `true` | no |
| [create\_iam\_role](#input\_create\_iam\_role) | Toggle to create or assign IAM role. | `bool` | `true` | no |
| [create\_vpc\_endpoints](#input\_create\_vpc\_endpoints) | Toggle to create vpc endpoints. | `bool` | `true` | no |
| [db\_subnet\_group](#input\_db\_subnet\_group) | DB Subnet Group to be used. Required if `create_db_subnet_group` is set to `false`. | `string` | `""` | no |
| [db\_subnet\_group\_description](#input\_db\_subnet\_group\_description) | Description of the db subnet group created. | `string` | `"DB subnet group for RDSCustomForOracle"` | no |
| [db\_subnet\_group\_name](#input\_db\_subnet\_group\_name) | Name of db subnet group created. | `string` | `null` | no |
| [endpoint\_security\_group\_description](#input\_endpoint\_security\_group\_description) | Description of the endpoint security group created. | `string` | `"Endpoint security group"` | no |
| [endpoint\_security\_group\_id](#input\_endpoint\_security\_group\_id) | Security group to be used. Required if `create_endpoint_security_group` is set to `false`. | `string` | `""` | no |
| [endpoint\_security\_group\_name](#input\_endpoint\_security\_group\_name) | Name of endpoint security group created. | `string` | `null` | no |
| [iam\_instance\_profile\_arn](#input\_iam\_instance\_profile\_arn) | IAM instance profile to be used. Required if `create_iam_instance_profile` is set to `false`. | `string` | `null` | no |
| [iam\_instance\_profile\_name](#input\_iam\_instance\_profile\_name) | Name of IAM instance profile created. | `string` | `null` | no |
| [iam\_instance\_profile\_path](#input\_iam\_instance\_profile\_path) | IAM instance profile path. | `string` | `null` | no |
| [iam\_role\_arn](#input\_iam\_role\_arn) | IAM role to be used. Required if `create_iam_role` is set to `false`. | `string` | `null` | no |
| [iam\_role\_description](#input\_iam\_role\_description) | Description of the role. | `string` | `"Role for RDS Custom for Oracle"` | no |
| [iam\_role\_name](#input\_iam\_role\_name) | Name to use on IAM role created. | `string` | `null` | no |
| [iam\_role\_path](#input\_iam\_role\_path) | IAM role path. | `string` | `null` | no |
| [kms\_key\_id](#input\_kms\_key\_id) | KMS Customer Managed Key Id. | `string` | `""` | no |
| [tags](#input\_tags) | Additional tags (e.g. `map('example-inc:cost-allocation:CostCenter','XYZ'`). | `map(string)` | `{}` | no |
| [timeout](#input\_timeout) | Optional nested block of timeout values. For examples, see /examples/ folder.