Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flaconi/terraform-aws-microservice
Boilerplate Terraform Module for creating resources for typical micro services.
https://github.com/flaconi/terraform-aws-microservice
aws dynamodb elasticache rds redis sqs terraform terraform-aws terraform-module
Last synced: about 5 hours ago
JSON representation
Boilerplate Terraform Module for creating resources for typical micro services.
- Host: GitHub
- URL: https://github.com/flaconi/terraform-aws-microservice
- Owner: Flaconi
- License: mit
- Created: 2019-05-07T12:46:28.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-06T10:38:23.000Z (11 days ago)
- Last Synced: 2024-11-06T11:32:05.108Z (10 days ago)
- Topics: aws, dynamodb, elasticache, rds, redis, sqs, terraform, terraform-aws, terraform-module
- Language: HCL
- Homepage:
- Size: 329 KB
- Stars: 18
- Watchers: 13
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Microservice Boilerplate
[![lint](https://github.com/flaconi/terraform-aws-microservice/workflows/lint/badge.svg)](https://github.com/flaconi/terraform-aws-microservice/actions?query=workflow%3Alint)
[![test](https://github.com/flaconi/terraform-aws-microservice/workflows/test/badge.svg)](https://github.com/flaconi/terraform-aws-microservice/actions?query=workflow%3Atest)
[![Tag](https://img.shields.io/github/tag/flaconi/terraform-aws-microservice.svg)](https://github.com/flaconi/terraform-aws-microservice/releases)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)This Terraform module can create typical resources needed for most microservices.
## Examples
* [DynamoDB](examples/dynamodb/)
* [IAM](examples/iam/)
* [RDS](examples/rds/)
* [Redis](examples/redis/)
* [S3](examples/s3/)
* [SQS](examples/sqs/)## Usage
### DynamoDB Microservice
```hcl
module "microservice" {
source = "github.com/flaconi/terraform-aws-microservice"env = "playground"
name = "sample"# iam_user_enabled creates an user with keys, with `iam_role_enabled` the user can switch into the role created by `iam_role_enabled`
# For this example we're only creating a role with access to Dynamodb
iam_user_enabled = false# iam_role_enabled creates a role.
iam_role_enabled = true# Sample principal which can assume into this role
#iam_role_principals_arns = ["arn:aws:iam::12374567890:root"]iam_inline_policies = [
{
name = "s3-access"
statements = [
{
actions = ["s3:ListBucket"]
resources = ["arn:aws:s3:::test"]
},
{
actions = ["s3:get*"]
resources = ["arn:aws:s3:::test/*"]
}
]
},
{
name = "kinesis-full-access"
statements = [
{
actions = ["kinesis:*"]
resources = ["*"]
},
]
}
]# -------------------------------------------------------------------------------------------------
# DynamoDB
# This module re-uses an implementation of the module https://github.com/cloudposse/terraform-aws-dynamodb
# -------------------------------------------------------------------------------------------------
# `dynamodb_enabled` is set to true to enable Dynamodb
dynamodb_enabled = true
dynamodb_hash_key = "HashKey"
dynamodb_range_key = "RangeKey"# dynamodb_attributes = []
# dynamodb_global_secondary_index_map = []
# dynamodb_local_secondary_index_map = []tags = {
Name = "sample"
}
}
```### Redis
```hcl
module "ms_sample_redis" {
source = "github.com/flaconi/terraform-aws-microservice"env = "playground"
name = "sample"vpc_tag_filter = {
"Name"= "dev-vpc",
"env"= "dev"
}# redis_enabled - Set to false to prevent the module from creating any redis resources
redis_enabled = true# redis_cluster_id_override - Use only lowercase, numbers and -, _., only use when it needs to be different from `var.name`
# redis_cluster_id_override = ""# redis_subnet_tag_filter sets the datasource to match the subnet_id's where the RDS will be located
redis_subnet_tag_filter = {
"Name" = "dev-redis-subnet*"
"env" = "dev"
}
# redis_allowed_subnet_cidrs - List of CIDRs/subnets which should be able to connect to the Redis cluster
redis_allowed_subnet_cidrs = ["127.0.0.1/32"]# redis_shards_count - Number of shards
redis_shards_count = 1# Number of replica nodes in each node group
redis_replicas_count = 1# redis_port - Redis Port
# redis_port = 6379# redis_instance_type - Redis instance type
redis_instance_type = "cache.t2.micro"# redis_group_engine_version - Redis engine version to be used
# redis_group_engine_version = "5.0.0"# redis_group_parameter_group_name - Redis parameter group name"
# redis_group_parameter_group_name = "default.redis5.0.cluster.on"# redis_snapshot_window - Redis snapshot window
# redis_snapshot_window = "00:00-05:00"# redis_maintenance_window - Redis maintenance window
# redis_maintenance_window = "mon:10:00-mon:12:00"tags = {
Name = "sample"
}
```### RDS
```hcl
module "ms_sample_rds" {
source = "github.com/flaconi/terraform-aws-microservice"env = "playground"
name = "sample"vpc_tag_filter = {
"Name"= "dev-vpc",
"env"= "dev"
}# rds_subnet_tag_filter sets the datasource to match the subnet_id's where the RDS will be located
rds_subnet_tag_filter = {
"Name" = "dev-rds-subnet*"
"env" = "dev"
}# rds_enabled enables RDS
rds_enabled = true# rds_allowed_subnet_cidrs specifices the allowed subnets
#rds_allowed_subnet_cidrs = ["127.0.0.1/32"]# rds_admin_user sets the admin user, defaults to admin
# rds_admin_user = "demouser"
# rds_identifier_override overrides the name of the RDS instance, instead of `var.name`
# rds_identifier_override = "overridename"# rds_engine sets the RDS instance engine
# rds_engine = "mysql"# rds_major_engine_version RDS instance major engine version
# rds_major_engine_version = 5.7# rds_family Parameter Group"
# rds_family = "mysql5.7"# rds_node_type sets VM type which should be taken for nodes in the RDS instance
# rds_node_type = "db.t3.micro"# rds_multi_az sets multi-az
# rds_multi_az = true# rds_storage_type sets the RDS storage type
# rds_storage_type = "gp2"# rds_allocated_storage sets the RDS storage size in Gb
# rds_allocated_storage = "20"# rds_admin_pass sets the password in case `rds_admin_pass` is set to false
# rds_admin_pass = ""# rds_use_random_password switched on sets a random password for the rds instance
# rds_use_random_password = true# rds_parameter_group_name Parameter group for database
# rds_parameter_group_name = ""# rds_option_group_name option groups for database
# rds_option_group_name = ""# rds_port TCP port where DB accept connections
# rds_port = "3306"# rds_db_subnet_group_name Subnet groups for RDS instance
# rds_db_subnet_group_name = ""# rds_backup_retention_period Retention period for DB snapshots in days
rds_backup_retention_period = 14
# rds_deletion_protection Protect RDS instance from deletion
rds_deletion_protection = false
# rds_skip_final_snapshot Protect RDS instance from deletion
rds_skip_final_snapshot = true
# rds_storage_encrypted - enable encryption for RDS instance storage"
rds_storage_encrypted = true
# rds_kms_key_id - KMS key ARN for storage encryption, defaults to "" = RDS/KMS
rds_kms_key_id = ""
# rds_maintenance_window - Window of RDS Maintenance
rds_maintenance_window = "Mon:16:00-Mon:18:00"
# rds_backup_window - Backup Window
rds_backup_window = "03:00-06:00"tags = {
Name = "sample"
}
}
```## Resources
The following resources _CAN_ be created:
- 1 IAM Role
- 1 IAM User
- 1 DynamoDB
- 1 RDS Instance
- 1 Policy for accessing Dynamodb from the IAM Role
- 1 Redis cluster with required networking components## Providers
| Name | Version |
|------|---------|
| [aws](#provider\_aws) | ~> 5.40 |
| [null](#provider\_null) | ~> 3.2 |
| [random](#provider\_random) | ~> 3.6 |## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.3 |
| [aws](#requirement\_aws) | ~> 5.40 |
| [null](#requirement\_null) | ~> 3.2 |
| [random](#requirement\_random) | ~> 3.6 |## Required Inputs
The following input variables are required:
Description: The environment name to which this project will be applied against (e.g.: common, dev, prod, testing)
Type: `string`
Description: The name of the microservice, the dependent resources will be created with this name interpolated
Type: `string`
Description: tags to propagate to the resources
Type: `map(any)`
## Optional Inputs
The following input variables are optional (have default values):
### [rds\_copy\_tags\_to\_snapshot](#input\_rds\_copy\_tags\_to\_snapshot)
Description: On delete, copy all Instance tags to the final snapshot (if final\_snapshot\_identifier is specified)
Type: `bool`
Default: `true`
### [vpc\_tag\_filter](#input\_vpc\_tag\_filter)
Description: The map of tags to match the VPC tags with where the RDS or Redis or other networked AWS component of the Microservice resides
Type: `map(string)`
Default: `{}`
### [additional\_sg\_names\_for\_rds](#input\_additional\_sg\_names\_for\_rds)
Description: Name(s) of the additional VPC Security Group(s) to be attached to the RDS instance.
Type: `list(string)`
Default: `[]`
### [iam\_role\_enabled](#input\_iam\_role\_enabled)
Description: Set to false to prevent iam role creation
Type: `bool`
Default: `false`
### [iam\_role\_principals\_arns](#input\_iam\_role\_principals\_arns)
Description: List of ARNs to allow assuming the iam role. Could be AWS services or accounts, Kops nodes, IAM users or groups
Type: `list(string)`
Default: `[]`
### [iam\_user\_enabled](#input\_iam\_user\_enabled)
Description: Set to false to prevent iam user creation
Type: `bool`
Default: `false`
### [iam\_user\_path](#input\_iam\_user\_path)
Description: Set the path for the iam user
Type: `string`
Default: `"/"`
### [iam\_inline\_policies](#input\_iam\_inline\_policies)
Description: Policies applied to the assuming role
Type:
```hcl
list(object({
name = string
statements = list(object({
actions = list(string)
resources = list(string)
}))
}))
```Default: `[]`
### [aws\_route53\_record\_ttl](#input\_aws\_route53\_record\_ttl)
Description: Time to live for DNS record used by the endpoints
Type: `string`
Default: `"60"`
### [aws\_route53\_zone\_endpoints\_enabled](#input\_aws\_route53\_zone\_endpoints\_enabled)
Description: To enable the lookup of the domain used for RDS/Redis private endpoint
Type: `bool`
Default: `false`
### [aws\_route53\_zone\_public\_endpoint\_enabled](#input\_aws\_route53\_zone\_public\_endpoint\_enabled)
Description: To enable the lookup of the domain used for RDS/Redis public endpoint, we need to set this to true
Type: `bool`
Default: `true`
### [aws\_route53\_zone\_private\_endpoint\_enabled](#input\_aws\_route53\_zone\_private\_endpoint\_enabled)
Description: To enable the lookup of the domain used for RDS/Redis private endpoint, we need to set this to true
Type: `bool`
Default: `true`
### [endpoints\_domain](#input\_endpoints\_domain)
Description: The domain / route53 zone we need to add a record with
Type: `string`
Default: `""`
### [aws\_route53\_rds\_subdomain\_override](#input\_aws\_route53\_rds\_subdomain\_override)
Description: To set a custom RDS DNS record subdomain instead of the RDS instance ID
Type: `string`
Default: `""`
### [dynamodb\_enabled](#input\_dynamodb\_enabled)
Description: Set to false to prevent the module from creating any dynamodb resources
Type: `bool`
Default: `false`
### [dynamodb\_billing](#input\_dynamodb\_billing)
Description: DynamoDB Billing mode. Can be PROVISIONED or PAY\_PER\_REQUEST
Type: `string`
Default: `"PROVISIONED"`
### [dynamodb\_table\_class](#input\_dynamodb\_table\_class)
Description: Storage class of the table
Type: `string`
Default: `"STANDARD"`
### [dynamodb\_name\_override](#input\_dynamodb\_name\_override)
Description: define dynamodb\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [dynamodb\_hash\_key](#input\_dynamodb\_hash\_key)
Description: DynamoDB table Hash Key
Type: `string`
Default: `""`
### [dynamodb\_hash\_key\_type](#input\_dynamodb\_hash\_key\_type)
Description: Hash Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb\_range\_key](#input\_dynamodb\_range\_key)
Description: DynamoDB table Range Key
Type: `string`
Default: `""`
### [dynamodb\_range\_key\_type](#input\_dynamodb\_range\_key\_type)
Description: Range Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb\_attributes](#input\_dynamodb\_attributes)
Description: Additional DynamoDB attributes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
type = string
}))
```Default: `[]`
### [dynamodb\_global\_secondary\_index\_map](#input\_dynamodb\_global\_secondary\_index\_map)
Description: Additional global secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
hash_key = string
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
read_capacity = number
write_capacity = number
}))
```Default: `[]`
### [dynamodb\_local\_secondary\_index\_map](#input\_dynamodb\_local\_secondary\_index\_map)
Description: Additional local secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
}))
```Default: `[]`
### [dynamodb\_autoscale\_write\_target](#input\_dynamodb\_autoscale\_write\_target)
Description: The target value for DynamoDB write autoscaling
Type: `number`
Default: `50`
### [dynamodb\_autoscale\_read\_target](#input\_dynamodb\_autoscale\_read\_target)
Description: The target value for DynamoDB read autoscaling
Type: `number`
Default: `50`
### [dynamodb\_autoscale\_min\_read\_capacity](#input\_dynamodb\_autoscale\_min\_read\_capacity)
Description: DynamoDB autoscaling min read capacity
Type: `number`
Default: `5`
### [dynamodb\_autoscale\_max\_read\_capacity](#input\_dynamodb\_autoscale\_max\_read\_capacity)
Description: DynamoDB autoscaling max read capacity
Type: `number`
Default: `20`
### [dynamodb\_autoscale\_min\_write\_capacity](#input\_dynamodb\_autoscale\_min\_write\_capacity)
Description: DynamoDB autoscaling min write capacity
Type: `number`
Default: `5`
### [dynamodb\_autoscale\_max\_write\_capacity](#input\_dynamodb\_autoscale\_max\_write\_capacity)
Description: DynamoDB autoscaling max write capacity
Type: `number`
Default: `20`
### [dynamodb\_enable\_autoscaler](#input\_dynamodb\_enable\_autoscaler)
Description: Flag to enable/disable DynamoDB autoscaling
Type: `bool`
Default: `true`
### [dynamodb2\_enabled](#input\_dynamodb2\_enabled)
Description: Set to false to prevent the module from creating any dynamodb resources
Type: `bool`
Default: `false`
### [dynamodb2\_billing](#input\_dynamodb2\_billing)
Description: DynamoDB Billing mode. Can be PROVISIONED or PAY\_PER\_REQUEST
Type: `string`
Default: `"PROVISIONED"`
### [dynamodb2\_table\_class](#input\_dynamodb2\_table\_class)
Description: Storage class of the table
Type: `string`
Default: `"STANDARD"`
### [dynamodb2\_name\_override](#input\_dynamodb2\_name\_override)
Description: define dynamodb2\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [dynamodb2\_hash\_key](#input\_dynamodb2\_hash\_key)
Description: DynamoDB table Hash Key
Type: `string`
Default: `""`
### [dynamodb2\_hash\_key\_type](#input\_dynamodb2\_hash\_key\_type)
Description: Hash Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb2\_range\_key](#input\_dynamodb2\_range\_key)
Description: DynamoDB table Range Key
Type: `string`
Default: `""`
### [dynamodb2\_range\_key\_type](#input\_dynamodb2\_range\_key\_type)
Description: Range Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb2\_attributes](#input\_dynamodb2\_attributes)
Description: Additional DynamoDB attributes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
type = string
}))
```Default: `[]`
### [dynamodb2\_global\_secondary\_index\_map](#input\_dynamodb2\_global\_secondary\_index\_map)
Description: Additional global secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
hash_key = string
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
read_capacity = number
write_capacity = number
}))
```Default: `[]`
### [dynamodb2\_local\_secondary\_index\_map](#input\_dynamodb2\_local\_secondary\_index\_map)
Description: Additional local secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
}))
```Default: `[]`
### [dynamodb2\_autoscale\_write\_target](#input\_dynamodb2\_autoscale\_write\_target)
Description: The target value for DynamoDB write autoscaling
Type: `number`
Default: `50`
### [dynamodb2\_autoscale\_read\_target](#input\_dynamodb2\_autoscale\_read\_target)
Description: The target value for DynamoDB read autoscaling
Type: `number`
Default: `50`
### [dynamodb2\_autoscale\_min\_read\_capacity](#input\_dynamodb2\_autoscale\_min\_read\_capacity)
Description: DynamoDB autoscaling min read capacity
Type: `number`
Default: `5`
### [dynamodb2\_autoscale\_max\_read\_capacity](#input\_dynamodb2\_autoscale\_max\_read\_capacity)
Description: DynamoDB autoscaling max read capacity
Type: `number`
Default: `20`
### [dynamodb2\_autoscale\_min\_write\_capacity](#input\_dynamodb2\_autoscale\_min\_write\_capacity)
Description: DynamoDB autoscaling min write capacity
Type: `number`
Default: `5`
### [dynamodb2\_autoscale\_max\_write\_capacity](#input\_dynamodb2\_autoscale\_max\_write\_capacity)
Description: DynamoDB autoscaling max write capacity
Type: `number`
Default: `20`
### [dynamodb2\_enable\_autoscaler](#input\_dynamodb2\_enable\_autoscaler)
Description: Flag to enable/disable DynamoDB autoscaling
Type: `bool`
Default: `true`
### [dynamodb3\_enabled](#input\_dynamodb3\_enabled)
Description: Set to false to prevent the module from creating any dynamodb resources
Type: `bool`
Default: `false`
### [dynamodb3\_billing](#input\_dynamodb3\_billing)
Description: DynamoDB Billing mode. Can be PROVISIONED or PAY\_PER\_REQUEST
Type: `string`
Default: `"PROVISIONED"`
### [dynamodb3\_table\_class](#input\_dynamodb3\_table\_class)
Description: Storage class of the table
Type: `string`
Default: `"STANDARD"`
### [dynamodb3\_name\_override](#input\_dynamodb3\_name\_override)
Description: define dynamodb3\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [dynamodb3\_hash\_key](#input\_dynamodb3\_hash\_key)
Description: DynamoDB table Hash Key
Type: `string`
Default: `""`
### [dynamodb3\_hash\_key\_type](#input\_dynamodb3\_hash\_key\_type)
Description: Hash Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb3\_range\_key](#input\_dynamodb3\_range\_key)
Description: DynamoDB table Range Key
Type: `string`
Default: `""`
### [dynamodb3\_range\_key\_type](#input\_dynamodb3\_range\_key\_type)
Description: Range Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb3\_attributes](#input\_dynamodb3\_attributes)
Description: Additional DynamoDB attributes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
type = string
}))
```Default: `[]`
### [dynamodb3\_global\_secondary\_index\_map](#input\_dynamodb3\_global\_secondary\_index\_map)
Description: Additional global secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
hash_key = string
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
read_capacity = number
write_capacity = number
}))
```Default: `[]`
### [dynamodb3\_local\_secondary\_index\_map](#input\_dynamodb3\_local\_secondary\_index\_map)
Description: Additional local secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
}))
```Default: `[]`
### [dynamodb3\_autoscale\_write\_target](#input\_dynamodb3\_autoscale\_write\_target)
Description: The target value for DynamoDB write autoscaling
Type: `number`
Default: `50`
### [dynamodb3\_autoscale\_read\_target](#input\_dynamodb3\_autoscale\_read\_target)
Description: The target value for DynamoDB read autoscaling
Type: `number`
Default: `50`
### [dynamodb3\_autoscale\_min\_read\_capacity](#input\_dynamodb3\_autoscale\_min\_read\_capacity)
Description: DynamoDB autoscaling min read capacity
Type: `number`
Default: `5`
### [dynamodb3\_autoscale\_max\_read\_capacity](#input\_dynamodb3\_autoscale\_max\_read\_capacity)
Description: DynamoDB autoscaling max read capacity
Type: `number`
Default: `20`
### [dynamodb3\_autoscale\_min\_write\_capacity](#input\_dynamodb3\_autoscale\_min\_write\_capacity)
Description: DynamoDB autoscaling min write capacity
Type: `number`
Default: `5`
### [dynamodb3\_autoscale\_max\_write\_capacity](#input\_dynamodb3\_autoscale\_max\_write\_capacity)
Description: DynamoDB autoscaling max write capacity
Type: `number`
Default: `20`
### [dynamodb3\_enable\_autoscaler](#input\_dynamodb3\_enable\_autoscaler)
Description: Flag to enable/disable DynamoDB autoscaling
Type: `bool`
Default: `true`
### [dynamodb4\_enabled](#input\_dynamodb4\_enabled)
Description: Set to false to prevent the module from creating any dynamodb resources
Type: `bool`
Default: `false`
### [dynamodb4\_billing](#input\_dynamodb4\_billing)
Description: DynamoDB Billing mode. Can be PROVISIONED or PAY\_PER\_REQUEST
Type: `string`
Default: `"PROVISIONED"`
### [dynamodb4\_table\_class](#input\_dynamodb4\_table\_class)
Description: Storage class of the table
Type: `string`
Default: `"STANDARD"`
### [dynamodb4\_name\_override](#input\_dynamodb4\_name\_override)
Description: define dynamodb4\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [dynamodb4\_hash\_key](#input\_dynamodb4\_hash\_key)
Description: DynamoDB table Hash Key
Type: `string`
Default: `""`
### [dynamodb4\_hash\_key\_type](#input\_dynamodb4\_hash\_key\_type)
Description: Hash Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb4\_range\_key](#input\_dynamodb4\_range\_key)
Description: DynamoDB table Range Key
Type: `string`
Default: `""`
### [dynamodb4\_range\_key\_type](#input\_dynamodb4\_range\_key\_type)
Description: Range Key type, which must be a scalar type: `S`, `N`, or `B` for (S)tring, (N)umber or (B)inary data
Type: `string`
Default: `"S"`
### [dynamodb4\_attributes](#input\_dynamodb4\_attributes)
Description: Additional DynamoDB attributes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
type = string
}))
```Default: `[]`
### [dynamodb4\_global\_secondary\_index\_map](#input\_dynamodb4\_global\_secondary\_index\_map)
Description: Additional global secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
hash_key = string
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
read_capacity = number
write_capacity = number
}))
```Default: `[]`
### [dynamodb4\_local\_secondary\_index\_map](#input\_dynamodb4\_local\_secondary\_index\_map)
Description: Additional local secondary indexes in the form of a list of mapped values
Type:
```hcl
list(object({
name = string
non_key_attributes = list(string)
projection_type = string
range_key = string
}))
```Default: `[]`
### [dynamodb4\_autoscale\_write\_target](#input\_dynamodb4\_autoscale\_write\_target)
Description: The target value for DynamoDB write autoscaling
Type: `number`
Default: `50`
### [dynamodb4\_autoscale\_read\_target](#input\_dynamodb4\_autoscale\_read\_target)
Description: The target value for DynamoDB read autoscaling
Type: `number`
Default: `50`
### [dynamodb4\_autoscale\_min\_read\_capacity](#input\_dynamodb4\_autoscale\_min\_read\_capacity)
Description: DynamoDB autoscaling min read capacity
Type: `number`
Default: `5`
### [dynamodb4\_autoscale\_max\_read\_capacity](#input\_dynamodb4\_autoscale\_max\_read\_capacity)
Description: DynamoDB autoscaling max read capacity
Type: `number`
Default: `20`
### [dynamodb4\_autoscale\_min\_write\_capacity](#input\_dynamodb4\_autoscale\_min\_write\_capacity)
Description: DynamoDB autoscaling min write capacity
Type: `number`
Default: `5`
### [dynamodb4\_autoscale\_max\_write\_capacity](#input\_dynamodb4\_autoscale\_max\_write\_capacity)
Description: DynamoDB autoscaling max write capacity
Type: `number`
Default: `20`
### [dynamodb4\_enable\_autoscaler](#input\_dynamodb4\_enable\_autoscaler)
Description: Flag to enable/disable DynamoDB autoscaling
Type: `bool`
Default: `true`
### [redis\_enabled](#input\_redis\_enabled)
Description: Set to false to prevent the module from creating any redis resources
Type: `bool`
Default: `false`
### [redis\_cluster\_id\_override](#input\_redis\_cluster\_id\_override)
Description: Redis cluster ID. Use only lowercase, numbers and -, \_., only use when it needs to be different from var.name
Type: `string`
Default: `""`
### [redis\_port](#input\_redis\_port)
Description: Redis port
Type: `string`
Default: `"6379"`
### [redis\_instance\_type](#input\_redis\_instance\_type)
Description: Redis instance type
Type: `string`
Default: `"cache.m4.large"`
### [redis\_shards\_count](#input\_redis\_shards\_count)
Description: Number of shards
Type: `number`
Default: `1`
### [redis\_group\_engine\_version](#input\_redis\_group\_engine\_version)
Description: Redis engine version to be used
Type: `string`
Default: `"5.0.0"`
### [redis\_group\_parameter\_group\_name](#input\_redis\_group\_parameter\_group\_name)
Description: Redis parameter group name
Type: `string`
Default: `"default.redis5.0.cluster.on"`
### [redis\_snapshot\_window](#input\_redis\_snapshot\_window)
Description: Redis snapshot window
Type: `string`
Default: `"00:00-05:00"`
### [redis\_maintenance\_window](#input\_redis\_maintenance\_window)
Description: Redis snapshot window
Type: `string`
Default: `"mon:10:00-mon:12:00"`
### [redis\_auto\_minor\_version\_upgrade](#input\_redis\_auto\_minor\_version\_upgrade)
Description: Redis allow auto minor version upgrade
Type: `bool`
Default: `true`
### [redis\_at\_rest\_encryption\_enabled](#input\_redis\_at\_rest\_encryption\_enabled)
Description: Redis encrypt storage
Type: `bool`
Default: `false`
### [redis\_transit\_encryption\_enabled](#input\_redis\_transit\_encryption\_enabled)
Description: Redis encrypt transit TLS
Type: `bool`
Default: `false`
### [redis\_replicas\_count](#input\_redis\_replicas\_count)
Description: Number of replica nodes in each node group
Type: `number`
Default: `1`
### [redis\_allowed\_subnet\_cidrs](#input\_redis\_allowed\_subnet\_cidrs)
Description: List of CIDRs/subnets which should be able to connect to the Redis cluster
Type: `list(string)`
Default:
```json
[
"127.0.0.1/32"
]
```### [redis\_subnet\_tag\_filter](#input\_redis\_subnet\_tag\_filter)
Description: The Map to filter the subnets of the VPC where the Redis component of the Microservice resides
Type: `map(string)`
Default: `{}`
### [redis\_subnet\_cidr\_block\_filter](#input\_redis\_subnet\_cidr\_block\_filter)
Description: List of CIDR blocks to filter subnets of the VPC where the Redis component of the Microservice resides
Type: `list(string)`
Default: `[]`
### [redis\_apply\_immediately](#input\_redis\_apply\_immediately)
Description: Specifies whether any modifications are applied immediately, or during the next maintenance window.
Type: `bool`
Default: `false`
### [redis\_multi\_az\_enabled](#input\_redis\_multi\_az\_enabled)
Description: Specifies whether to enable Multi-AZ Support for the replication group. If true, automatic\_failover\_enabled must also be enabled.
Type: `bool`
Default: `false`
### [rds\_apply\_immediately](#input\_rds\_apply\_immediately)
Description: Specifies whether any database modifications are applied immediately, or during the next maintenance window
Type: `bool`
Default: `false`
### [rds\_enabled](#input\_rds\_enabled)
Description: Set to false to prevent the module from creating any rds resources
Type: `bool`
Default: `false`
### [rds\_enable\_s3\_dump](#input\_rds\_enable\_s3\_dump)
Description: Set to true to allow the module to create RDS DB dump resources.
Type: `bool`
Default: `false`
### [rds\_s3\_dump\_name\_prefix](#input\_rds\_s3\_dump\_name\_prefix)
Description: The S3 name prefix
Type: `string`
Default: `""`
### [rds\_s3\_dump\_allowed\_ips](#input\_rds\_s3\_dump\_allowed\_ips)
Description: List of CIDRs allowed to access data on the S3 bucket for RDS DB dumps
Type: `list(string)`
Default: `[]`
### [rds\_s3\_kms\_dump\_key\_additional\_role\_arns](#input\_rds\_s3\_kms\_dump\_key\_additional\_role\_arns)
Description: List of IAM role ARNs that are able to access the KMS key used for encrypting RDS dump files in the S3 bucket
Type: `list(string)`
Default: `[]`
### [rds\_s3\_dump\_role\_arn](#input\_rds\_s3\_dump\_role\_arn)
Description: IAM role ARN to be associated with the RDS instance, for being able to access the S3 dump bucket(s). If this is set, the module will not create the role nor its policy but instead will directly associate the RDS instance with passed role. If this is not set, the module will handle the creation of the IAM policy and the role itself.
Type: `string`
Default: `""`
### [rds\_s3\_dump\_block\_public\_access](#input\_rds\_s3\_dump\_block\_public\_access)
Description: Object that defines which public access should be blocked
Type:
```hcl
object({
block_public_acls = bool
block_public_policy = bool
ignore_public_acls = bool
restrict_public_buckets = bool
})
```Default:
```json
{
"block_public_acls": true,
"block_public_policy": true,
"ignore_public_acls": true,
"restrict_public_buckets": true
}
```### [rds\_s3\_dump\_lifecycle\_rules](#input\_rds\_s3\_dump\_lifecycle\_rules)
Description: RDS S3 Dump Lifecycle rules
Type:
```hcl
list(object({
id = string
status = optional(string, "Enabled")
prefix = string
expiration = optional(list(object({
days = optional(number)
date = optional(string)
expired_object_delete_marker = optional(bool)
})), [])
transition = optional(list(object({
days = optional(number)
date = optional(string)
storage_class = string
})), [])
noncurrent_version_expiration = optional(list(object({
noncurrent_days = optional(number)
newer_noncurrent_versions = optional(string)
})), [])
noncurrent_version_transition = optional(list(object({
noncurrent_days = optional(number)
newer_noncurrent_versions = optional(string)
storage_class = string
})), [])
}))
```Default: `[]`
### [rds\_identifier\_override](#input\_rds\_identifier\_override)
Description: RDS identifier override. Use only lowercase, numbers and -, \_., only use when it needs to be different from var.name
Type: `string`
Default: `""`
### [rds\_dbname\_override](#input\_rds\_dbname\_override)
Description: RDS DB Name override in case the identifier is not wished as db name
Type: `string`
Default: `""`
### [rds\_allowed\_subnet\_cidrs](#input\_rds\_allowed\_subnet\_cidrs)
Description: List of CIDRs/subnets which should be able to connect to the RDS instance
Type: `list(string)`
Default:
```json
[
"127.0.0.1/32"
]
```### [rds\_timeouts](#input\_rds\_timeouts)
Description: (Optional) Updated Terraform resource management timeouts. Applies to `aws_db_instance` in particular to permit resource management times
Type: `map(string)`
Default:
```json
{
"create": "40m",
"delete": "40m",
"update": "80m"
}
```### [rds\_option\_group\_timeouts](#input\_rds\_option\_group\_timeouts)
Description: Define maximum timeout for deletion of `aws_db_option_group` resource
Type: `map(string)`
Default:
```json
{
"delete": "15m"
}
```### [rds\_engine](#input\_rds\_engine)
Description: RDS instance engine
Type: `string`
Default: `"mysql"`
### [rds\_major\_engine\_version](#input\_rds\_major\_engine\_version)
Description: RDS instance major engine version
Type: `string`
Default: `"5.7"`
### [rds\_auto\_minor\_version\_upgrade](#input\_rds\_auto\_minor\_version\_upgrade)
Description: Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window
Type: `bool`
Default: `false`
### [rds\_engine\_version](#input\_rds\_engine\_version)
Description: RDS instance engine version
Type: `string`
Default: `"5.7.19"`
### [rds\_family](#input\_rds\_family)
Description: Parameter Group
Type: `string`
Default: `"mysql5.7"`
### [rds\_node\_type](#input\_rds\_node\_type)
Description: VM type which should be taken for nodes in the RDS instance
Type: `string`
Default: `"db.t3.micro"`
### [rds\_multi\_az](#input\_rds\_multi\_az)
Description: Replication settings
Type: `bool`
Default: `true`
### [rds\_storage\_type](#input\_rds\_storage\_type)
Description: Storage type
Type: `string`
Default: `"gp3"`
### [rds\_allocated\_storage](#input\_rds\_allocated\_storage)
Description: Storage size in Gb
Type: `string`
Default: `20`
### [rds\_max\_allocated\_storage](#input\_rds\_max\_allocated\_storage)
Description: Specifies the value for Storage Autoscaling
Type: `number`
Default: `0`
### [rds\_iops](#input\_rds\_iops)
Description: The amount of provisioned IOPS. Setting this implies a storage\_type of 'io1'
Type: `number`
Default: `0`
### [rds\_admin\_user](#input\_rds\_admin\_user)
Description: Admin user name, should default when empty
Type: `string`
Default: `"admin"`
### [rds\_admin\_pass](#input\_rds\_admin\_pass)
Description: Admin user password. At least 8 characters.
Type: `string`
Default: `""`
### [rds\_use\_random\_password](#input\_rds\_use\_random\_password)
Description: with rds\_use\_random\_password set to true the RDS database will be configured with a random password
Type: `bool`
Default: `true`
### [rds\_iam\_database\_authentication\_enabled](#input\_rds\_iam\_database\_authentication\_enabled)
Description: Enable / disable IAM database authentication
Type: `string`
Default: `"false"`
### [rds\_parameter\_group\_name](#input\_rds\_parameter\_group\_name)
Description: Parameter group for database
Type: `string`
Default: `""`
### [rds\_parameters](#input\_rds\_parameters)
Description: List of RDS parameters to apply
Type: `list(map(string))`
Default: `[]`
### [rds\_option\_group\_name](#input\_rds\_option\_group\_name)
Description: Option groups for database
Type: `string`
Default: `""`
### [rds\_options](#input\_rds\_options)
Description: A list of RDS Options to apply
Type: `any`
Default: `[]`
### [rds\_ca\_cert\_identifier](#input\_rds\_ca\_cert\_identifier)
Description: The identifier of the CA certificate for the DB instance.
Type: `string`
Default: `"rds-ca-2019"`
### [rds\_license\_model](#input\_rds\_license\_model)
Description: License model information for this DB instance. Optional, but required for some DB engines, i.e. Oracle SE1
Type: `string`
Default: `""`
### [rds\_enabled\_cloudwatch\_logs\_exports](#input\_rds\_enabled\_cloudwatch\_logs\_exports)
Description: List of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine): alert, audit, error, general, listener, slowquery, trace, postgresql (PostgreSQL), upgrade (PostgreSQL).
Type: `list(string)`
Default: `[]`
### [rds\_performance\_insights\_enabled](#input\_rds\_performance\_insights\_enabled)
Description: Specifies whether Performance Insights are enabled
Type: `bool`
Default: `false`
### [rds\_performance\_insights\_retention\_period](#input\_rds\_performance\_insights\_retention\_period)
Description: The amount of time in days to retain Performance Insights data. Either 7 (7 days) or 731 (2 years).
Type: `number`
Default: `7`
### [rds\_enhanced\_monitoring\_interval](#input\_rds\_enhanced\_monitoring\_interval)
Description: The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
Type: `number`
Default: `0`
### [rds\_db\_subnet\_group\_description](#input\_rds\_db\_subnet\_group\_description)
Description: Description of the DB subnet group to create
Type: `string`
Default: `""`
### [rds\_parameter\_group\_description](#input\_rds\_parameter\_group\_description)
Description: Description of the DB parameter group to create
Type: `string`
Default: `""`
### [rds\_option\_group\_description](#input\_rds\_option\_group\_description)
Description: The description of the option group
Type: `string`
Default: `""`
### [rds\_option\_group\_use\_name\_prefix](#input\_rds\_option\_group\_use\_name\_prefix)
Description: Determines whether to use `option_group_name` as is or create a unique name beginning with the `option_group_name` as the prefix
Type: `bool`
Default: `true`
### [rds\_port](#input\_rds\_port)
Description: TCP port where DB accept connections
Type: `string`
Default: `"3306"`
### [rds\_db\_subnet\_group\_name](#input\_rds\_db\_subnet\_group\_name)
Description: Subnet groups for RDS instance
Type: `string`
Default: `""`
### [rds\_subnet\_tag\_filter](#input\_rds\_subnet\_tag\_filter)
Description: The Map to filter the subnets of the VPC where the RDS component of the Microservice resides
Type: `map(string)`
Default: `{}`
### [rds\_subnet\_cidr\_block\_filter](#input\_rds\_subnet\_cidr\_block\_filter)
Description: List of CIDR blocks to filter subnets of the VPC where the RDS component of the Microservice resides
Type: `list(string)`
Default: `[]`
### [rds\_final\_snapshot\_identifier\_override](#input\_rds\_final\_snapshot\_identifier\_override)
Description: RDS final snapshot identifier override.
Type: `string`
Default: `""`
### [rds\_db\_snapshot\_name](#input\_rds\_db\_snapshot\_name)
Description: Specifies whether or not to create this database from a snapshot.
Type: `string`
Default: `""`
### [rds\_backup\_retention\_period](#input\_rds\_backup\_retention\_period)
Description: Retention period for DB snapshots in days
Type: `string`
Default: `14`
### [rds\_deletion\_protection](#input\_rds\_deletion\_protection)
Description: Protect RDS instance from deletion
Type: `bool`
Default: `true`
### [rds\_skip\_final\_snapshot](#input\_rds\_skip\_final\_snapshot)
Description: Skip final snapshot on deletion
Type: `bool`
Default: `false`
### [rds\_storage\_encrypted](#input\_rds\_storage\_encrypted)
Description: Enable encryption for RDS instance storage
Type: `bool`
Default: `true`
### [rds\_kms\_key\_id](#input\_rds\_kms\_key\_id)
Description: KMS key ARN for storage encryption
Type: `string`
Default: `""`
### [rds\_maintenance\_window](#input\_rds\_maintenance\_window)
Description: Window of RDS Maintenance
Type: `string`
Default: `"Mon:16:00-Mon:18:00"`
### [rds\_backup\_window](#input\_rds\_backup\_window)
Description: Backup window
Type: `string`
Default: `"03:00-06:00"`
### [s3\_enabled](#input\_s3\_enabled)
Description: S3 bucket creation and iam policy creation enabled
Type: `bool`
Default: `false`
### [s3\_identifier](#input\_s3\_identifier)
Description: The S3 Bucket name
Type: `string`
Default: `""`
### [s3\_force\_destroy](#input\_s3\_force\_destroy)
Description: S3 Force destroy
Type: `bool`
Default: `true`
### [s3\_versioning\_enabled](#input\_s3\_versioning\_enabled)
Description: S3 Versioning enabled
Type: `string`
Default: `"Enabled"`
### [s3\_lifecycle\_rules](#input\_s3\_lifecycle\_rules)
Description: S3 Lifecycle rules
Type:
```hcl
list(object({
id = string
status = optional(string, "Enabled")
prefix = string
expiration = optional(list(object({
days = optional(number)
date = optional(string)
expired_object_delete_marker = optional(bool)
})), [])
transition = optional(list(object({
days = optional(number)
date = optional(string)
storage_class = string
})), [])
noncurrent_version_expiration = optional(list(object({
noncurrent_days = optional(number)
newer_noncurrent_versions = optional(string)
})), [])
noncurrent_version_transition = optional(list(object({
noncurrent_days = optional(number)
newer_noncurrent_versions = optional(string)
storage_class = string
})), [])
}))
```Default: `[]`
### [sqs1\_enabled](#input\_sqs1\_enabled)
Description: Set to false to prevent the module from creating any sqs resources
Type: `bool`
Default: `false`
### [sqs1\_name\_override](#input\_sqs1\_name\_override)
Description: define sqs1\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [sqs1\_delay\_seconds](#input\_sqs1\_delay\_seconds)
Description: define sqs1\_delay\_seconds
Type: `number`
Default: `0`
### [sqs1\_fifo\_queue](#input\_sqs1\_fifo\_queue)
Description: Boolean designating a FIFO queue
Type: `bool`
Default: `false`
### [sqs1\_max\_message\_size](#input\_sqs1\_max\_message\_size)
Description: The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days)
Type: `number`
Default: `262144`
### [sqs1\_receive\_wait\_time\_seconds](#input\_sqs1\_receive\_wait\_time\_seconds)
Description: The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds)
Type: `number`
Default: `0`
### [sqs1\_redrive\_policy](#input\_sqs1\_redrive\_policy)
Description: The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5")
Type: `string`
Default: `""`
### [sqs1\_visibility\_timeout\_seconds](#input\_sqs1\_visibility\_timeout\_seconds)
Description: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours)
Type: `number`
Default: `30`
### [sqs1\_dlq\_enabled](#input\_sqs1\_dlq\_enabled)
Description: Set to false to prevent the module from creating any sqs-dql resources
Type: `bool`
Default: `false`
### [sqs2\_enabled](#input\_sqs2\_enabled)
Description: Set to false to prevent the module from creating any sqs resources
Type: `bool`
Default: `false`
### [sqs2\_name\_override](#input\_sqs2\_name\_override)
Description: define sqs2\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [sqs2\_delay\_seconds](#input\_sqs2\_delay\_seconds)
Description: define sqs2\_delay\_seconds
Type: `number`
Default: `0`
### [sqs2\_fifo\_queue](#input\_sqs2\_fifo\_queue)
Description: Boolean designating a FIFO queue
Type: `bool`
Default: `false`
### [sqs2\_max\_message\_size](#input\_sqs2\_max\_message\_size)
Description: The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days)
Type: `number`
Default: `262144`
### [sqs2\_receive\_wait\_time\_seconds](#input\_sqs2\_receive\_wait\_time\_seconds)
Description: The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds)
Type: `number`
Default: `0`
### [sqs2\_redrive\_policy](#input\_sqs2\_redrive\_policy)
Description: The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5")
Type: `string`
Default: `""`
### [sqs2\_visibility\_timeout\_seconds](#input\_sqs2\_visibility\_timeout\_seconds)
Description: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours)
Type: `number`
Default: `30`
### [sqs2\_dlq\_enabled](#input\_sqs2\_dlq\_enabled)
Description: Set to false to prevent the module from creating any sqs-dql resources
Type: `bool`
Default: `false`
### [sqs3\_enabled](#input\_sqs3\_enabled)
Description: Set to false to prevent the module from creating any sqs resources
Type: `bool`
Default: `false`
### [sqs3\_name\_override](#input\_sqs3\_name\_override)
Description: define sqs3\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [sqs3\_delay\_seconds](#input\_sqs3\_delay\_seconds)
Description: define sqs3\_delay\_seconds
Type: `number`
Default: `0`
### [sqs3\_fifo\_queue](#input\_sqs3\_fifo\_queue)
Description: Boolean designating a FIFO queue
Type: `bool`
Default: `false`
### [sqs3\_max\_message\_size](#input\_sqs3\_max\_message\_size)
Description: The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days)
Type: `number`
Default: `262144`
### [sqs3\_receive\_wait\_time\_seconds](#input\_sqs3\_receive\_wait\_time\_seconds)
Description: The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds)
Type: `number`
Default: `0`
### [sqs3\_redrive\_policy](#input\_sqs3\_redrive\_policy)
Description: The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5")
Type: `string`
Default: `""`
### [sqs3\_visibility\_timeout\_seconds](#input\_sqs3\_visibility\_timeout\_seconds)
Description: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours)
Type: `number`
Default: `30`
### [sqs3\_dlq\_enabled](#input\_sqs3\_dlq\_enabled)
Description: Set to false to prevent the module from creating any sqs-dql resources
Type: `bool`
Default: `false`
### [sqs4\_enabled](#input\_sqs4\_enabled)
Description: Set to false to prevent the module from creating any sqs resources
Type: `bool`
Default: `false`
### [sqs4\_name\_override](#input\_sqs4\_name\_override)
Description: define sqs4\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [sqs4\_delay\_seconds](#input\_sqs4\_delay\_seconds)
Description: define sqs4\_delay\_seconds
Type: `number`
Default: `0`
### [sqs4\_fifo\_queue](#input\_sqs4\_fifo\_queue)
Description: Boolean designating a FIFO queue
Type: `bool`
Default: `false`
### [sqs4\_max\_message\_size](#input\_sqs4\_max\_message\_size)
Description: The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days)
Type: `number`
Default: `262144`
### [sqs4\_receive\_wait\_time\_seconds](#input\_sqs4\_receive\_wait\_time\_seconds)
Description: The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds)
Type: `number`
Default: `0`
### [sqs4\_redrive\_policy](#input\_sqs4\_redrive\_policy)
Description: The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5")
Type: `string`
Default: `""`
### [sqs4\_visibility\_timeout\_seconds](#input\_sqs4\_visibility\_timeout\_seconds)
Description: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours)
Type: `number`
Default: `30`
### [sqs4\_dlq\_enabled](#input\_sqs4\_dlq\_enabled)
Description: Set to false to prevent the module from creating any sqs-dql resources
Type: `bool`
Default: `false`
### [sqs5\_enabled](#input\_sqs5\_enabled)
Description: Set to false to prevent the module from creating any sqs resources
Type: `bool`
Default: `false`
### [sqs5\_name\_override](#input\_sqs5\_name\_override)
Description: define sqs5\_name\_override to set a name differnt from var.name
Type: `string`
Default: `""`
### [sqs5\_delay\_seconds](#input\_sqs5\_delay\_seconds)
Description: define sqs5\_delay\_seconds
Type: `number`
Default: `0`
### [sqs5\_fifo\_queue](#input\_sqs5\_fifo\_queue)
Description: Boolean designating a FIFO queue
Type: `bool`
Default: `false`
### [sqs5\_max\_message\_size](#input\_sqs5\_max\_message\_size)
Description: The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days)
Type: `number`
Default: `262144`
### [sqs5\_receive\_wait\_time\_seconds](#input\_sqs5\_receive\_wait\_time\_seconds)
Description: The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds)
Type: `number`
Default: `0`
### [sqs5\_redrive\_policy](#input\_sqs5\_redrive\_policy)
Description: The JSON policy to set up the Dead Letter Queue, see AWS docs. Note: when specifying maxReceiveCount, you must specify it as an integer (5), and not a string ("5")
Type: `string`
Default: `""`
### [sqs5\_visibility\_timeout\_seconds](#input\_sqs5\_visibility\_timeout\_seconds)
Description: The visibility timeout for the queue. An integer from 0 to 43200 (12 hours)
Type: `number`
Default: `30`
### [sqs5\_dlq\_enabled](#input\_sqs5\_dlq\_enabled)
Description: Set to false to prevent the module from creating any sqs-dql resources
Type: `bool`
Default: `false`
## Outputs
| Name | Description |
|------|-------------|
| [dynamodb2\_global\_secondary\_index\_names](#output\_dynamodb2\_global\_secondary\_index\_names) | DynamoDB secondary index names |
| [dynamodb2\_local\_secondary\_index\_names](#output\_dynamodb2\_local\_secondary\_index\_names) | DynamoDB local index names |
| [dynamodb2\_table\_arn](#output\_dynamodb2\_table\_arn) | DynamoDB table ARN |
| [dynamodb2\_table\_id](#output\_dynamodb2\_table\_id) | DynamoDB table ID |
| [dynamodb2\_table\_name](#output\_dynamodb2\_table\_name) | DynamoDB table name |
| [dynamodb2\_table\_stream\_arn](#output\_dynamodb2\_table\_stream\_arn) | DynamoDB table stream ARN |
| [dynamodb2\_table\_stream\_label](#output\_dynamodb2\_table\_stream\_label) | DynamoDB table stream label |
| [dynamodb3\_global\_secondary\_index\_names](#output\_dynamodb3\_global\_secondary\_index\_names) | DynamoDB secondary index names |
| [dynamodb3\_local\_secondary\_index\_names](#output\_dynamodb3\_local\_secondary\_index\_names) | DynamoDB local index names |
| [dynamodb3\_table\_arn](#output\_dynamodb3\_table\_arn) | DynamoDB table ARN |
| [dynamodb3\_table\_id](#output\_dynamodb3\_table\_id) | DynamoDB table ID |
| [dynamodb3\_table\_name](#output\_dynamodb3\_table\_name) | DynamoDB table name |
| [dynamodb3\_table\_stream\_arn](#output\_dynamodb3\_table\_stream\_arn) | DynamoDB table stream ARN |
| [dynamodb3\_table\_stream\_label](#output\_dynamodb3\_table\_stream\_label) | DynamoDB table stream label |
| [dynamodb4\_global\_secondary\_index\_names](#output\_dynamodb4\_global\_secondary\_index\_names) | DynamoDB secondary index names |
| [dynamodb4\_local\_secondary\_index\_names](#output\_dynamodb4\_local\_secondary\_index\_names) | DynamoDB local index names |
| [dynamodb4\_table\_arn](#output\_dynamodb4\_table\_arn) | DynamoDB table ARN |
| [dynamodb4\_table\_id](#output\_dynamodb4\_table\_id) | DynamoDB table ID |
| [dynamodb4\_table\_name](#output\_dynamodb4\_table\_name) | DynamoDB table name |
| [dynamodb4\_table\_stream\_arn](#output\_dynamodb4\_table\_stream\_arn) | DynamoDB table stream ARN |
| [dynamodb4\_table\_stream\_label](#output\_dynamodb4\_table\_stream\_label) | DynamoDB table stream label |
| [dynamodb\_global\_secondary\_index\_names](#output\_dynamodb\_global\_secondary\_index\_names) | DynamoDB secondary index names |
| [dynamodb\_local\_secondary\_index\_names](#output\_dynamodb\_local\_secondary\_index\_names) | DynamoDB local index names |
| [dynamodb\_table\_arn](#output\_dynamodb\_table\_arn) | DynamoDB table ARN |
| [dynamodb\_table\_id](#output\_dynamodb\_table\_id) | DynamoDB table ID |
| [dynamodb\_table\_name](#output\_dynamodb\_table\_name) | DynamoDB table name |
| [dynamodb\_table\_stream\_arn](#output\_dynamodb\_table\_stream\_arn) | DynamoDB table stream ARN |
| [dynamodb\_table\_stream\_label](#output\_dynamodb\_table\_stream\_label) | DynamoDB table stream label |
| [private\_rds\_endpoint\_aws\_route53\_record](#output\_private\_rds\_endpoint\_aws\_route53\_record) | Private Redis cluster end-point address (should be used by the service) |
| [private\_redis\_endpoint\_aws\_route53\_record](#output\_private\_redis\_endpoint\_aws\_route53\_record) | Private Redis cluster end-point address (should be used by the service) |
| [public\_rds\_endpoint\_aws\_route53\_record](#output\_public\_rds\_endpoint\_aws\_route53\_record) | Public Redis cluster end-point address (should be used by the service) |
| [public\_redis\_endpoint\_aws\_route53\_record](#output\_public\_redis\_endpoint\_aws\_route53\_record) | Public Redis cluster end-point address (should be used by the service) |
| [rds\_this\_db\_instance\_address](#output\_rds\_this\_db\_instance\_address) | The address of the RDS instance |
| [rds\_this\_db\_instance\_arn](#output\_rds\_this\_db\_instance\_arn) | The ARN of the RDS instance |
| [rds\_this\_db\_instance\_availability\_zone](#output\_rds\_this\_db\_instance\_availability\_zone) | The availability zone of the RDS instance |
| [rds\_this\_db\_instance\_endpoint](#output\_rds\_this\_db\_instance\_endpoint) | The connection endpoint |
| [rds\_this\_db\_instance\_hosted\_zone\_id](#output\_rds\_this\_db\_instance\_hosted\_zone\_id) | The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record) |
| [rds\_this\_db\_instance\_identifier](#output\_rds\_this\_db\_instance\_identifier) | The RDS instance Identifier |
| [rds\_this\_db\_instance\_name](#output\_rds\_this\_db\_instance\_name) | The database name |
| [rds\_this\_db\_instance\_password](#output\_rds\_this\_db\_instance\_password) | The database password (this password may be old, because Terraform doesn't track it after initial creation) |
| [rds\_this\_db\_instance\_port](#output\_rds\_this\_db\_instance\_port) | The database port |
| [rds\_this\_db\_instance\_resource\_id](#output\_rds\_this\_db\_instance\_resource\_id) | The RDS Resource ID of this instance |
| [rds\_this\_db\_instance\_status](#output\_rds\_this\_db\_instance\_status) | The RDS instance status |
| [rds\_this\_db\_instance\_username](#output\_rds\_this\_db\_instance\_username) | The master username for the database |
| [rds\_this\_db\_parameter\_group\_arn](#output\_rds\_this\_db\_parameter\_group\_arn) | The ARN of the db parameter group |
| [rds\_this\_db\_parameter\_group\_id](#output\_rds\_this\_db\_parameter\_group\_id) | The db parameter group id |
| [rds\_this\_db\_subnet\_group\_arn](#output\_rds\_this\_db\_subnet\_group\_arn) | The ARN of the db subnet group |
| [rds\_this\_db\_subnet\_group\_id](#output\_rds\_this\_db\_subnet\_group\_id) | The db subnet group name |
| [redis\_port](#output\_redis\_port) | Redis port |
| [sqs1\_dlq\_queue\_arn](#output\_sqs1\_dlq\_queue\_arn) | SQS queue ARN |
| [sqs1\_queue\_arn](#output\_sqs1\_queue\_arn) | SQS queue ARN |
| [sqs1\_queue\_id](#output\_sqs1\_queue\_id) | SQS queue ID |
| [sqs1\_queue\_name](#output\_sqs1\_queue\_name) | SQS queue name |
| [sqs2\_dlq\_queue\_arn](#output\_sqs2\_dlq\_queue\_arn) | SQS queue ARN |
| [sqs2\_queue\_arn](#output\_sqs2\_queue\_arn) | SQS queue ARN |
| [sqs2\_queue\_id](#output\_sqs2\_queue\_id) | SQS queue ID |
| [sqs2\_queue\_name](#output\_sqs2\_queue\_name) | SQS queue name |
| [sqs3\_dlq\_queue\_arn](#output\_sqs3\_dlq\_queue\_arn) | SQS queue ARN |
| [sqs3\_queue\_arn](#output\_sqs3\_queue\_arn) | SQS queue ARN |
| [sqs3\_queue\_id](#output\_sqs3\_queue\_id) | SQS queue ID |
| [sqs3\_queue\_name](#output\_sqs3\_queue\_name) | SQS queue name |
| [sqs4\_dlq\_queue\_arn](#output\_sqs4\_dlq\_queue\_arn) | SQS queue ARN |
| [sqs4\_queue\_arn](#output\_sqs4\_queue\_arn) | SQS queue ARN |
| [sqs4\_queue\_id](#output\_sqs4\_queue\_id) | SQS queue ID |
| [sqs4\_queue\_name](#output\_sqs4\_queue\_name) | SQS queue name |
| [sqs5\_dlq\_queue\_arn](#output\_sqs5\_dlq\_queue\_arn) | SQS queue ARN |
| [sqs5\_queue\_arn](#output\_sqs5\_queue\_arn) | SQS queue ARN |
| [sqs5\_queue\_id](#output\_sqs5\_queue\_id) | SQS queue ID |
| [sqs5\_queue\_name](#output\_sqs5\_queue\_name) | SQS queue name |
| [this\_aws\_iam\_access\_key](#output\_this\_aws\_iam\_access\_key) | IAM Access Key of the created user |
| [this\_aws\_iam\_access\_key\_secret](#output\_this\_aws\_iam\_access\_key\_secret) | The secret key of the user |
| [this\_aws\_s3\_bucket\_arn](#output\_this\_aws\_s3\_bucket\_arn) | id of created S3 bucket |
| [this\_aws\_s3\_bucket\_id](#output\_this\_aws\_s3\_bucket\_id) | id of created S3 bucket |
| [this\_iam\_role\_arn](#output\_this\_iam\_role\_arn) | iam role arn |
| [this\_iam\_role\_name](#output\_this\_iam\_role\_name) | iam role name |
| [this\_redis\_replication\_group\_id](#output\_this\_redis\_replication\_group\_id) | The AWS Elasticache replication group ID |
| [this\_redis\_replication\_group\_number\_cache\_clusters](#output\_this\_redis\_replication\_group\_number\_cache\_clusters) | The AWS Elasticache replication group number cache clusters |
| [this\_redis\_replication\_group\_replication\_group\_id](#output\_this\_redis\_replication\_group\_replication\_group\_id) | The AWS Elasticache replication group replication group ID |
| [this\_redis\_subnet\_group\_id](#output\_this\_redis\_subnet\_group\_id) | The AWS elasticache subnet group ID |
| [this\_redis\_subnet\_group\_name](#output\_this\_redis\_subnet\_group\_name) | The AWS elasticache subnet group name |
| [this\_user\_arn](#output\_this\_user\_arn) | ARN of the IAM user |
| [this\_user\_name](#output\_this\_user\_name) | IAM user name |## License
[MIT](LICENSE)
Copyright (c) 2019-2022 [Flaconi GmbH](https://github.com/Flaconi)