{"id":13505672,"url":"https://github.com/terraform-aws-modules/terraform-aws-redshift","last_synced_at":"2025-04-12T15:43:05.893Z","repository":{"id":28434248,"uuid":"104858604","full_name":"terraform-aws-modules/terraform-aws-redshift","owner":"terraform-aws-modules","description":"Terraform module to create AWS Redshift resources 🇺🇦","archived":false,"fork":false,"pushed_at":"2025-03-30T16:11:31.000Z","size":190,"stargazers_count":86,"open_issues_count":0,"forks_count":160,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-03T17:11:14.511Z","etag":null,"topics":["aws","redshift","redshift-cluster","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/terraform-aws-modules/redshift/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":"2017-09-26T08:36:36.000Z","updated_at":"2025-03-30T16:21:01.000Z","dependencies_parsed_at":"2024-01-03T02:26:40.925Z","dependency_job_id":"7fd98d27-7d44-44cc-994e-c29455bb3f87","html_url":"https://github.com/terraform-aws-modules/terraform-aws-redshift","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-redshift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-redshift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-redshift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-aws-modules%2Fterraform-aws-redshift/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-redshift/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248590938,"owners_count":21129916,"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","redshift","redshift-cluster","terraform-module"],"created_at":"2024-08-01T00:01:11.417Z","updated_at":"2025-04-12T15:43:05.872Z","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 Redshift Terraform module\n\nTerraform module which creates Redshift resources on AWS.\n\n[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)\n\n## Usage\n\n```hcl\nmodule \"redshift\" {\n  source  = \"terraform-aws-modules/redshift/aws\"\n\n  cluster_identifier    = \"example\"\n  allow_version_upgrade = true\n  node_type             = \"ra3.xlplus\"\n  number_of_nodes       = 3\n\n  database_name          = \"mydb\"\n  master_username        = \"mydbuser\"\n  create_random_password = false\n  master_password        = \"MySecretPassw0rd1!\" # Do better!\n\n  encrypted   = true\n  kms_key_arn = \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"\n\n  enhanced_vpc_routing   = true\n  vpc_security_group_ids = [\"sg-12345678\"]\n  subnet_ids             = [\"subnet-123456\", \"subnet-654321\"]\n\n  availability_zone_relocation_enabled = true\n\n  snapshot_copy = {\n    destination_region = \"us-east-1\"\n    grant_name         = \"example-grant\"\n  }\n\n  logging = {\n    bucket_name   = \"my-s3-log-bucket\"\n    s3_key_prefix = \"example/\"\n  }\n\n  # Parameter group\n  parameter_group_name        = \"example-custom\"\n  parameter_group_description = \"Custom parameter group for example cluster\"\n  parameter_group_parameters = {\n    wlm_json_configuration = {\n      name = \"wlm_json_configuration\"\n      value = jsonencode([\n        {\n          query_concurrency = 15\n        }\n      ])\n    }\n    require_ssl = {\n      name  = \"require_ssl\"\n      value = true\n    }\n    use_fips_ssl = {\n      name  = \"use_fips_ssl\"\n      value = false\n    }\n    enable_user_activity_logging = {\n      name  = \"enable_user_activity_logging\"\n      value = true\n    }\n    max_concurrency_scaling_clusters = {\n      name  = \"max_concurrency_scaling_clusters\"\n      value = 3\n    }\n    enable_case_sensitive_identifier = {\n      name  = \"enable_case_sensitive_identifier\"\n      value = true\n    }\n  }\n  parameter_group_tags = {\n    Additional = \"CustomParameterGroup\"\n  }\n\n  # Subnet group\n  subnet_group_name        = \"example-custom\"\n  subnet_group_description = \"Custom subnet group for example cluster\"\n  subnet_group_tags = {\n    Additional = \"CustomSubnetGroup\"\n  }\n\n  # Snapshot schedule\n  create_snapshot_schedule        = true\n  snapshot_schedule_identifier    = local.name\n  use_snapshot_identifier_prefix  = true\n  snapshot_schedule_description   = \"Example snapshot schedule\"\n  snapshot_schedule_definitions   = [\"rate(12 hours)\"]\n  snapshot_schedule_force_destroy = true\n\n  # Scheduled actions\n  create_scheduled_action_iam_role = true\n  scheduled_actions = {\n    pause = {\n      name          = \"example-pause\"\n      description   = \"Pause cluster every night\"\n      schedule      = \"cron(0 22 * * ? *)\"\n      pause_cluster = true\n    }\n    resize = {\n      name        = \"example-resize\"\n      description = \"Resize cluster (demo only)\"\n      schedule    = \"cron(00 13 * * ? *)\"\n      resize_cluster = {\n        node_type       = \"ds2.xlarge\"\n        number_of_nodes = 5\n      }\n    }\n    resume = {\n      name           = \"example-resume\"\n      description    = \"Resume cluster every morning\"\n      schedule       = \"cron(0 12 * * ? *)\"\n      resume_cluster = true\n    }\n  }\n\n  # Endpoint access\n  create_endpoint_access          = true\n  endpoint_name                   = \"example-example\"\n  endpoint_subnet_group_name      = \"example-subnet-group\"\n  endpoint_vpc_security_group_ids = [\"sg-12345678\"]\n\n  # Usage limits\n  usage_limits = {\n    currency_scaling = {\n      feature_type  = \"concurrency-scaling\"\n      limit_type    = \"time\"\n      amount        = 60\n      breach_action = \"emit-metric\"\n    }\n    spectrum = {\n      feature_type  = \"spectrum\"\n      limit_type    = \"data-scanned\"\n      amount        = 2\n      breach_action = \"disable\"\n      tags = {\n        Additional = \"CustomUsageLimits\"\n      }\n    }\n  }\n\n  # Authentication profile\n  authentication_profiles = {\n    example = {\n      name = \"example\"\n      content = {\n        AllowDBUserOverride = \"1\"\n        Client_ID           = \"ExampleClientID\"\n        App_ID              = \"example\"\n      }\n    }\n    bar = {\n      content = {\n        AllowDBUserOverride = \"1\"\n        Client_ID           = \"ExampleClientID\"\n        App_ID              = \"bar\"\n      }\n    }\n  }\n\n  tags = {\n    Environment = \"dev\"\n    Terraform   = \"true\"\n  }\n}\n```\n\n## Examples\n\n- [Complete Redshift example](https://github.com/terraform-aws-modules/terraform-aws-redshift/tree/master/examples/complete) creates VPC with Redshift subnet, VPC security group and Redshift cluster itself.\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.3 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.45 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | \u003e= 3.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 5.45 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | \u003e= 3.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_iam_role.scheduled_action](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy.scheduled_action](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_redshift_authentication_profile.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_authentication_profile) | resource |\n| [aws_redshift_cluster.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_cluster) | resource |\n| [aws_redshift_cluster_iam_roles.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_cluster_iam_roles) | resource |\n| [aws_redshift_endpoint_access.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_endpoint_access) | resource |\n| [aws_redshift_logging.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_logging) | resource |\n| [aws_redshift_parameter_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_parameter_group) | resource |\n| [aws_redshift_scheduled_action.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_scheduled_action) | resource |\n| [aws_redshift_snapshot_copy.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_snapshot_copy) | resource |\n| [aws_redshift_snapshot_schedule.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_snapshot_schedule) | resource |\n| [aws_redshift_snapshot_schedule_association.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_snapshot_schedule_association) | resource |\n| [aws_redshift_subnet_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_subnet_group) | resource |\n| [aws_redshift_usage_limit.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/redshift_usage_limit) | resource |\n| [aws_secretsmanager_secret_rotation.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret_rotation) | resource |\n| [random_password.master_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [aws_iam_policy_document.scheduled_action](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.scheduled_action_assume](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\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_allow_version_upgrade\"\u003e\u003c/a\u003e [allow\\_version\\_upgrade](#input\\_allow\\_version\\_upgrade) | If `true`, major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster. Default is `true` | `bool` | `null` | no |\n| \u003ca name=\"input_apply_immediately\"\u003e\u003c/a\u003e [apply\\_immediately](#input\\_apply\\_immediately) | Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false` | `bool` | `null` | no |\n| \u003ca name=\"input_aqua_configuration_status\"\u003e\u003c/a\u003e [aqua\\_configuration\\_status](#input\\_aqua\\_configuration\\_status) | The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) after the cluster is restored. Possible values are `enabled`, `disabled`, and `auto`. Requires Cluster reboot | `string` | `null` | no |\n| \u003ca name=\"input_authentication_profiles\"\u003e\u003c/a\u003e [authentication\\_profiles](#input\\_authentication\\_profiles) | Map of authentication profiles to create | `any` | `{}` | no |\n| \u003ca name=\"input_automated_snapshot_retention_period\"\u003e\u003c/a\u003e [automated\\_snapshot\\_retention\\_period](#input\\_automated\\_snapshot\\_retention\\_period) | The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with create-cluster-snapshot. Default is 1 | `number` | `null` | no |\n| \u003ca name=\"input_availability_zone\"\u003e\u003c/a\u003e [availability\\_zone](#input\\_availability\\_zone) | The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. Can only be changed if `availability_zone_relocation_enabled` is `true` | `string` | `null` | no |\n| \u003ca name=\"input_availability_zone_relocation_enabled\"\u003e\u003c/a\u003e [availability\\_zone\\_relocation\\_enabled](#input\\_availability\\_zone\\_relocation\\_enabled) | If `true`, the cluster can be relocated to another availability zone, either automatically by AWS or when requested. Default is `false`. Available for use on clusters from the RA3 instance family | `bool` | `null` | no |\n| \u003ca name=\"input_cloudwatch_log_group_kms_key_id\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_kms\\_key\\_id](#input\\_cloudwatch\\_log\\_group\\_kms\\_key\\_id) | The ARN of the KMS Key to use when encrypting log data | `string` | `null` | no |\n| \u003ca name=\"input_cloudwatch_log_group_retention_in_days\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_retention\\_in\\_days](#input\\_cloudwatch\\_log\\_group\\_retention\\_in\\_days) | The number of days to retain CloudWatch logs for the redshift cluster | `number` | `0` | no |\n| \u003ca name=\"input_cloudwatch_log_group_skip_destroy\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_skip\\_destroy](#input\\_cloudwatch\\_log\\_group\\_skip\\_destroy) | Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the Terraform state | `bool` | `null` | no |\n| \u003ca name=\"input_cloudwatch_log_group_tags\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_tags](#input\\_cloudwatch\\_log\\_group\\_tags) | Additional tags to add to cloudwatch log groups created | `map(string)` | `{}` | no |\n| \u003ca name=\"input_cluster_identifier\"\u003e\u003c/a\u003e [cluster\\_identifier](#input\\_cluster\\_identifier) | The Cluster Identifier. Must be a lower case string | `string` | `\"\"` | no |\n| \u003ca name=\"input_cluster_timeouts\"\u003e\u003c/a\u003e [cluster\\_timeouts](#input\\_cluster\\_timeouts) | Create, update, and delete timeout configurations for the cluster | `map(string)` | `{}` | no |\n| \u003ca name=\"input_cluster_version\"\u003e\u003c/a\u003e [cluster\\_version](#input\\_cluster\\_version) | The version of the Amazon Redshift engine software that you want to deploy on the cluster. The version selected runs on all the nodes in the cluster | `string` | `null` | no |\n| \u003ca name=\"input_create\"\u003e\u003c/a\u003e [create](#input\\_create) | Determines whether to create Redshift cluster and resources (affects all resources) | `bool` | `true` | no |\n| \u003ca name=\"input_create_cloudwatch_log_group\"\u003e\u003c/a\u003e [create\\_cloudwatch\\_log\\_group](#input\\_create\\_cloudwatch\\_log\\_group) | Determines whether a CloudWatch log group is created for each `var.logging.log_exports` | `bool` | `false` | no |\n| \u003ca name=\"input_create_endpoint_access\"\u003e\u003c/a\u003e [create\\_endpoint\\_access](#input\\_create\\_endpoint\\_access) | Determines whether to create an endpoint access (managed VPC endpoint) | `bool` | `false` | no |\n| \u003ca name=\"input_create_parameter_group\"\u003e\u003c/a\u003e [create\\_parameter\\_group](#input\\_create\\_parameter\\_group) | Determines whether to create a parameter group or use existing | `bool` | `true` | no |\n| \u003ca name=\"input_create_random_password\"\u003e\u003c/a\u003e [create\\_random\\_password](#input\\_create\\_random\\_password) | Determines whether to create random password for cluster `master_password` | `bool` | `true` | no |\n| \u003ca name=\"input_create_scheduled_action_iam_role\"\u003e\u003c/a\u003e [create\\_scheduled\\_action\\_iam\\_role](#input\\_create\\_scheduled\\_action\\_iam\\_role) | Determines whether a scheduled action IAM role is created | `bool` | `false` | no |\n| \u003ca name=\"input_create_snapshot_schedule\"\u003e\u003c/a\u003e [create\\_snapshot\\_schedule](#input\\_create\\_snapshot\\_schedule) | Determines whether to create a snapshot schedule | `bool` | `false` | no |\n| \u003ca name=\"input_create_subnet_group\"\u003e\u003c/a\u003e [create\\_subnet\\_group](#input\\_create\\_subnet\\_group) | Determines whether to create a subnet group or use existing | `bool` | `true` | no |\n| \u003ca name=\"input_database_name\"\u003e\u003c/a\u003e [database\\_name](#input\\_database\\_name) | The name of the first database to be created when the cluster is created. If you do not provide a name, Amazon Redshift will create a default database called `dev` | `string` | `null` | no |\n| \u003ca name=\"input_default_iam_role_arn\"\u003e\u003c/a\u003e [default\\_iam\\_role\\_arn](#input\\_default\\_iam\\_role\\_arn) | The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created | `string` | `null` | no |\n| \u003ca name=\"input_elastic_ip\"\u003e\u003c/a\u003e [elastic\\_ip](#input\\_elastic\\_ip) | The Elastic IP (EIP) address for the cluster | `string` | `null` | no |\n| \u003ca name=\"input_encrypted\"\u003e\u003c/a\u003e [encrypted](#input\\_encrypted) | If `true`, the data in the cluster is encrypted at rest | `bool` | `true` | no |\n| \u003ca name=\"input_endpoint_name\"\u003e\u003c/a\u003e [endpoint\\_name](#input\\_endpoint\\_name) | The Redshift-managed VPC endpoint name | `string` | `\"\"` | no |\n| \u003ca name=\"input_endpoint_resource_owner\"\u003e\u003c/a\u003e [endpoint\\_resource\\_owner](#input\\_endpoint\\_resource\\_owner) | The Amazon Web Services account ID of the owner of the cluster. This is only required if the cluster is in another Amazon Web Services account | `string` | `null` | no |\n| \u003ca name=\"input_endpoint_subnet_group_name\"\u003e\u003c/a\u003e [endpoint\\_subnet\\_group\\_name](#input\\_endpoint\\_subnet\\_group\\_name) | The subnet group from which Amazon Redshift chooses the subnet to deploy the endpoint | `string` | `\"\"` | no |\n| \u003ca name=\"input_endpoint_vpc_security_group_ids\"\u003e\u003c/a\u003e [endpoint\\_vpc\\_security\\_group\\_ids](#input\\_endpoint\\_vpc\\_security\\_group\\_ids) | The security group IDs to use for the endpoint access (managed VPC endpoint) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_enhanced_vpc_routing\"\u003e\u003c/a\u003e [enhanced\\_vpc\\_routing](#input\\_enhanced\\_vpc\\_routing) | If `true`, enhanced VPC routing is enabled | `bool` | `null` | no |\n| \u003ca name=\"input_final_snapshot_identifier\"\u003e\u003c/a\u003e [final\\_snapshot\\_identifier](#input\\_final\\_snapshot\\_identifier) | The identifier of the final snapshot that is to be created immediately before deleting the cluster. If this parameter is provided, `skip_final_snapshot` must be `false` | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_arns\"\u003e\u003c/a\u003e [iam\\_role\\_arns](#input\\_iam\\_role\\_arns) | A list of IAM Role ARNs to associate with the cluster. A Maximum of 10 can be associated to the cluster at any time | `list(string)` | `[]` | no |\n| \u003ca name=\"input_iam_role_description\"\u003e\u003c/a\u003e [iam\\_role\\_description](#input\\_iam\\_role\\_description) | Description of the scheduled action IAM role | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_name\"\u003e\u003c/a\u003e [iam\\_role\\_name](#input\\_iam\\_role\\_name) | Name to use on scheduled action IAM role created | `string` | `null` | no |\n| \u003ca name=\"input_iam_role_path\"\u003e\u003c/a\u003e [iam\\_role\\_path](#input\\_iam\\_role\\_path) | Scheduled action IAM role path | `string` | `null` | 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 scheduled action IAM 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 add to the scheduled action IAM role created | `map(string)` | `{}` | no |\n| \u003ca name=\"input_iam_role_use_name_prefix\"\u003e\u003c/a\u003e [iam\\_role\\_use\\_name\\_prefix](#input\\_iam\\_role\\_use\\_name\\_prefix) | Determines whether scheduled action the IAM role name (`iam_role_name`) is used as a prefix | `string` | `true` | 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`, `encrypted` needs to be set to `true` | `string` | `null` | no |\n| \u003ca name=\"input_logging\"\u003e\u003c/a\u003e [logging](#input\\_logging) | Logging configuration for the cluster | `any` | `{}` | no |\n| \u003ca name=\"input_maintenance_track_name\"\u003e\u003c/a\u003e [maintenance\\_track\\_name](#input\\_maintenance\\_track\\_name) | The name of the maintenance track for the restored cluster. When you take a snapshot, the snapshot inherits the MaintenanceTrack value from the cluster. The snapshot might be on a different track than the cluster that was the source for the snapshot. Default value is `current` | `string` | `null` | no |\n| \u003ca name=\"input_manage_master_password\"\u003e\u003c/a\u003e [manage\\_master\\_password](#input\\_manage\\_master\\_password) | Whether to use AWS SecretsManager to manage the cluster admin credentials. Conflicts with `master_password`. One of `master_password` or `manage_master_password` is required unless `snapshot_identifier` is provided | `bool` | `false` | no |\n| \u003ca name=\"input_manage_master_password_rotation\"\u003e\u003c/a\u003e [manage\\_master\\_password\\_rotation](#input\\_manage\\_master\\_password\\_rotation) | Whether to manage the master user password rotation. Setting this value to false after previously having been set to true will disable automatic rotation. | `bool` | `false` | no |\n| \u003ca name=\"input_manual_snapshot_retention_period\"\u003e\u003c/a\u003e [manual\\_snapshot\\_retention\\_period](#input\\_manual\\_snapshot\\_retention\\_period) | The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. Valid values are between `-1` and `3653`. Default value is `-1` | `number` | `null` | no |\n| \u003ca name=\"input_master_password\"\u003e\u003c/a\u003e [master\\_password](#input\\_master\\_password) | Password for the master DB user. (Required unless a `snapshot_identifier` is provided). Must contain at least 8 chars, one uppercase letter, one lowercase letter, and one number | `string` | `null` | no |\n| \u003ca name=\"input_master_password_rotate_immediately\"\u003e\u003c/a\u003e [master\\_password\\_rotate\\_immediately](#input\\_master\\_password\\_rotate\\_immediately) | Specifies whether to rotate the secret immediately or wait until the next scheduled rotation window. | `bool` | `null` | no |\n| \u003ca name=\"input_master_password_rotation_automatically_after_days\"\u003e\u003c/a\u003e [master\\_password\\_rotation\\_automatically\\_after\\_days](#input\\_master\\_password\\_rotation\\_automatically\\_after\\_days) | Specifies the number of days between automatic scheduled rotations of the secret. Either `master_user_password_rotation_automatically_after_days` or `master_user_password_rotation_schedule_expression` must be specified. | `number` | `null` | no |\n| \u003ca name=\"input_master_password_rotation_duration\"\u003e\u003c/a\u003e [master\\_password\\_rotation\\_duration](#input\\_master\\_password\\_rotation\\_duration) | The length of the rotation window in hours. For example, 3h for a three hour window. | `string` | `null` | no |\n| \u003ca name=\"input_master_password_rotation_schedule_expression\"\u003e\u003c/a\u003e [master\\_password\\_rotation\\_schedule\\_expression](#input\\_master\\_password\\_rotation\\_schedule\\_expression) | A cron() or rate() expression that defines the schedule for rotating your secret. Either `master_user_password_rotation_automatically_after_days` or `master_user_password_rotation_schedule_expression` must be specified. | `string` | `null` | no |\n| \u003ca name=\"input_master_password_secret_kms_key_id\"\u003e\u003c/a\u003e [master\\_password\\_secret\\_kms\\_key\\_id](#input\\_master\\_password\\_secret\\_kms\\_key\\_id) | ID of the KMS key used to encrypt the cluster admin credentials secret | `string` | `null` | no |\n| \u003ca name=\"input_master_username\"\u003e\u003c/a\u003e [master\\_username](#input\\_master\\_username) | Username for the master DB user (Required unless a `snapshot_identifier` is provided). Defaults to `awsuser` | `string` | `\"awsuser\"` | no |\n| \u003ca name=\"input_multi_az\"\u003e\u003c/a\u003e [multi\\_az](#input\\_multi\\_az) | Specifies if the Redshift cluster is multi-AZ | `bool` | `null` | no |\n| \u003ca name=\"input_node_type\"\u003e\u003c/a\u003e [node\\_type](#input\\_node\\_type) | The node type to be provisioned for the cluster | `string` | `\"\"` | no |\n| \u003ca name=\"input_number_of_nodes\"\u003e\u003c/a\u003e [number\\_of\\_nodes](#input\\_number\\_of\\_nodes) | Number of nodes in the cluster. Defaults to 1. Note: values greater than 1 will trigger `cluster_type` to switch to `multi-node` | `number` | `1` | no |\n| \u003ca name=\"input_owner_account\"\u003e\u003c/a\u003e [owner\\_account](#input\\_owner\\_account) | The AWS customer account used to create or copy the snapshot. Required if you are restoring a snapshot you do not own, optional if you own the snapshot | `string` | `null` | no |\n| \u003ca name=\"input_parameter_group_description\"\u003e\u003c/a\u003e [parameter\\_group\\_description](#input\\_parameter\\_group\\_description) | The description of the Redshift parameter group. Defaults to `Managed by Terraform` | `string` | `null` | no |\n| \u003ca name=\"input_parameter_group_family\"\u003e\u003c/a\u003e [parameter\\_group\\_family](#input\\_parameter\\_group\\_family) | The family of the Redshift parameter group | `string` | `\"redshift-1.0\"` | no |\n| \u003ca name=\"input_parameter_group_name\"\u003e\u003c/a\u003e [parameter\\_group\\_name](#input\\_parameter\\_group\\_name) | The name of the Redshift parameter group, existing or to be created | `string` | `null` | no |\n| \u003ca name=\"input_parameter_group_parameters\"\u003e\u003c/a\u003e [parameter\\_group\\_parameters](#input\\_parameter\\_group\\_parameters) | value | `map(any)` | `{}` | no |\n| \u003ca name=\"input_parameter_group_tags\"\u003e\u003c/a\u003e [parameter\\_group\\_tags](#input\\_parameter\\_group\\_tags) | Additional tags to add to the parameter group | `map(string)` | `{}` | no |\n| \u003ca name=\"input_port\"\u003e\u003c/a\u003e [port](#input\\_port) | The port number on which the cluster accepts incoming connections. Default port is 5439 | `number` | `null` | no |\n| \u003ca name=\"input_preferred_maintenance_window\"\u003e\u003c/a\u003e [preferred\\_maintenance\\_window](#input\\_preferred\\_maintenance\\_window) | The weekly time range (in UTC) during which automated cluster maintenance can occur. Format: `ddd:hh24:mi-ddd:hh24:mi` | `string` | `\"sat:10:00-sat:10:30\"` | no |\n| \u003ca name=\"input_publicly_accessible\"\u003e\u003c/a\u003e [publicly\\_accessible](#input\\_publicly\\_accessible) | If true, the cluster can be accessed from a public network | `bool` | `false` | no |\n| \u003ca name=\"input_random_password_length\"\u003e\u003c/a\u003e [random\\_password\\_length](#input\\_random\\_password\\_length) | Length of random password to create. Defaults to `16` | `number` | `16` | no |\n| \u003ca name=\"input_scheduled_actions\"\u003e\u003c/a\u003e [scheduled\\_actions](#input\\_scheduled\\_actions) | Map of maps containing scheduled action definitions | `any` | `{}` | no |\n| \u003ca name=\"input_skip_final_snapshot\"\u003e\u003c/a\u003e [skip\\_final\\_snapshot](#input\\_skip\\_final\\_snapshot) | Determines whether a final snapshot of the cluster is created before Redshift deletes the cluster. If true, a final cluster snapshot is not created. If false , a final cluster snapshot is created before the cluster is deleted | `bool` | `true` | no |\n| \u003ca name=\"input_snapshot_cluster_identifier\"\u003e\u003c/a\u003e [snapshot\\_cluster\\_identifier](#input\\_snapshot\\_cluster\\_identifier) | The name of the cluster the source snapshot was created from | `string` | `null` | no |\n| \u003ca name=\"input_snapshot_copy\"\u003e\u003c/a\u003e [snapshot\\_copy](#input\\_snapshot\\_copy) | Configuration of automatic copy of snapshots from one region to another | `any` | `{}` | no |\n| \u003ca name=\"input_snapshot_identifier\"\u003e\u003c/a\u003e [snapshot\\_identifier](#input\\_snapshot\\_identifier) | The name of the snapshot from which to create the new cluster | `string` | `null` | no |\n| \u003ca name=\"input_snapshot_schedule_definitions\"\u003e\u003c/a\u003e [snapshot\\_schedule\\_definitions](#input\\_snapshot\\_schedule\\_definitions) | The definition of the snapshot schedule. The definition is made up of schedule expressions, for example `cron(30 12 *)` or `rate(12 hours)` | `list(string)` | `[]` | no |\n| \u003ca name=\"input_snapshot_schedule_description\"\u003e\u003c/a\u003e [snapshot\\_schedule\\_description](#input\\_snapshot\\_schedule\\_description) | The description of the snapshot schedule | `string` | `null` | no |\n| \u003ca name=\"input_snapshot_schedule_force_destroy\"\u003e\u003c/a\u003e [snapshot\\_schedule\\_force\\_destroy](#input\\_snapshot\\_schedule\\_force\\_destroy) | Whether to destroy all associated clusters with this snapshot schedule on deletion. Must be enabled and applied before attempting deletion | `bool` | `null` | no |\n| \u003ca name=\"input_snapshot_schedule_identifier\"\u003e\u003c/a\u003e [snapshot\\_schedule\\_identifier](#input\\_snapshot\\_schedule\\_identifier) | The snapshot schedule identifier | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_description\"\u003e\u003c/a\u003e [subnet\\_group\\_description](#input\\_subnet\\_group\\_description) | The description of the Redshift Subnet group. Defaults to `Managed by Terraform` | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_name\"\u003e\u003c/a\u003e [subnet\\_group\\_name](#input\\_subnet\\_group\\_name) | The name of the Redshift subnet group, existing or to be created | `string` | `null` | no |\n| \u003ca name=\"input_subnet_group_tags\"\u003e\u003c/a\u003e [subnet\\_group\\_tags](#input\\_subnet\\_group\\_tags) | Additional tags to add to the subnet group | `map(string)` | `{}` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | An array of VPC subnet IDs to use in the subnet group | `list(string)` | `[]` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to add to all resources | `map(string)` | `{}` | no |\n| \u003ca name=\"input_usage_limits\"\u003e\u003c/a\u003e [usage\\_limits](#input\\_usage\\_limits) | Map of usage limit definitions to create | `any` | `{}` | no |\n| \u003ca name=\"input_use_snapshot_identifier_prefix\"\u003e\u003c/a\u003e [use\\_snapshot\\_identifier\\_prefix](#input\\_use\\_snapshot\\_identifier\\_prefix) | Determines whether the identifier (`snapshot_schedule_identifier`) is used as a prefix | `bool` | `true` | no |\n| \u003ca name=\"input_vpc_security_group_ids\"\u003e\u003c/a\u003e [vpc\\_security\\_group\\_ids](#input\\_vpc\\_security\\_group\\_ids) | A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster | `list(string)` | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_authentication_profiles\"\u003e\u003c/a\u003e [authentication\\_profiles](#output\\_authentication\\_profiles) | Map of authentication profiles created and their associated attributes |\n| \u003ca name=\"output_cluster_arn\"\u003e\u003c/a\u003e [cluster\\_arn](#output\\_cluster\\_arn) | The Redshift cluster ARN |\n| \u003ca name=\"output_cluster_automated_snapshot_retention_period\"\u003e\u003c/a\u003e [cluster\\_automated\\_snapshot\\_retention\\_period](#output\\_cluster\\_automated\\_snapshot\\_retention\\_period) | The backup retention period |\n| \u003ca name=\"output_cluster_availability_zone\"\u003e\u003c/a\u003e [cluster\\_availability\\_zone](#output\\_cluster\\_availability\\_zone) | The availability zone of the Cluster |\n| \u003ca name=\"output_cluster_database_name\"\u003e\u003c/a\u003e [cluster\\_database\\_name](#output\\_cluster\\_database\\_name) | The name of the default database in the Cluster |\n| \u003ca name=\"output_cluster_dns_name\"\u003e\u003c/a\u003e [cluster\\_dns\\_name](#output\\_cluster\\_dns\\_name) | The DNS name of the cluster |\n| \u003ca name=\"output_cluster_encrypted\"\u003e\u003c/a\u003e [cluster\\_encrypted](#output\\_cluster\\_encrypted) | Whether the data in the cluster is encrypted |\n| \u003ca name=\"output_cluster_endpoint\"\u003e\u003c/a\u003e [cluster\\_endpoint](#output\\_cluster\\_endpoint) | The connection endpoint |\n| \u003ca name=\"output_cluster_hostname\"\u003e\u003c/a\u003e [cluster\\_hostname](#output\\_cluster\\_hostname) | The hostname of the Redshift cluster |\n| \u003ca name=\"output_cluster_id\"\u003e\u003c/a\u003e [cluster\\_id](#output\\_cluster\\_id) | The Redshift cluster ID |\n| \u003ca name=\"output_cluster_identifier\"\u003e\u003c/a\u003e [cluster\\_identifier](#output\\_cluster\\_identifier) | The Redshift cluster identifier |\n| \u003ca name=\"output_cluster_namespace_arn\"\u003e\u003c/a\u003e [cluster\\_namespace\\_arn](#output\\_cluster\\_namespace\\_arn) | The namespace Amazon Resource Name (ARN) of the cluster |\n| \u003ca name=\"output_cluster_node_type\"\u003e\u003c/a\u003e [cluster\\_node\\_type](#output\\_cluster\\_node\\_type) | The type of nodes in the cluster |\n| \u003ca name=\"output_cluster_nodes\"\u003e\u003c/a\u003e [cluster\\_nodes](#output\\_cluster\\_nodes) | The nodes in the cluster. Each node is a map of the following attributes: `node_role`, `private_ip_address`, and `public_ip_address` |\n| \u003ca name=\"output_cluster_parameter_group_name\"\u003e\u003c/a\u003e [cluster\\_parameter\\_group\\_name](#output\\_cluster\\_parameter\\_group\\_name) | The name of the parameter group to be associated with this cluster |\n| \u003ca name=\"output_cluster_port\"\u003e\u003c/a\u003e [cluster\\_port](#output\\_cluster\\_port) | The port the cluster responds on |\n| \u003ca name=\"output_cluster_preferred_maintenance_window\"\u003e\u003c/a\u003e [cluster\\_preferred\\_maintenance\\_window](#output\\_cluster\\_preferred\\_maintenance\\_window) | The backup window |\n| \u003ca name=\"output_cluster_public_key\"\u003e\u003c/a\u003e [cluster\\_public\\_key](#output\\_cluster\\_public\\_key) | The public key for the cluster |\n| \u003ca name=\"output_cluster_revision_number\"\u003e\u003c/a\u003e [cluster\\_revision\\_number](#output\\_cluster\\_revision\\_number) | The specific revision number of the database in the cluster |\n| \u003ca name=\"output_cluster_secretsmanager_secret_rotation_enabled\"\u003e\u003c/a\u003e [cluster\\_secretsmanager\\_secret\\_rotation\\_enabled](#output\\_cluster\\_secretsmanager\\_secret\\_rotation\\_enabled) | Specifies whether automatic rotation is enabled for the secret |\n| \u003ca name=\"output_cluster_subnet_group_name\"\u003e\u003c/a\u003e [cluster\\_subnet\\_group\\_name](#output\\_cluster\\_subnet\\_group\\_name) | The name of a cluster subnet group to be associated with this cluster |\n| \u003ca name=\"output_cluster_type\"\u003e\u003c/a\u003e [cluster\\_type](#output\\_cluster\\_type) | The Redshift cluster type |\n| \u003ca name=\"output_cluster_version\"\u003e\u003c/a\u003e [cluster\\_version](#output\\_cluster\\_version) | The version of Redshift engine software |\n| \u003ca name=\"output_cluster_vpc_security_group_ids\"\u003e\u003c/a\u003e [cluster\\_vpc\\_security\\_group\\_ids](#output\\_cluster\\_vpc\\_security\\_group\\_ids) | The VPC security group ids associated with the cluster |\n| \u003ca name=\"output_endpoint_access_address\"\u003e\u003c/a\u003e [endpoint\\_access\\_address](#output\\_endpoint\\_access\\_address) | The DNS address of the endpoint |\n| \u003ca name=\"output_endpoint_access_id\"\u003e\u003c/a\u003e [endpoint\\_access\\_id](#output\\_endpoint\\_access\\_id) | The Redshift-managed VPC endpoint name |\n| \u003ca name=\"output_endpoint_access_port\"\u003e\u003c/a\u003e [endpoint\\_access\\_port](#output\\_endpoint\\_access\\_port) | The port number on which the cluster accepts incoming connections |\n| \u003ca name=\"output_endpoint_access_vpc_endpoint\"\u003e\u003c/a\u003e [endpoint\\_access\\_vpc\\_endpoint](#output\\_endpoint\\_access\\_vpc\\_endpoint) | The connection endpoint for connecting to an Amazon Redshift cluster through the proxy. See details below |\n| \u003ca name=\"output_master_password_secret_arn\"\u003e\u003c/a\u003e [master\\_password\\_secret\\_arn](#output\\_master\\_password\\_secret\\_arn) | ARN of managed master password secret |\n| \u003ca name=\"output_parameter_group_arn\"\u003e\u003c/a\u003e [parameter\\_group\\_arn](#output\\_parameter\\_group\\_arn) | Amazon Resource Name (ARN) of the parameter group created |\n| \u003ca name=\"output_parameter_group_id\"\u003e\u003c/a\u003e [parameter\\_group\\_id](#output\\_parameter\\_group\\_id) | The name of the Redshift parameter group created |\n| \u003ca name=\"output_scheduled_action_iam_role_arn\"\u003e\u003c/a\u003e [scheduled\\_action\\_iam\\_role\\_arn](#output\\_scheduled\\_action\\_iam\\_role\\_arn) | Scheduled actions IAM role ARN |\n| \u003ca name=\"output_scheduled_action_iam_role_name\"\u003e\u003c/a\u003e [scheduled\\_action\\_iam\\_role\\_name](#output\\_scheduled\\_action\\_iam\\_role\\_name) | Scheduled actions IAM role name |\n| \u003ca name=\"output_scheduled_action_iam_role_unique_id\"\u003e\u003c/a\u003e [scheduled\\_action\\_iam\\_role\\_unique\\_id](#output\\_scheduled\\_action\\_iam\\_role\\_unique\\_id) | Stable and unique string identifying the scheduled action IAM role |\n| \u003ca name=\"output_scheduled_actions\"\u003e\u003c/a\u003e [scheduled\\_actions](#output\\_scheduled\\_actions) | A map of maps containing scheduled action details |\n| \u003ca name=\"output_snapshot_schedule_arn\"\u003e\u003c/a\u003e [snapshot\\_schedule\\_arn](#output\\_snapshot\\_schedule\\_arn) | Amazon Resource Name (ARN) of the Redshift Snapshot Schedule |\n| \u003ca name=\"output_subnet_group_arn\"\u003e\u003c/a\u003e [subnet\\_group\\_arn](#output\\_subnet\\_group\\_arn) | Amazon Resource Name (ARN) of the Redshift subnet group created |\n| \u003ca name=\"output_subnet_group_id\"\u003e\u003c/a\u003e [subnet\\_group\\_id](#output\\_subnet\\_group\\_id) | The ID of Redshift Subnet group created |\n| \u003ca name=\"output_usage_limits\"\u003e\u003c/a\u003e [usage\\_limits](#output\\_usage\\_limits) | Map of usage limits created and their associated attributes |\n\u003c!-- END_TF_DOCS --\u003e\n\n## Authors\n\nModule is maintained by [Anton Babenko](https://github.com/antonbabenko) with help from [these awesome contributors](https://github.com/terraform-aws-modules/terraform-aws-redshift/graphs/contributors).\n\n## License\n\nApache 2 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-aws-redshift/tree/master/LICENSE) for full details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-redshift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-redshift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-aws-modules%2Fterraform-aws-redshift/lists"}