{"id":13505622,"url":"https://github.com/terraform-aws-modules/terraform-aws-dms","last_synced_at":"2025-04-04T17:05:28.689Z","repository":{"id":38800379,"uuid":"402749905","full_name":"terraform-aws-modules/terraform-aws-dms","owner":"terraform-aws-modules","description":"Terraform module to create AWS DMS (Database Migration Service) resources 🇺🇦","archived":false,"fork":false,"pushed_at":"2025-01-18T21:08:37.000Z","size":218,"stargazers_count":67,"open_issues_count":1,"forks_count":104,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-28T16:04:44.560Z","etag":null,"topics":["aws","aws-dms","database-migration-service","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/terraform-aws-modules/dms/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terraform-aws-modules.png","metadata":{"funding":{"github":["antonbabenko"],"custom":"https://www.paypal.me/antonbabenko"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2021-09-03T11:41:48.000Z","updated_at":"2025-02-24T13:36:42.000Z","dependencies_parsed_at":"2023-02-15T16:45:30.911Z","dependency_job_id":"5075f451-d34e-4639-a475-0612d6964b9b","html_url":"https://github.com/terraform-aws-modules/terraform-aws-dms","commit_stats":{"total_commits":44,"total_committers":12,"mean_commits":"3.6666666666666665","dds":0.5681818181818181,"last_synced_commit":"a13cb49eb0734d1566c48800bbf283e3ac542913"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":"clowdhaus/terraform-aws-module-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-dms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-dms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-dms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-dms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terraform-aws-modules","download_url":"https://codeload.github.com/terraform-aws-modules/terraform-aws-dms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217174,"owners_count":20903008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws","aws-dms","database-migration-service","terraform","terraform-module"],"created_at":"2024-08-01T00:01:10.747Z","updated_at":"2025-04-04T17:05:28.668Z","avatar_url":"https://github.com/terraform-aws-modules.png","language":"HCL","funding_links":["https://github.com/sponsors/antonbabenko","https://www.paypal.me/antonbabenko"],"categories":["Community Modules"],"sub_categories":["Miscellaneous"],"readme":"# AWS DMS Terraform module\n\nTerraform module which creates AWS DMS (Database Migration Service) resources.\n\n## Usage\n\nSee [`examples`](https://github.com/terraform-aws-modules/terraform-aws-dms/tree/master/examples) directory for working examples to reference:\n\n```hcl\nmodule \"database_migration_service\" {\n  source  = \"terraform-aws-modules/dms/aws\"\n  version = \"~\u003e 2.0\"\n\n  # Subnet group\n  repl_subnet_group_name        = \"example\"\n  repl_subnet_group_description = \"DMS Subnet group\"\n  repl_subnet_group_subnet_ids  = [\"subnet-1fe3d837\", \"subnet-129d66ab\", \"subnet-1211eef5\"]\n\n  # Instance\n  repl_instance_allocated_storage            = 64\n  repl_instance_auto_minor_version_upgrade   = true\n  repl_instance_allow_major_version_upgrade  = true\n  repl_instance_apply_immediately            = true\n  repl_instance_engine_version               = \"3.5.2\"\n  repl_instance_multi_az                     = true\n  repl_instance_preferred_maintenance_window = \"sun:10:30-sun:14:30\"\n  repl_instance_publicly_accessible          = false\n  repl_instance_class                        = \"dms.t3.large\"\n  repl_instance_id                           = \"example\"\n  repl_instance_vpc_security_group_ids       = [\"sg-12345678\"]\n\n  endpoints = {\n    source = {\n      database_name               = \"example\"\n      endpoint_id                 = \"example-source\"\n      endpoint_type               = \"source\"\n      engine_name                 = \"aurora-postgresql\"\n      extra_connection_attributes = \"heartbeatFrequency=1;\"\n      username                    = \"postgresqlUser\"\n      password                    = \"youShouldPickABetterPassword123!\"\n      port                        = 5432\n      server_name                 = \"dms-ex-src.cluster-abcdefghijkl.us-east-1.rds.amazonaws.com\"\n      ssl_mode                    = \"none\"\n      tags                        = { EndpointType = \"source\" }\n    }\n\n    destination = {\n      database_name = \"example\"\n      endpoint_id   = \"example-destination\"\n      endpoint_type = \"target\"\n      engine_name   = \"aurora\"\n      username      = \"mysqlUser\"\n      password      = \"passwordsDoNotNeedToMatch789?\"\n      port          = 3306\n      server_name   = \"dms-ex-dest.cluster-abcdefghijkl.us-east-1.rds.amazonaws.com\"\n      ssl_mode      = \"none\"\n      tags          = { EndpointType = \"destination\" }\n    }\n  }\n\n  replication_tasks = {\n    cdc_ex = {\n      replication_task_id       = \"example-cdc\"\n      migration_type            = \"cdc\"\n      replication_task_settings = file(\"task_settings.json\")\n      table_mappings            = file(\"table_mappings.json\")\n      source_endpoint_key       = \"source\"\n      target_endpoint_key       = \"destination\"\n      tags                      = { Task = \"PostgreSQL-to-MySQL\" }\n    }\n  }\n\n  event_subscriptions = {\n    instance = {\n      name                             = \"instance-events\"\n      enabled                          = true\n      instance_event_subscription_keys = [\"example\"]\n      source_type                      = \"replication-instance\"\n      sns_topic_arn                    = \"arn:aws:sns:us-east-1:012345678910:example-topic\"\n      event_categories                 = [\n        \"failure\",\n        \"creation\",\n        \"deletion\",\n        \"maintenance\",\n        \"failover\",\n        \"low storage\",\n        \"configuration change\"\n      ]\n    }\n    task = {\n      name                         = \"task-events\"\n      enabled                      = true\n      task_event_subscription_keys = [\"cdc_ex\"]\n      source_type                  = \"replication-task\"\n      sns_topic_arn                = \"arn:aws:sns:us-east-1:012345678910:example-topic\"\n      event_categories             = [\n        \"failure\",\n        \"state change\",\n        \"creation\",\n        \"deletion\",\n        \"configuration change\"\n      ]\n    }\n  }\n\n  tags = {\n    Terraform   = \"true\"\n    Environment = \"dev\"\n  }\n}\n```\n\n### Combinations\n\nWithin DMS you can have multiple combinations of resources depending on your use case. For example (not an exhaustive list of possible combinations):\n#### Simple\n  - One source endpoint\n  - One target/destination endpoint\n  - One replication task\n  - Two event subscriptions\n    - Replication instance event subscription\n    - Replication task event subscriptions\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/terraform-aws-modules/terraform-aws-dms/master/.github/images/dms_simple.png\" alt=\"DMS Simple\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n#### Multiple endpoints, multiple tasks\n  - Two source endpoints\n  - Three target/destination endpoints\n  - Three replication tasks (source1 -\u003e target1, source2 -\u003e target2, source1 -\u003e targe3)\n  - Four event subscriptions\n    - Replication instance event subscription\n    - Replication task event subscription for each task listed above\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/terraform-aws-modules/terraform-aws-dms/master/.github/images/dms_complex.png\" alt=\"DMS Complex\" width=\"100%\"\u003e\n\u003c/p\u003e\n\nIn order to accommodate a flexible, multi-resource combinatorial module, keys and maps are used for cross-referencing resources created within the module.\n\nGiven the following example (not complete, only showing the relevant attributes):\n\n```hcl\nmodule \"database_migration_service\" {\n  source  = \"terraform-aws-modules/dms/aws\"\n  version = \"~\u003e 2.0\"\n\n  # This value is used when subscribing to instance event notifications\n  repl_instance_id = \"readme-example\"\n\n  endpoints = {\n    # These keys are used to map endpoints within task definitions by this key `source1`\n    source1 = {\n      endpoint_type = \"source\"\n      ...\n    }\n\n    destination1 = {\n      endpoint_type = \"target\"\n      ...\n    }\n\n    destination2 = {\n      endpoint_type = \"target\"\n      ...\n    }\n  }\n```\n\nTo create replication tasks, you simply reference the relevant keys from the `endpoints` map in the `source_endpoint_key`/`target_endpoint_key` fields:\n\n```hcl\n  ...\n\n  replication_tasks = {\n    src1_dest1 = {\n      ...\n      source_endpoint_key = \"source1\"\n      target_endpoint_key = \"destination1\"\n    }\n    src1_dest2 = {\n      ...\n      source_endpoint_key = \"source1\"\n      target_endpoint_key = \"destination2\"\n    }\n  }\n\n  ...\n```\n\nContinuing the same lookup pattern, to create event subscriptions, you simply reference the replication instance ID in the `instance_event_subscription_keys` field when subscribing to instance notifications, or the `replication_tasks` keys in the `task_event_subscription_keys` to subscribe to the tasks notifications (all or only select keys for select tasks):\n\n```hcl\n  ...\n\n  event_subscriptions = {\n    instance = {\n      instance_event_subscription_keys = [\"readme-example\"]\n      ...\n    }\n    task = {\n      task_event_subscription_keys = [\"src1_dest1\", \"src1_dest2]\n      ...\n    }\n  }\n\n  ...\n```\n\n### Tasks\n\nTasks are the \"jobs\" that perform the necessary actions of migrating from `source` to `target`, including any transformations and/or mappings of the data in transit. Tasks are largely controlled by [task settings](http://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html) that are defined in a JSON document.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/terraform-aws-modules/terraform-aws-dms/master/.github/images/replication_task.png\" alt=\"Replication Task\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n#### [Example task settings JSON document](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.Saving.html):\n```json\n\n{\n  \"TargetMetadata\": {\n    \"TargetSchema\": \"\",\n    \"SupportLobs\": true,\n    \"FullLobMode\": false,\n    \"LobChunkSize\": 64,\n    \"LimitedSizeLobMode\": true,\n    \"LobMaxSize\": 32,\n    \"BatchApplyEnabled\": true\n  },\n  \"FullLoadSettings\": {\n    \"TargetTablePrepMode\": \"DO_NOTHING\",\n    \"CreatePkAfterFullLoad\": false,\n    \"StopTaskCachedChangesApplied\": false,\n    \"StopTaskCachedChangesNotApplied\": false,\n    \"MaxFullLoadSubTasks\": 8,\n    \"TransactionConsistencyTimeout\": 600,\n    \"CommitRate\": 10000\n  },\n  \"Logging\": {\n    \"EnableLogging\": false\n  },\n  \"ControlTablesSettings\": {\n    \"ControlSchema\":\"\",\n    \"HistoryTimeslotInMinutes\":5,\n    \"HistoryTableEnabled\": false,\n    \"SuspendedTablesTableEnabled\": false,\n    \"StatusTableEnabled\": false\n  },\n  \"StreamBufferSettings\": {\n    \"StreamBufferCount\": 3,\n    \"StreamBufferSizeInMB\": 8\n  },\n  \"ChangeProcessingTuning\": {\n    \"BatchApplyPreserveTransaction\": true,\n    \"BatchApplyTimeoutMin\": 1,\n    \"BatchApplyTimeoutMax\": 30,\n    \"BatchApplyMemoryLimit\": 500,\n    \"BatchSplitSize\": 0,\n    \"MinTransactionSize\": 1000,\n    \"CommitTimeout\": 1,\n    \"MemoryLimitTotal\": 1024,\n    \"MemoryKeepTime\": 60,\n    \"StatementCacheSize\": 50\n  },\n  \"ChangeProcessingDdlHandlingPolicy\": {\n    \"HandleSourceTableDropped\": true,\n    \"HandleSourceTableTruncated\": true,\n    \"HandleSourceTableAltered\": true\n  },\n  \"ErrorBehavior\": {\n    \"DataErrorPolicy\": \"LOG_ERROR\",\n    \"DataTruncationErrorPolicy\":\"LOG_ERROR\",\n    \"DataErrorEscalationPolicy\":\"SUSPEND_TABLE\",\n    \"DataErrorEscalationCount\": 50,\n    \"TableErrorPolicy\":\"SUSPEND_TABLE\",\n    \"TableErrorEscalationPolicy\":\"STOP_TASK\",\n    \"TableErrorEscalationCount\": 50,\n    \"RecoverableErrorCount\": 0,\n    \"RecoverableErrorInterval\": 5,\n    \"RecoverableErrorThrottling\": true,\n    \"RecoverableErrorThrottlingMax\": 1800,\n    \"ApplyErrorDeletePolicy\":\"IGNORE_RECORD\",\n    \"ApplyErrorInsertPolicy\":\"LOG_ERROR\",\n    \"ApplyErrorUpdatePolicy\":\"LOG_ERROR\",\n    \"ApplyErrorEscalationPolicy\":\"LOG_ERROR\",\n    \"ApplyErrorEscalationCount\": 0,\n    \"FullLoadIgnoreConflicts\": true\n  }\n}\n```\n\n## Examples\n\nExamples codified under the [`examples`](https://github.com/terraform-aws-modules/terraform-aws-dms/tree/master/examples) are intended to give users references for how to use the module(s) as well as testing/validating changes to the source code of the module. If contributing to the project, please be sure to make any appropriate updates to the relevant examples to allow maintainers to test your changes and to keep the examples up to date for users. Thank you!\n\n- [Complete](https://github.com/terraform-aws-modules/terraform-aws-dms/tree/master/examples/complete)\n- [Serverless](https://github.com/terraform-aws-modules/terraform-aws-dms/tree/master/examples/serverless)\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.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.83 |\n| \u003ca name=\"requirement_time\"\u003e\u003c/a\u003e [time](#requirement\\_time) | \u003e= 0.9 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.83 |\n| \u003ca name=\"provider_time\"\u003e\u003c/a\u003e [time](#provider\\_time) | \u003e= 0.9 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_dms_certificate.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_certificate) | resource |\n| [aws_dms_endpoint.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_endpoint) | resource |\n| [aws_dms_event_subscription.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_event_subscription) | resource |\n| [aws_dms_replication_config.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_replication_config) | resource |\n| [aws_dms_replication_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_replication_instance) | resource |\n| [aws_dms_replication_subnet_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_replication_subnet_group) | resource |\n| [aws_dms_replication_task.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_replication_task) | resource |\n| [aws_dms_s3_endpoint.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dms_s3_endpoint) | resource |\n| [aws_iam_policy.access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |\n| [aws_iam_role.access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role.dms_access_for_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role.dms_cloudwatch_logs_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role.dms_vpc_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_iam_role_policy_attachment.access_additional](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [time_sleep.wait_for_dependency_resources](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.access_assume](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.dms_assume_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.dms_assume_role_redshift](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_access_iam_role_description\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_description](#input\\_access\\_iam\\_role\\_description) | Description of the role | `string` | `null` | no |\n| \u003ca name=\"input_access_iam_role_name\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_name](#input\\_access\\_iam\\_role\\_name) | Name to use on IAM role created | `string` | `null` | no |\n| \u003ca name=\"input_access_iam_role_path\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_path](#input\\_access\\_iam\\_role\\_path) | IAM role path | `string` | `null` | no |\n| \u003ca name=\"input_access_iam_role_permissions_boundary\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_permissions\\_boundary](#input\\_access\\_iam\\_role\\_permissions\\_boundary) | ARN of the policy that is used to set the permissions boundary for the IAM role | `string` | `null` | no |\n| \u003ca name=\"input_access_iam_role_policies\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_policies](#input\\_access\\_iam\\_role\\_policies) | Map of IAM role policy ARNs to attach to the IAM role | `map(string)` | `{}` | no |\n| \u003ca name=\"input_access_iam_role_tags\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_tags](#input\\_access\\_iam\\_role\\_tags) | A map of additional tags to add to the IAM role created | `map(string)` | `{}` | no |\n| \u003ca name=\"input_access_iam_role_use_name_prefix\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_use\\_name\\_prefix](#input\\_access\\_iam\\_role\\_use\\_name\\_prefix) | Determines whether the IAM role name (`access_iam_role_name`) is used as a prefix | `bool` | `true` | no |\n| \u003ca name=\"input_access_iam_statements\"\u003e\u003c/a\u003e [access\\_iam\\_statements](#input\\_access\\_iam\\_statements) | A map of IAM policy [statements](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document#statement) for custom permission usage | `any` | `{}` | no |\n| \u003ca name=\"input_access_kms_key_arns\"\u003e\u003c/a\u003e [access\\_kms\\_key\\_arns](#input\\_access\\_kms\\_key\\_arns) | A list of KMS key ARNs the access IAM role is permitted to decrypt | `list(string)` | `[]` | no |\n| \u003ca name=\"input_access_secret_arns\"\u003e\u003c/a\u003e [access\\_secret\\_arns](#input\\_access\\_secret\\_arns) | A list of SecretManager secret ARNs the access IAM role is permitted to access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_access_source_s3_bucket_arns\"\u003e\u003c/a\u003e [access\\_source\\_s3\\_bucket\\_arns](#input\\_access\\_source\\_s3\\_bucket\\_arns) | A list of S3 bucket ARNs the access IAM role is permitted to access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_access_target_dynamodb_table_arns\"\u003e\u003c/a\u003e [access\\_target\\_dynamodb\\_table\\_arns](#input\\_access\\_target\\_dynamodb\\_table\\_arns) | A list of DynamoDB table ARNs the access IAM role is permitted to access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_access_target_elasticsearch_arns\"\u003e\u003c/a\u003e [access\\_target\\_elasticsearch\\_arns](#input\\_access\\_target\\_elasticsearch\\_arns) | A list of Elasticsearch ARNs the access IAM role is permitted to access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_access_target_kinesis_arns\"\u003e\u003c/a\u003e [access\\_target\\_kinesis\\_arns](#input\\_access\\_target\\_kinesis\\_arns) | A list of Kinesis ARNs the access IAM role is permitted to access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_access_target_s3_bucket_arns\"\u003e\u003c/a\u003e [access\\_target\\_s3\\_bucket\\_arns](#input\\_access\\_target\\_s3\\_bucket\\_arns) | A list of S3 bucket ARNs the access IAM role is permitted to access | `list(string)` | `[]` | no |\n| \u003ca name=\"input_certificates\"\u003e\u003c/a\u003e [certificates](#input\\_certificates) | Map of objects that define the certificates to be created | `map(any)` | `{}` | no |\n| \u003ca name=\"input_create\"\u003e\u003c/a\u003e [create](#input\\_create) | Determines whether resources will be created | `bool` | `true` | no |\n| \u003ca name=\"input_create_access_iam_role\"\u003e\u003c/a\u003e [create\\_access\\_iam\\_role](#input\\_create\\_access\\_iam\\_role) | Determines whether the ECS task definition IAM role should be created | `bool` | `true` | no |\n| \u003ca name=\"input_create_access_policy\"\u003e\u003c/a\u003e [create\\_access\\_policy](#input\\_create\\_access\\_policy) | Determines whether the IAM policy should be created | `bool` | `true` | no |\n| \u003ca name=\"input_create_iam_roles\"\u003e\u003c/a\u003e [create\\_iam\\_roles](#input\\_create\\_iam\\_roles) | Determines whether the required [DMS IAM resources](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.APIRole) will be created | `bool` | `true` | no |\n| \u003ca name=\"input_create_repl_instance\"\u003e\u003c/a\u003e [create\\_repl\\_instance](#input\\_create\\_repl\\_instance) | Indicates whether a replication instace should be created | `bool` | `true` | no |\n| \u003ca name=\"input_create_repl_subnet_group\"\u003e\u003c/a\u003e [create\\_repl\\_subnet\\_group](#input\\_create\\_repl\\_subnet\\_group) | Determines whether the replication subnet group will be created | `bool` | `true` | no |\n| \u003ca name=\"input_enable_redshift_target_permissions\"\u003e\u003c/a\u003e [enable\\_redshift\\_target\\_permissions](#input\\_enable\\_redshift\\_target\\_permissions) | Determines whether `redshift.amazonaws.com` is permitted access to assume the `dms-access-for-endpoint` role | `bool` | `false` | no |\n| \u003ca name=\"input_endpoints\"\u003e\u003c/a\u003e [endpoints](#input\\_endpoints) | Map of objects that define the endpoints to be created | `any` | `{}` | no |\n| \u003ca name=\"input_event_subscription_timeouts\"\u003e\u003c/a\u003e [event\\_subscription\\_timeouts](#input\\_event\\_subscription\\_timeouts) | A map of timeouts for event subscription create/update/delete operations | `map(string)` | `{}` | no |\n| \u003ca name=\"input_event_subscriptions\"\u003e\u003c/a\u003e [event\\_subscriptions](#input\\_event\\_subscriptions) | Map of objects that define the event subscriptions to be created | `any` | `{}` | no |\n| \u003ca name=\"input_iam_role_permissions_boundary\"\u003e\u003c/a\u003e [iam\\_role\\_permissions\\_boundary](#input\\_iam\\_role\\_permissions\\_boundary) | ARN of the policy that is used to set the permissions boundary for the role | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_tags\"\u003e\u003c/a\u003e [iam\\_role\\_tags](#input\\_iam\\_role\\_tags) | A map of additional tags to apply to the DMS IAM roles | `map(string)` | `{}` | no |\n| \u003ca name=\"input_repl_config_timeouts\"\u003e\u003c/a\u003e [repl\\_config\\_timeouts](#input\\_repl\\_config\\_timeouts) | A map of timeouts for serverless replication config create/update/delete operations | `map(string)` | `{}` | no |\n| \u003ca name=\"input_repl_instance_allocated_storage\"\u003e\u003c/a\u003e [repl\\_instance\\_allocated\\_storage](#input\\_repl\\_instance\\_allocated\\_storage) | The amount of storage (in gigabytes) to be initially allocated for the replication instance. Min: 5, Max: 6144, Default: 50 | `number` | `null` | no |\n| \u003ca name=\"input_repl_instance_allow_major_version_upgrade\"\u003e\u003c/a\u003e [repl\\_instance\\_allow\\_major\\_version\\_upgrade](#input\\_repl\\_instance\\_allow\\_major\\_version\\_upgrade) | Indicates that major version upgrades are allowed | `bool` | `true` | no |\n| \u003ca name=\"input_repl_instance_apply_immediately\"\u003e\u003c/a\u003e [repl\\_instance\\_apply\\_immediately](#input\\_repl\\_instance\\_apply\\_immediately) | Indicates whether the changes should be applied immediately or during the next maintenance window | `bool` | `null` | no |\n| \u003ca name=\"input_repl_instance_auto_minor_version_upgrade\"\u003e\u003c/a\u003e [repl\\_instance\\_auto\\_minor\\_version\\_upgrade](#input\\_repl\\_instance\\_auto\\_minor\\_version\\_upgrade) | Indicates that minor engine upgrades will be applied automatically to the replication instance during the maintenance window | `bool` | `true` | no |\n| \u003ca name=\"input_repl_instance_availability_zone\"\u003e\u003c/a\u003e [repl\\_instance\\_availability\\_zone](#input\\_repl\\_instance\\_availability\\_zone) | The EC2 Availability Zone that the replication instance will be created in | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_class\"\u003e\u003c/a\u003e [repl\\_instance\\_class](#input\\_repl\\_instance\\_class) | The compute and memory capacity of the replication instance as specified by the replication instance class | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_engine_version\"\u003e\u003c/a\u003e [repl\\_instance\\_engine\\_version](#input\\_repl\\_instance\\_engine\\_version) | The [engine version](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html) number of the replication instance | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_id\"\u003e\u003c/a\u003e [repl\\_instance\\_id](#input\\_repl\\_instance\\_id) | The replication instance identifier. This parameter is stored as a lowercase string | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_kms_key_arn\"\u003e\u003c/a\u003e [repl\\_instance\\_kms\\_key\\_arn](#input\\_repl\\_instance\\_kms\\_key\\_arn) | The Amazon Resource Name (ARN) for the KMS key that will be used to encrypt the connection parameters | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_multi_az\"\u003e\u003c/a\u003e [repl\\_instance\\_multi\\_az](#input\\_repl\\_instance\\_multi\\_az) | Specifies if the replication instance is a multi-az deployment. You cannot set the `availability_zone` parameter if the `multi_az` parameter is set to `true` | `bool` | `null` | no |\n| \u003ca name=\"input_repl_instance_network_type\"\u003e\u003c/a\u003e [repl\\_instance\\_network\\_type](#input\\_repl\\_instance\\_network\\_type) | The type of IP address protocol used by a replication instance. Valid values: IPV4, DUAL | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_preferred_maintenance_window\"\u003e\u003c/a\u003e [repl\\_instance\\_preferred\\_maintenance\\_window](#input\\_repl\\_instance\\_preferred\\_maintenance\\_window) | The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC) | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_publicly_accessible\"\u003e\u003c/a\u003e [repl\\_instance\\_publicly\\_accessible](#input\\_repl\\_instance\\_publicly\\_accessible) | Specifies the accessibility options for the replication instance | `bool` | `null` | no |\n| \u003ca name=\"input_repl_instance_subnet_group_id\"\u003e\u003c/a\u003e [repl\\_instance\\_subnet\\_group\\_id](#input\\_repl\\_instance\\_subnet\\_group\\_id) | An existing subnet group to associate with the replication instance | `string` | `null` | no |\n| \u003ca name=\"input_repl_instance_tags\"\u003e\u003c/a\u003e [repl\\_instance\\_tags](#input\\_repl\\_instance\\_tags) | A map of additional tags to apply to the replication instance | `map(string)` | `{}` | no |\n| \u003ca name=\"input_repl_instance_timeouts\"\u003e\u003c/a\u003e [repl\\_instance\\_timeouts](#input\\_repl\\_instance\\_timeouts) | A map of timeouts for replication instance create/update/delete operations | `map(string)` | `{}` | no |\n| \u003ca name=\"input_repl_instance_vpc_security_group_ids\"\u003e\u003c/a\u003e [repl\\_instance\\_vpc\\_security\\_group\\_ids](#input\\_repl\\_instance\\_vpc\\_security\\_group\\_ids) | A list of VPC security group IDs to be used with the replication instance | `list(string)` | `null` | no |\n| \u003ca name=\"input_repl_subnet_group_description\"\u003e\u003c/a\u003e [repl\\_subnet\\_group\\_description](#input\\_repl\\_subnet\\_group\\_description) | The description for the subnet group | `string` | `null` | no |\n| \u003ca name=\"input_repl_subnet_group_name\"\u003e\u003c/a\u003e [repl\\_subnet\\_group\\_name](#input\\_repl\\_subnet\\_group\\_name) | The name for the replication subnet group. Stored as a lowercase string, must contain no more than 255 alphanumeric characters, periods, spaces, underscores, or hyphens | `string` | `null` | no |\n| \u003ca name=\"input_repl_subnet_group_subnet_ids\"\u003e\u003c/a\u003e [repl\\_subnet\\_group\\_subnet\\_ids](#input\\_repl\\_subnet\\_group\\_subnet\\_ids) | A list of the EC2 subnet IDs for the subnet group | `list(string)` | `[]` | no |\n| \u003ca name=\"input_repl_subnet_group_tags\"\u003e\u003c/a\u003e [repl\\_subnet\\_group\\_tags](#input\\_repl\\_subnet\\_group\\_tags) | A map of additional tags to apply to the replication subnet group | `map(string)` | `{}` | no |\n| \u003ca name=\"input_replication_tasks\"\u003e\u003c/a\u003e [replication\\_tasks](#input\\_replication\\_tasks) | Map of objects that define the replication tasks to be created | `any` | `{}` | no |\n| \u003ca name=\"input_s3_endpoints\"\u003e\u003c/a\u003e [s3\\_endpoints](#input\\_s3\\_endpoints) | Map of objects that define the S3 endpoints to be created | `any` | `{}` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to use on all resources | `map(string)` | `{}` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_access_iam_role_arn\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_arn](#output\\_access\\_iam\\_role\\_arn) | Access IAM role ARN |\n| \u003ca name=\"output_access_iam_role_name\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_name](#output\\_access\\_iam\\_role\\_name) | Access IAM role name |\n| \u003ca name=\"output_access_iam_role_unique_id\"\u003e\u003c/a\u003e [access\\_iam\\_role\\_unique\\_id](#output\\_access\\_iam\\_role\\_unique\\_id) | Stable and unique string identifying the access IAM role |\n| \u003ca name=\"output_certificates\"\u003e\u003c/a\u003e [certificates](#output\\_certificates) | A map of maps containing the certificates created and their full output of attributes and values |\n| \u003ca name=\"output_dms_access_for_endpoint_iam_role_arn\"\u003e\u003c/a\u003e [dms\\_access\\_for\\_endpoint\\_iam\\_role\\_arn](#output\\_dms\\_access\\_for\\_endpoint\\_iam\\_role\\_arn) | Amazon Resource Name (ARN) specifying the role |\n| \u003ca name=\"output_dms_access_for_endpoint_iam_role_id\"\u003e\u003c/a\u003e [dms\\_access\\_for\\_endpoint\\_iam\\_role\\_id](#output\\_dms\\_access\\_for\\_endpoint\\_iam\\_role\\_id) | Name of the IAM role |\n| \u003ca name=\"output_dms_access_for_endpoint_iam_role_unique_id\"\u003e\u003c/a\u003e [dms\\_access\\_for\\_endpoint\\_iam\\_role\\_unique\\_id](#output\\_dms\\_access\\_for\\_endpoint\\_iam\\_role\\_unique\\_id) | Stable and unique string identifying the role |\n| \u003ca name=\"output_dms_cloudwatch_logs_iam_role_arn\"\u003e\u003c/a\u003e [dms\\_cloudwatch\\_logs\\_iam\\_role\\_arn](#output\\_dms\\_cloudwatch\\_logs\\_iam\\_role\\_arn) | Amazon Resource Name (ARN) specifying the role |\n| \u003ca name=\"output_dms_cloudwatch_logs_iam_role_id\"\u003e\u003c/a\u003e [dms\\_cloudwatch\\_logs\\_iam\\_role\\_id](#output\\_dms\\_cloudwatch\\_logs\\_iam\\_role\\_id) | Name of the IAM role |\n| \u003ca name=\"output_dms_cloudwatch_logs_iam_role_unique_id\"\u003e\u003c/a\u003e [dms\\_cloudwatch\\_logs\\_iam\\_role\\_unique\\_id](#output\\_dms\\_cloudwatch\\_logs\\_iam\\_role\\_unique\\_id) | Stable and unique string identifying the role |\n| \u003ca name=\"output_dms_vpc_iam_role_arn\"\u003e\u003c/a\u003e [dms\\_vpc\\_iam\\_role\\_arn](#output\\_dms\\_vpc\\_iam\\_role\\_arn) | Amazon Resource Name (ARN) specifying the role |\n| \u003ca name=\"output_dms_vpc_iam_role_id\"\u003e\u003c/a\u003e [dms\\_vpc\\_iam\\_role\\_id](#output\\_dms\\_vpc\\_iam\\_role\\_id) | Name of the IAM role |\n| \u003ca name=\"output_dms_vpc_iam_role_unique_id\"\u003e\u003c/a\u003e [dms\\_vpc\\_iam\\_role\\_unique\\_id](#output\\_dms\\_vpc\\_iam\\_role\\_unique\\_id) | Stable and unique string identifying the role |\n| \u003ca name=\"output_endpoints\"\u003e\u003c/a\u003e [endpoints](#output\\_endpoints) | A map of maps containing the endpoints created and their full output of attributes and values |\n| \u003ca name=\"output_event_subscriptions\"\u003e\u003c/a\u003e [event\\_subscriptions](#output\\_event\\_subscriptions) | A map of maps containing the event subscriptions created and their full output of attributes and values |\n| \u003ca name=\"output_replication_instance_arn\"\u003e\u003c/a\u003e [replication\\_instance\\_arn](#output\\_replication\\_instance\\_arn) | The Amazon Resource Name (ARN) of the replication instance |\n| \u003ca name=\"output_replication_instance_private_ips\"\u003e\u003c/a\u003e [replication\\_instance\\_private\\_ips](#output\\_replication\\_instance\\_private\\_ips) | A list of the private IP addresses of the replication instance |\n| \u003ca name=\"output_replication_instance_public_ips\"\u003e\u003c/a\u003e [replication\\_instance\\_public\\_ips](#output\\_replication\\_instance\\_public\\_ips) | A list of the public IP addresses of the replication instance |\n| \u003ca name=\"output_replication_instance_tags_all\"\u003e\u003c/a\u003e [replication\\_instance\\_tags\\_all](#output\\_replication\\_instance\\_tags\\_all) | A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block |\n| \u003ca name=\"output_replication_subnet_group_id\"\u003e\u003c/a\u003e [replication\\_subnet\\_group\\_id](#output\\_replication\\_subnet\\_group\\_id) | The ID of the subnet group |\n| \u003ca name=\"output_replication_tasks\"\u003e\u003c/a\u003e [replication\\_tasks](#output\\_replication\\_tasks) | A map of maps containing the replication tasks created and their full output of attributes and values |\n| \u003ca name=\"output_s3_endpoints\"\u003e\u003c/a\u003e [s3\\_endpoints](#output\\_s3\\_endpoints) | A map of maps containing the S3 endpoints created and their full output of attributes and values |\n| \u003ca name=\"output_serverless_replication_tasks\"\u003e\u003c/a\u003e [serverless\\_replication\\_tasks](#output\\_serverless\\_replication\\_tasks) | A map of maps containing the serverless replication tasks (replication\\_config) created and their full output of attributes and values |\n\u003c!-- END_TF_DOCS --\u003e\n\n## License\n\nApache-2.0 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-aws-dms/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-dms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-dms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-dms/lists"}