{"id":37227811,"url":"https://github.com/paybilldev/terraform-aws-rds-aurora","last_synced_at":"2026-01-15T03:24:12.663Z","repository":{"id":331688592,"uuid":"1126910387","full_name":"paybilldev/terraform-aws-rds-aurora","owner":"paybilldev","description":"Provisions secure, production-ready AWS RDS and Aurora databases.","archived":false,"fork":false,"pushed_at":"2026-01-10T19:40:35.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T05:50:40.898Z","etag":null,"topics":["aurora","aws","rds","terraform"],"latest_commit_sha":null,"homepage":"https://paybill.dev/docs/platform/terraform/aws/rds-aurora","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paybilldev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"ebartile"}},"created_at":"2026-01-02T19:57:22.000Z","updated_at":"2026-01-10T19:40:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/paybilldev/terraform-aws-rds-aurora","commit_stats":null,"previous_names":["paybilldev/terraform-aws-rds-aurora"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/paybilldev/terraform-aws-rds-aurora","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paybilldev%2Fterraform-aws-rds-aurora","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paybilldev%2Fterraform-aws-rds-aurora/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paybilldev%2Fterraform-aws-rds-aurora/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paybilldev%2Fterraform-aws-rds-aurora/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paybilldev","download_url":"https://codeload.github.com/paybilldev/terraform-aws-rds-aurora/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paybilldev%2Fterraform-aws-rds-aurora/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aurora","aws","rds","terraform"],"created_at":"2026-01-15T03:24:11.858Z","updated_at":"2026-01-15T03:24:12.655Z","avatar_url":"https://github.com/paybilldev.png","language":"HCL","funding_links":["https://buymeacoffee.com/ebartile"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://paybill.dev\" target=\"_blank\"\u003e\n    \u003cpicture\u003e\n      \u003cimg src=\"./static/aws-rds-aurora.png\" alt=\"Banner\" /\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Terraform Module: Amazon RDS and Amazon Aurora Setup\n\nThis module provisions and manages Amazon RDS instances and Amazon Aurora clusters with production-grade defaults, including KMS encryption, IAM roles, enhanced monitoring, option groups, automated password generation, and secure storage of credentials and endpoints in AWS SSM Parameter Store.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.5.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.0.0 |\n| \u003ca name=\"requirement_null\"\u003e\u003c/a\u003e [null](#requirement\\_null) | ~\u003e 3.1.1 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | ~\u003e 3.4.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.0.0 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | ~\u003e 3.4.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_aurora_cluster\"\u003e\u003c/a\u003e [aurora\\_cluster](#module\\_aurora\\_cluster) | git::https://github.com/cloudposse/terraform-aws-rds-cluster.git | 1.3.2 |\n| \u003ca name=\"module_db_management\"\u003e\u003c/a\u003e [db\\_management](#module\\_db\\_management) | git::https://github.com/cloudposse/terraform-aws-s3-bucket | 3.0.0 |\n| \u003ca name=\"module_rds_instance\"\u003e\u003c/a\u003e [rds\\_instance](#module\\_rds\\_instance) | git::https://github.com/cloudposse/terraform-aws-rds | 0.40.0 |\n| \u003ca name=\"module_this\"\u003e\u003c/a\u003e [this](#module\\_this) | cloudposse/label/null | 0.25.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_db_instance_role_association.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance_role_association) | resource |\n| [aws_db_option_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_option_group) | resource |\n| [aws_iam_policy.option_group](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |\n| [aws_iam_role.enhanced_monitoring](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role.option_group](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.enhanced_monitoring](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_iam_role_policy_attachment.option_group](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_kms_alias.aurora_cluster_kms_key](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_alias) | resource |\n| [aws_kms_alias.rds_db_kms_key](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_alias) | resource |\n| [aws_kms_key.aurora_cluster_kms_key](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key) | resource |\n| [aws_kms_key.rds_db_kms_key](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key) | resource |\n| [aws_ssm_parameter.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [random_password.aurora_db_admin_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [random_password.rds_db_admin_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [aws_iam_policy_document.enhanced_monitoring](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_kms_alias.rds](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/kms_alias) | data source |\n| [aws_partition.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_account_id\"\u003e\u003c/a\u003e [account\\_id](#input\\_account\\_id) | Account ID where the resources will be deployed to. This is required if `enable_custom_option_group` is set to `true`. | `string` | `\"\"` | no |\n| \u003ca name=\"input_additional_tag_map\"\u003e\u003c/a\u003e [additional\\_tag\\_map](#input\\_additional\\_tag\\_map) | Additional key-value pairs to add to each map in `tags_as_list_of_maps`. Not added to `tags` or `id`.\u003cbr/\u003eThis is for some rare cases where resources want additional configuration of tags\u003cbr/\u003eand therefore take a list of maps with tag key, value, and additional configuration. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_attributes\"\u003e\u003c/a\u003e [attributes](#input\\_attributes) | ID element. Additional attributes (e.g. `workers` or `cluster`) to add to `id`,\u003cbr/\u003ein the order they appear in the list. New attributes are appended to the\u003cbr/\u003eend of the list. The elements of the list are joined by the `delimiter`\u003cbr/\u003eand treated as a single ID element. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_aurora_allow_major_version_upgrade\"\u003e\u003c/a\u003e [aurora\\_allow\\_major\\_version\\_upgrade](#input\\_aurora\\_allow\\_major\\_version\\_upgrade) | Enable to allow major engine version upgrades when changing engine versions. Defaults to false. | `bool` | `false` | no |\n| \u003ca name=\"input_aurora_allowed_cidr_blocks\"\u003e\u003c/a\u003e [aurora\\_allowed\\_cidr\\_blocks](#input\\_aurora\\_allowed\\_cidr\\_blocks) | List of CIDR blocks allowed to access the cluster | `list(string)` | `[]` | no |\n| \u003ca name=\"input_aurora_auto_minor_version_upgrade\"\u003e\u003c/a\u003e [aurora\\_auto\\_minor\\_version\\_upgrade](#input\\_aurora\\_auto\\_minor\\_version\\_upgrade) | Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window | `bool` | `true` | no |\n| \u003ca name=\"input_aurora_cluster_enabled\"\u003e\u003c/a\u003e [aurora\\_cluster\\_enabled](#input\\_aurora\\_cluster\\_enabled) | Enable creation of an Aurora Cluster | `bool` | `false` | no |\n| \u003ca name=\"input_aurora_cluster_family\"\u003e\u003c/a\u003e [aurora\\_cluster\\_family](#input\\_aurora\\_cluster\\_family) | The family of the DB cluster parameter group | `string` | `\"aurora-postgresql14\"` | no |\n| \u003ca name=\"input_aurora_cluster_name\"\u003e\u003c/a\u003e [aurora\\_cluster\\_name](#input\\_aurora\\_cluster\\_name) | Database name (default is not to create a database) | `string` | `\"\"` | no |\n| \u003ca name=\"input_aurora_cluster_name_override\"\u003e\u003c/a\u003e [aurora\\_cluster\\_name\\_override](#input\\_aurora\\_cluster\\_name\\_override) | If `true`, this will set a the Aurora Cluster name to what is defined in var.aurora\\_cluster\\_name.\u003cbr/\u003eIf `false`, this will prepend ${var.namespace}-${var.environment} to ${var.aurora\\_cluster\\_name}\" | `bool` | `false` | no |\n| \u003ca name=\"input_aurora_cluster_size\"\u003e\u003c/a\u003e [aurora\\_cluster\\_size](#input\\_aurora\\_cluster\\_size) | Number of DB instances to create in the cluster | `number` | `0` | no |\n| \u003ca name=\"input_aurora_db_admin_password\"\u003e\u003c/a\u003e [aurora\\_db\\_admin\\_password](#input\\_aurora\\_db\\_admin\\_password) | Password of the DB admin | `string` | `\"\"` | no |\n| \u003ca name=\"input_aurora_db_admin_username\"\u003e\u003c/a\u003e [aurora\\_db\\_admin\\_username](#input\\_aurora\\_db\\_admin\\_username) | Name of the default DB admin user role | `string` | `\"\"` | no |\n| \u003ca name=\"input_aurora_db_name\"\u003e\u003c/a\u003e [aurora\\_db\\_name](#input\\_aurora\\_db\\_name) | Database name. | `string` | `\"auroradb\"` | no |\n| \u003ca name=\"input_aurora_db_port\"\u003e\u003c/a\u003e [aurora\\_db\\_port](#input\\_aurora\\_db\\_port) | Port for the Aurora DB instance to use. | `number` | `5432` | no |\n| \u003ca name=\"input_aurora_engine\"\u003e\u003c/a\u003e [aurora\\_engine](#input\\_aurora\\_engine) | The name of the database engine to be used for this DB cluster. Valid values: `aurora`, `aurora-mysql`, `aurora-postgresql` | `string` | `\"aurora-postgresql\"` | no |\n| \u003ca name=\"input_aurora_engine_mode\"\u003e\u003c/a\u003e [aurora\\_engine\\_mode](#input\\_aurora\\_engine\\_mode) | The database engine mode. Valid values: `parallelquery`, `provisioned`, `serverless` | `string` | `\"provisioned\"` | no |\n| \u003ca name=\"input_aurora_engine_version\"\u003e\u003c/a\u003e [aurora\\_engine\\_version](#input\\_aurora\\_engine\\_version) | The version of the database engine tocl use. See `aws rds describe-db-engine-versions` | `string` | `\"14.5\"` | no |\n| \u003ca name=\"input_aurora_instance_type\"\u003e\u003c/a\u003e [aurora\\_instance\\_type](#input\\_aurora\\_instance\\_type) | Instance type to use | `string` | `\"db.serverless\"` | no |\n| \u003ca name=\"input_aurora_iops\"\u003e\u003c/a\u003e [aurora\\_iops](#input\\_aurora\\_iops) | The amount of provisioned IOPS. Setting this implies a storage\\_type of 'io1'. This setting is required to create a Multi-AZ DB cluster. Check TF docs for values based on db engine | `number` | `null` | no |\n| \u003ca name=\"input_aurora_scaling_configuration\"\u003e\u003c/a\u003e [aurora\\_scaling\\_configuration](#input\\_aurora\\_scaling\\_configuration) | List of nested attributes with scaling properties. Only valid when engine\\_mode is set to serverless | \u003cpre\u003elist(object({\u003cbr/\u003e    auto_pause               = bool\u003cbr/\u003e    max_capacity             = number\u003cbr/\u003e    min_capacity             = number\u003cbr/\u003e    seconds_until_auto_pause = number\u003cbr/\u003e    timeout_action           = string\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_aurora_security_groups\"\u003e\u003c/a\u003e [aurora\\_security\\_groups](#input\\_aurora\\_security\\_groups) | List of security group IDs to be allowed to connect to the DB instance | `list(string)` | `[]` | no |\n| \u003ca name=\"input_aurora_serverlessv2_scaling_configuration\"\u003e\u003c/a\u003e [aurora\\_serverlessv2\\_scaling\\_configuration](#input\\_aurora\\_serverlessv2\\_scaling\\_configuration) | serverlessv2 scaling properties | \u003cpre\u003eobject({\u003cbr/\u003e    min_capacity = number\u003cbr/\u003e    max_capacity = number\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_aurora_storage_type\"\u003e\u003c/a\u003e [aurora\\_storage\\_type](#input\\_aurora\\_storage\\_type) | One of 'standard' (magnetic), 'gp2' (general purpose SSD), or 'io1' (provisioned IOPS SSD) or aurora-iopt1 | `string` | `null` | no |\n| \u003ca name=\"input_aurora_subnets\"\u003e\u003c/a\u003e [aurora\\_subnets](#input\\_aurora\\_subnets) | Subnets for the cluster to run in. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_context\"\u003e\u003c/a\u003e [context](#input\\_context) | Single object for setting entire context at once.\u003cbr/\u003eSee description of individual variables for details.\u003cbr/\u003eLeave string and numeric variables as `null` to use default value.\u003cbr/\u003eIndividual variable settings (non-null) override settings in context object,\u003cbr/\u003eexcept for attributes, tags, and additional\\_tag\\_map, which are merged. | `any` | \u003cpre\u003e{\u003cbr/\u003e  \"additional_tag_map\": {},\u003cbr/\u003e  \"attributes\": [],\u003cbr/\u003e  \"delimiter\": null,\u003cbr/\u003e  \"descriptor_formats\": {},\u003cbr/\u003e  \"enabled\": true,\u003cbr/\u003e  \"environment\": null,\u003cbr/\u003e  \"id_length_limit\": null,\u003cbr/\u003e  \"label_key_case\": null,\u003cbr/\u003e  \"label_order\": [],\u003cbr/\u003e  \"label_value_case\": null,\u003cbr/\u003e  \"labels_as_tags\": [\u003cbr/\u003e    \"unset\"\u003cbr/\u003e  ],\u003cbr/\u003e  \"name\": null,\u003cbr/\u003e  \"namespace\": null,\u003cbr/\u003e  \"regex_replace_chars\": null,\u003cbr/\u003e  \"stage\": null,\u003cbr/\u003e  \"tags\": {},\u003cbr/\u003e  \"tenant\": null\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_deletion_protection\"\u003e\u003c/a\u003e [deletion\\_protection](#input\\_deletion\\_protection) | Protect the instance from being deleted | `bool` | `false` | no |\n| \u003ca name=\"input_deletion_window_in_days\"\u003e\u003c/a\u003e [deletion\\_window\\_in\\_days](#input\\_deletion\\_window\\_in\\_days) | n/a | `number` | `10` | no |\n| \u003ca name=\"input_delimiter\"\u003e\u003c/a\u003e [delimiter](#input\\_delimiter) | Delimiter to be used between ID elements.\u003cbr/\u003eDefaults to `-` (hyphen). Set to `\"\"` to use no delimiter at all. | `string` | `null` | no |\n| \u003ca name=\"input_descriptor_formats\"\u003e\u003c/a\u003e [descriptor\\_formats](#input\\_descriptor\\_formats) | Describe additional descriptors to be output in the `descriptors` output map.\u003cbr/\u003eMap of maps. Keys are names of descriptors. Values are maps of the form\u003cbr/\u003e`{\u003cbr/\u003e   format = string\u003cbr/\u003e   labels = list(string)\u003cbr/\u003e}`\u003cbr/\u003e(Type is `any` so the map values can later be enhanced to provide additional options.)\u003cbr/\u003e`format` is a Terraform format string to be passed to the `format()` function.\u003cbr/\u003e`labels` is a list of labels, in order, to pass to `format()` function.\u003cbr/\u003eLabel values will be normalized before being passed to `format()` so they will be\u003cbr/\u003eidentical to how they appear in `id`.\u003cbr/\u003eDefault is `{}` (`descriptors` output will be empty). | `any` | `{}` | no |\n| \u003ca name=\"input_enable_key_rotation\"\u003e\u003c/a\u003e [enable\\_key\\_rotation](#input\\_enable\\_key\\_rotation) | n/a | `bool` | `true` | no |\n| \u003ca name=\"input_enabled\"\u003e\u003c/a\u003e [enabled](#input\\_enabled) | Set to false to prevent the module from creating any resources | `bool` | `null` | no |\n| \u003ca name=\"input_enhanced_monitoring_arn\"\u003e\u003c/a\u003e [enhanced\\_monitoring\\_arn](#input\\_enhanced\\_monitoring\\_arn) | ARN to the enhanced monitoring policy | `string` | `\"arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole\"` | no |\n| \u003ca name=\"input_enhanced_monitoring_name\"\u003e\u003c/a\u003e [enhanced\\_monitoring\\_name](#input\\_enhanced\\_monitoring\\_name) | Name to assign the enhanced monitoring resources. | `string` | n/a | yes |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | ID element. Usually used for region e.g. 'uw2', 'us-west-2', OR role 'prod', 'staging', 'dev', 'UAT' | `string` | n/a | yes |\n| \u003ca name=\"input_iam_database_authentication_enabled\"\u003e\u003c/a\u003e [iam\\_database\\_authentication\\_enabled](#input\\_iam\\_database\\_authentication\\_enabled) | Specifies whether or mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled | `bool` | `false` | no |\n| \u003ca name=\"input_id_length_limit\"\u003e\u003c/a\u003e [id\\_length\\_limit](#input\\_id\\_length\\_limit) | Limit `id` to this many characters (minimum 6).\u003cbr/\u003eSet to `0` for unlimited length.\u003cbr/\u003eSet to `null` for keep the existing setting, which defaults to `0`.\u003cbr/\u003eDoes not affect `id_full`. | `number` | `null` | no |\n| \u003ca name=\"input_kms_key_arn\"\u003e\u003c/a\u003e [kms\\_key\\_arn](#input\\_kms\\_key\\_arn) | The ARN for the KMS encryption key. When specifying `kms_key_arn`, `storage_encrypted` needs to be set to `true` | `string` | `\"\"` | no |\n| \u003ca name=\"input_label_key_case\"\u003e\u003c/a\u003e [label\\_key\\_case](#input\\_label\\_key\\_case) | Controls the letter case of the `tags` keys (label names) for tags generated by this module.\u003cbr/\u003eDoes not affect keys of tags passed in via the `tags` input.\u003cbr/\u003ePossible values: `lower`, `title`, `upper`.\u003cbr/\u003eDefault value: `title`. | `string` | `null` | no |\n| \u003ca name=\"input_label_order\"\u003e\u003c/a\u003e [label\\_order](#input\\_label\\_order) | The order in which the labels (ID elements) appear in the `id`.\u003cbr/\u003eDefaults to [\"namespace\", \"environment\", \"stage\", \"name\", \"attributes\"].\u003cbr/\u003eYou can omit any of the 6 labels (\"tenant\" is the 6th), but at least one must be present. | `list(string)` | `null` | no |\n| \u003ca name=\"input_label_value_case\"\u003e\u003c/a\u003e [label\\_value\\_case](#input\\_label\\_value\\_case) | Controls the letter case of ID elements (labels) as included in `id`,\u003cbr/\u003eset as tag values, and output by this module individually.\u003cbr/\u003eDoes not affect values of tags passed in via the `tags` input.\u003cbr/\u003ePossible values: `lower`, `title`, `upper` and `none` (no transformation).\u003cbr/\u003eSet this to `title` and set `delimiter` to `\"\"` to yield Pascal Case IDs.\u003cbr/\u003eDefault value: `lower`. | `string` | `null` | no |\n| \u003ca name=\"input_labels_as_tags\"\u003e\u003c/a\u003e [labels\\_as\\_tags](#input\\_labels\\_as\\_tags) | Set of labels (ID elements) to include as tags in the `tags` output.\u003cbr/\u003eDefault is to include all labels.\u003cbr/\u003eTags with empty values will not be included in the `tags` output.\u003cbr/\u003eSet to `[]` to suppress all generated tags.\u003cbr/\u003e**Notes:**\u003cbr/\u003e  The value of the `name` tag, if included, will be the `id`, not the `name`.\u003cbr/\u003e  Unlike other `null-label` inputs, the initial setting of `labels_as_tags` cannot be\u003cbr/\u003e  changed in later chained modules. Attempts to change it will be silently ignored. | `set(string)` | \u003cpre\u003e[\u003cbr/\u003e  \"default\"\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | ID element. Usually the component or solution name, e.g. 'app' or 'jenkins'.\u003cbr/\u003eThis is the only ID element not also included as a `tag`.\u003cbr/\u003eThe \"name\" tag is set to the full `id` string. There is no tag with the value of the `name` input. | `string` | `null` | no |\n| \u003ca name=\"input_namespace\"\u003e\u003c/a\u003e [namespace](#input\\_namespace) | ID element. Usually an abbreviation of your organization name, e.g. 'eg' or 'cp', to help ensure generated IDs are globally unique | `string` | n/a | yes |\n| \u003ca name=\"input_performance_insights_enabled\"\u003e\u003c/a\u003e [performance\\_insights\\_enabled](#input\\_performance\\_insights\\_enabled) | Whether to enable Performance Insights | `bool` | `false` | no |\n| \u003ca name=\"input_performance_insights_retention_period\"\u003e\u003c/a\u003e [performance\\_insights\\_retention\\_period](#input\\_performance\\_insights\\_retention\\_period) | Amount of time in days to retain Performance Insights data. Either 7 (7 days) or 731 (2 years) | `number` | `null` | no |\n| \u003ca name=\"input_rds_enable_custom_option_group\"\u003e\u003c/a\u003e [rds\\_enable\\_custom\\_option\\_group](#input\\_rds\\_enable\\_custom\\_option\\_group) | Enable the custom Option Group for restoring backups via S3 | `bool` | `false` | no |\n| \u003ca name=\"input_rds_instance_allocated_storage\"\u003e\u003c/a\u003e [rds\\_instance\\_allocated\\_storage](#input\\_rds\\_instance\\_allocated\\_storage) | The allocated storage in GBs. Required unless a snapshot\\_identifier or replicate\\_source\\_db is provided. | `number` | `20` | no |\n| \u003ca name=\"input_rds_instance_allow_major_version_upgrade\"\u003e\u003c/a\u003e [rds\\_instance\\_allow\\_major\\_version\\_upgrade](#input\\_rds\\_instance\\_allow\\_major\\_version\\_upgrade) | Allow major version upgrade | `bool` | `false` | no |\n| \u003ca name=\"input_rds_instance_allowed_cidr_blocks\"\u003e\u003c/a\u003e [rds\\_instance\\_allowed\\_cidr\\_blocks](#input\\_rds\\_instance\\_allowed\\_cidr\\_blocks) | The whitelisted CIDRs which to allow ingress traffic to the DB instance | `list(string)` | `[]` | no |\n| \u003ca name=\"input_rds_instance_apply_immediately\"\u003e\u003c/a\u003e [rds\\_instance\\_apply\\_immediately](#input\\_rds\\_instance\\_apply\\_immediately) | Specifies whether any database modifications are applied immediately, or during the next maintenance window | `bool` | `true` | no |\n| \u003ca name=\"input_rds_instance_auto_minor_version_upgrade\"\u003e\u003c/a\u003e [rds\\_instance\\_auto\\_minor\\_version\\_upgrade](#input\\_rds\\_instance\\_auto\\_minor\\_version\\_upgrade) | Allow automated minor version upgrade (e.g. from Postgres 9.5.3 to Postgres 9.5.4) | `bool` | `true` | no |\n| \u003ca name=\"input_rds_instance_backup_retention_period\"\u003e\u003c/a\u003e [rds\\_instance\\_backup\\_retention\\_period](#input\\_rds\\_instance\\_backup\\_retention\\_period) | Backup retention period in days. Must be \u003e 0 to enable backups | `number` | `0` | no |\n| \u003ca name=\"input_rds_instance_backup_window\"\u003e\u003c/a\u003e [rds\\_instance\\_backup\\_window](#input\\_rds\\_instance\\_backup\\_window) | When AWS can perform DB snapshots, can't overlap with maintenance window | `string` | `\"22:00-03:00\"` | no |\n| \u003ca name=\"input_rds_instance_ca_cert_identifier\"\u003e\u003c/a\u003e [rds\\_instance\\_ca\\_cert\\_identifier](#input\\_rds\\_instance\\_ca\\_cert\\_identifier) | The identifier of the CA certificate for the DB instance | `string` | `null` | no |\n| \u003ca name=\"input_rds_instance_copy_tags_to_snapshot\"\u003e\u003c/a\u003e [rds\\_instance\\_copy\\_tags\\_to\\_snapshot](#input\\_rds\\_instance\\_copy\\_tags\\_to\\_snapshot) | Copy tags from DB to a snapshot | `bool` | `true` | no |\n| \u003ca name=\"input_rds_instance_database_name\"\u003e\u003c/a\u003e [rds\\_instance\\_database\\_name](#input\\_rds\\_instance\\_database\\_name) | The name of the database to create when the DB instance is created | `string` | `null` | no |\n| \u003ca name=\"input_rds_instance_database_password\"\u003e\u003c/a\u003e [rds\\_instance\\_database\\_password](#input\\_rds\\_instance\\_database\\_password) | Password for the primary DB user. Required unless a snapshot\\_identifier or replicate\\_source\\_db is provided. | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_instance_database_port\"\u003e\u003c/a\u003e [rds\\_instance\\_database\\_port](#input\\_rds\\_instance\\_database\\_port) | Database port (\\_e.g.\\_ 3306 for MySQL). Used in the DB Security Group to allow access to the DB instance from the provided security\\_group\\_ids | `number` | `5432` | no |\n| \u003ca name=\"input_rds_instance_database_user\"\u003e\u003c/a\u003e [rds\\_instance\\_database\\_user](#input\\_rds\\_instance\\_database\\_user) | The name of the database to create when the DB instance is created | `string` | `\"admin\"` | no |\n| \u003ca name=\"input_rds_instance_db_options\"\u003e\u003c/a\u003e [rds\\_instance\\_db\\_options](#input\\_rds\\_instance\\_db\\_options) | A list of DB options to apply with an option group. Depends on DB engine | \u003cpre\u003elist(object({\u003cbr/\u003e    db_security_group_memberships  = list(string)\u003cbr/\u003e    option_name                    = string\u003cbr/\u003e    port                           = number\u003cbr/\u003e    version                        = string\u003cbr/\u003e    vpc_security_group_memberships = list(string)\u003cbr/\u003e\u003cbr/\u003e    option_settings = list(object({\u003cbr/\u003e      name  = string\u003cbr/\u003e      value = string\u003cbr/\u003e    }))\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_rds_instance_db_parameter\"\u003e\u003c/a\u003e [rds\\_instance\\_db\\_parameter](#input\\_rds\\_instance\\_db\\_parameter) | A list of DB parameters to apply. Note that parameters may differ from a DB family to another | \u003cpre\u003elist(object({\u003cbr/\u003e    apply_method = string\u003cbr/\u003e    name         = string\u003cbr/\u003e    value        = string\u003cbr/\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_rds_instance_db_parameter_group\"\u003e\u003c/a\u003e [rds\\_instance\\_db\\_parameter\\_group](#input\\_rds\\_instance\\_db\\_parameter\\_group) | The DB parameter group family name. The value depends on DB engine used. See DBParameterGroupFamily for instructions on how to retrieve applicable value. | `string` | `\"postgres14\"` | no |\n| \u003ca name=\"input_rds_instance_dns_zone_id\"\u003e\u003c/a\u003e [rds\\_instance\\_dns\\_zone\\_id](#input\\_rds\\_instance\\_dns\\_zone\\_id) | The ID of the DNS Zone in Route53 where a new DNS record will be created for the DB host name | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_instance_enabled\"\u003e\u003c/a\u003e [rds\\_instance\\_enabled](#input\\_rds\\_instance\\_enabled) | Enable creation of an RDS instance | `bool` | `false` | no |\n| \u003ca name=\"input_rds_instance_engine\"\u003e\u003c/a\u003e [rds\\_instance\\_engine](#input\\_rds\\_instance\\_engine) | Database engine type. Required unless a snapshot\\_identifier or replicate\\_source\\_db is provided. For supported values, see the Engine parameter in API action CreateDBInstance. | `string` | `\"postgres\"` | no |\n| \u003ca name=\"input_rds_instance_engine_version\"\u003e\u003c/a\u003e [rds\\_instance\\_engine\\_version](#input\\_rds\\_instance\\_engine\\_version) | Database engine version, depends on engine type. Required unless a snapshot\\_identifier or replicate\\_source\\_db is provided. | `string` | `\"14.3\"` | no |\n| \u003ca name=\"input_rds_instance_host_name\"\u003e\u003c/a\u003e [rds\\_instance\\_host\\_name](#input\\_rds\\_instance\\_host\\_name) | The DB host name created in Route53 | `string` | `\"db\"` | no |\n| \u003ca name=\"input_rds_instance_instance_class\"\u003e\u003c/a\u003e [rds\\_instance\\_instance\\_class](#input\\_rds\\_instance\\_instance\\_class) | Class of RDS instance | `string` | `\"db.t2.small\"` | no |\n| \u003ca name=\"input_rds_instance_iops\"\u003e\u003c/a\u003e [rds\\_instance\\_iops](#input\\_rds\\_instance\\_iops) | RDS instance IOPS | `number` | `0` | no |\n| \u003ca name=\"input_rds_instance_license_model\"\u003e\u003c/a\u003e [rds\\_instance\\_license\\_model](#input\\_rds\\_instance\\_license\\_model) | License model for this DB. Optional, but required for some DB Engines. Valid values: license-included \\| bring-your-own-license \\| general-public-license | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_instance_maintenance_window\"\u003e\u003c/a\u003e [rds\\_instance\\_maintenance\\_window](#input\\_rds\\_instance\\_maintenance\\_window) | The window to perform maintenance in. Syntax: 'ddd:hh24:mi-ddd:hh24:mi' UTC | `string` | `\"Mon:03:00-Mon:04:00\"` | no |\n| \u003ca name=\"input_rds_instance_major_engine_version\"\u003e\u003c/a\u003e [rds\\_instance\\_major\\_engine\\_version](#input\\_rds\\_instance\\_major\\_engine\\_version) | major\\_engine\\_version\tDatabase MAJOR engine version, depends on engine type | `string` | `\"14\"` | no |\n| \u003ca name=\"input_rds_instance_multi_az\"\u003e\u003c/a\u003e [rds\\_instance\\_multi\\_az](#input\\_rds\\_instance\\_multi\\_az) | Set to true if multi AZ deployment must be supported | `bool` | `false` | no |\n| \u003ca name=\"input_rds_instance_name\"\u003e\u003c/a\u003e [rds\\_instance\\_name](#input\\_rds\\_instance\\_name) | RDS Instance name | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_instance_name_override\"\u003e\u003c/a\u003e [rds\\_instance\\_name\\_override](#input\\_rds\\_instance\\_name\\_override) | If `true`, this will set a the RDS Instance name to what is defined in var.rds\\_instance\\_name.\u003cbr/\u003eIf `false`, this will prepend ${var.namespace}-${var.environment} to ${var.rds\\_instance\\_name}\" | `bool` | `false` | no |\n| \u003ca name=\"input_rds_instance_option_group_name\"\u003e\u003c/a\u003e [rds\\_instance\\_option\\_group\\_name](#input\\_rds\\_instance\\_option\\_group\\_name) | Name of the DB option group to associate | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_instance_publicly_accessible\"\u003e\u003c/a\u003e [rds\\_instance\\_publicly\\_accessible](#input\\_rds\\_instance\\_publicly\\_accessible) | Determines if database can be publicly available (NOT recommended) | `bool` | `false` | no |\n| \u003ca name=\"input_rds_instance_security_group_ids\"\u003e\u003c/a\u003e [rds\\_instance\\_security\\_group\\_ids](#input\\_rds\\_instance\\_security\\_group\\_ids) | The IDs of the security groups from which to allow ingress traffic to the DB instance | `list(string)` | `[]` | no |\n| \u003ca name=\"input_rds_instance_skip_final_snapshot\"\u003e\u003c/a\u003e [rds\\_instance\\_skip\\_final\\_snapshot](#input\\_rds\\_instance\\_skip\\_final\\_snapshot) | If true (default), no snapshot will be made before deleting DB | `bool` | `true` | no |\n| \u003ca name=\"input_rds_instance_snapshot_identifier\"\u003e\u003c/a\u003e [rds\\_instance\\_snapshot\\_identifier](#input\\_rds\\_instance\\_snapshot\\_identifier) | Snapshot identifier e.g: rds:production-2019-06-26-06-05. If specified, the module create cluster from the snapshot | `string` | `null` | no |\n| \u003ca name=\"input_rds_instance_storage_encrypted\"\u003e\u003c/a\u003e [rds\\_instance\\_storage\\_encrypted](#input\\_rds\\_instance\\_storage\\_encrypted) | Specifies whether the DB instance is encrypted. The default is false if not specified | `bool` | `true` | no |\n| \u003ca name=\"input_rds_instance_storage_type\"\u003e\u003c/a\u003e [rds\\_instance\\_storage\\_type](#input\\_rds\\_instance\\_storage\\_type) | One of 'standard' (magnetic), 'gp2' (general purpose SSD), or 'io1' (provisioned IOPS SSD) | `string` | `\"gp2\"` | no |\n| \u003ca name=\"input_rds_instance_subnet_ids\"\u003e\u003c/a\u003e [rds\\_instance\\_subnet\\_ids](#input\\_rds\\_instance\\_subnet\\_ids) | List of subnet IDs for the DB. DB instance will be created in the VPC associated with the DB subnet group provisioned using the subnet IDs. Specify one of subnet\\_ids, db\\_subnet\\_group\\_name or availability\\_zone | `list(string)` | `[]` | no |\n| \u003ca name=\"input_rds_kms_key_arn_override\"\u003e\u003c/a\u003e [rds\\_kms\\_key\\_arn\\_override](#input\\_rds\\_kms\\_key\\_arn\\_override) | Override the default created KMS key to encrypt storage | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_kms_key_id_override\"\u003e\u003c/a\u003e [rds\\_kms\\_key\\_id\\_override](#input\\_rds\\_kms\\_key\\_id\\_override) | Override the default created KMS key ID to encrypt storage | `string` | `\"\"` | no |\n| \u003ca name=\"input_rds_random_admin_password_length\"\u003e\u003c/a\u003e [rds\\_random\\_admin\\_password\\_length](#input\\_rds\\_random\\_admin\\_password\\_length) | Length of the generated random password. | `number` | `64` | no |\n| \u003ca name=\"input_regex_replace_chars\"\u003e\u003c/a\u003e [regex\\_replace\\_chars](#input\\_regex\\_replace\\_chars) | Terraform regular expression (regex) string.\u003cbr/\u003eCharacters matching the regex will be removed from the ID elements.\u003cbr/\u003eIf not set, `\"/[^a-zA-Z0-9-]/\"` is used to remove all characters other than hyphens, letters and digits. | `string` | `null` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | Region which the resource is deployed to | `string` | `\"us-east-1\"` | no |\n| \u003ca name=\"input_s3_kms_alias_override\"\u003e\u003c/a\u003e [s3\\_kms\\_alias\\_override](#input\\_s3\\_kms\\_alias\\_override) | Override the KMS key alias for the S3 bucket. Default is set to AWS Managed KMS alias. | `string` | `\"\"` | no |\n| \u003ca name=\"input_stage\"\u003e\u003c/a\u003e [stage](#input\\_stage) | ID element. Usually used to indicate role, e.g. 'prod', 'staging', 'source', 'build', 'test', 'deploy', 'release' | `string` | `null` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Additional tags (e.g. `{'BusinessUnit': 'XYZ'}`).\u003cbr/\u003eNeither the tag keys nor the tag values will be modified by this module. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_tenant\"\u003e\u003c/a\u003e [tenant](#input\\_tenant) | ID element \\_(Rarely used, not included by default)\\_. A customer identifier, indicating who this instance of a resource is for | `string` | `\"\"` | no |\n| \u003ca name=\"input_timeouts\"\u003e\u003c/a\u003e [timeouts](#input\\_timeouts) | A list of DB timeouts to apply to the running code while creating, updating, or deleting the DB instance. | \u003cpre\u003eobject({\u003cbr/\u003e    create = string\u003cbr/\u003e    update = string\u003cbr/\u003e    delete = string\u003cbr/\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr/\u003e  \"create\": \"40m\",\u003cbr/\u003e  \"delete\": \"60m\",\u003cbr/\u003e  \"update\": \"80m\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | vpc\\_id for the VPC to run the cluster. | `string` | n/a | yes |\n| \u003ca name=\"input_vpc_security_group_ids\"\u003e\u003c/a\u003e [vpc\\_security\\_group\\_ids](#input\\_vpc\\_security\\_group\\_ids) | Additional security group IDs to apply to the cluster, in addition to the provisioned default security group with ingress traffic from existing CIDR blocks and existing security groups | `list(string)` | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_aurora_arn\"\u003e\u003c/a\u003e [aurora\\_arn](#output\\_aurora\\_arn) | Amazon Resource Name (ARN) of cluster |\n| \u003ca name=\"output_aurora_cluster_identifier\"\u003e\u003c/a\u003e [aurora\\_cluster\\_identifier](#output\\_aurora\\_cluster\\_identifier) | Cluster Identifier |\n| \u003ca name=\"output_aurora_endpoint\"\u003e\u003c/a\u003e [aurora\\_endpoint](#output\\_aurora\\_endpoint) | The DNS address of the RDS instance |\n| \u003ca name=\"output_aurora_master_host\"\u003e\u003c/a\u003e [aurora\\_master\\_host](#output\\_aurora\\_master\\_host) | DB Master hostname |\n| \u003ca name=\"output_aurora_master_username\"\u003e\u003c/a\u003e [aurora\\_master\\_username](#output\\_aurora\\_master\\_username) | Username for the master DB user |\n| \u003ca name=\"output_aurora_name\"\u003e\u003c/a\u003e [aurora\\_name](#output\\_aurora\\_name) | Database name |\n| \u003ca name=\"output_aurora_reader_endpoint\"\u003e\u003c/a\u003e [aurora\\_reader\\_endpoint](#output\\_aurora\\_reader\\_endpoint) | A read-only endpoint for the Aurora cluster, automatically load-balanced across replicas |\n| \u003ca name=\"output_aurora_replicas_host\"\u003e\u003c/a\u003e [aurora\\_replicas\\_host](#output\\_aurora\\_replicas\\_host) | Replicas hostname |\n| \u003ca name=\"output_rds_instance_arn\"\u003e\u003c/a\u003e [rds\\_instance\\_arn](#output\\_rds\\_instance\\_arn) | The RDS Instance AWS ARN. |\n| \u003ca name=\"output_rds_instance_endpoint\"\u003e\u003c/a\u003e [rds\\_instance\\_endpoint](#output\\_rds\\_instance\\_endpoint) | The DNS address to the RDS Instance. |\n| \u003ca name=\"output_rds_instance_hostname\"\u003e\u003c/a\u003e [rds\\_instance\\_hostname](#output\\_rds\\_instance\\_hostname) | Hostname of the RDS Instance. |\n| \u003ca name=\"output_rds_instance_id\"\u003e\u003c/a\u003e [rds\\_instance\\_id](#output\\_rds\\_instance\\_id) | The RDS Instance AWS ID. |\n| \u003ca name=\"output_rds_instance_kms_arn\"\u003e\u003c/a\u003e [rds\\_instance\\_kms\\_arn](#output\\_rds\\_instance\\_kms\\_arn) | RDS KMS Key ARN |\n| \u003ca name=\"output_rds_instance_kms_id\"\u003e\u003c/a\u003e [rds\\_instance\\_kms\\_id](#output\\_rds\\_instance\\_kms\\_id) | Output RDS KMS Key ID if the var.rds\\_kms\\_key\\_arn\\_override is \"\" |\n| \u003ca name=\"output_rds_instance_resource_id\"\u003e\u003c/a\u003e [rds\\_instance\\_resource\\_id](#output\\_rds\\_instance\\_resource\\_id) | The RDS Instance AWS resource ID. |\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaybilldev%2Fterraform-aws-rds-aurora","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaybilldev%2Fterraform-aws-rds-aurora","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaybilldev%2Fterraform-aws-rds-aurora/lists"}