{"id":21730107,"url":"https://github.com/nventive/terraform-aws-ecs-app","last_synced_at":"2025-03-20T23:22:24.069Z","repository":{"id":197023837,"uuid":"697821107","full_name":"nventive/terraform-aws-ecs-app","owner":"nventive","description":"Terraform module to provision an ECS service.","archived":false,"fork":false,"pushed_at":"2024-09-26T23:45:07.000Z","size":65,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T09:40:00.008Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.nventive.com","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/nventive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-09-28T14:43:12.000Z","updated_at":"2024-09-26T23:43:58.000Z","dependencies_parsed_at":"2023-09-28T17:46:18.959Z","dependency_job_id":"649bd7da-cf23-4d22-be32-fa5c0c89c5d2","html_url":"https://github.com/nventive/terraform-aws-ecs-app","commit_stats":null,"previous_names":["nventive/terraform-aws-ecs-app"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2Fterraform-aws-ecs-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2Fterraform-aws-ecs-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2Fterraform-aws-ecs-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nventive%2Fterraform-aws-ecs-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nventive","download_url":"https://codeload.github.com/nventive/terraform-aws-ecs-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244706789,"owners_count":20496626,"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":[],"created_at":"2024-11-26T04:12:27.771Z","updated_at":"2025-03-20T23:22:24.029Z","avatar_url":"https://github.com/nventive.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- BEGIN_TF_DOCS --\u003e\n![nventive](https://nventive-public-assets.s3.amazonaws.com/nventive_logo_github.svg?v=2)\n\n# terraform-aws-ecs-app\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](LICENSE) [![Latest Release](https://img.shields.io/github/release/nventive/terraform-aws-ecs-app.svg?style=flat-square)](https://github.com/nventive/terraform-aws-ecs-app/releases/latest)\n\nTerraform module to provision an ECS application.\n\n---\n\n## Providers\n\nThis modules uses two instances of the AWS provider. One for Route 53 resources and one for the rest. The reason why is\nthat Route 53 is often in a different account (ie. in the prod account when creating resources for dev).\n\nYou must provide both providers, whether you use Route 53 or not. In any case, you can specify the same provider for\nboth if need be.\n\n## Examples\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e We do not pin modules to versions in our examples because of the difficulty of keeping the versions in\n\u003e the documentation in sync with the latest released versions. We highly recommend that in your code you pin the version\n\u003e to the exact version you are using so that your infrastructure remains stable, and update versions in a systematic way\n\u003e so that they do not catch you by surprise.\n\n```hcl\nmodule \"container_definition_1\" {\n  source = \"nventive/ecs-container-definition/aws\"\n  # We recommend pinning every module to a specific version\n  # version = \"x.x.x\"\n\n  container_name = \"test_1\"\n  environment = [{\n    name  = \"NODE_ENV\"\n    value = \"production\"\n  }]\n}\n\nmodule \"container_definition_2\" {\n  source = \"nventive/ecs-container-definition/aws\"\n  # We recommend pinning every module to a specific version\n  # version = \"x.x.x\"\n\n  container_name = \"test_2\"\n  environment = [{\n    name  = \"NODE_ENV\"\n    value = \"production\"\n  }]\n}\n\nmodule \"ecs_app\" {\n  source = \"nventive/ecs-app/aws\"\n  # We recommend pinning every module to a specific version\n  # version = \"x.x.x\"\n\n  providers = {\n    aws.route53 = aws.route53\n    aws         = aws\n  }\n  alb_arn                    = \"arn:aws:elasticloadbalancing:us-east-1:999999999999:loadbalancer/app/xxxxxx/xxxxxxxxxxxxxxxx\"\n  alb_listeners              = [{ port = 443, protocol = \"HTTPS\" }, { port = 80, protocol = \"HTTP\" }]\n  alb_security_group_id      = \"sg-xxxxxxxxxxxxxxxxx\"\n  alb_arn_suffix             = \"xxxxx/xxxxxxxxxxxxxxxx\"\n  ecs_cluster_name           = \"arn:aws:ecs:us-east-1:999999999999:cluster/xxxxxxxxxxxx\"\n  ecs_cluster_arn            = dependency.cluster.outputs.cluster_arn\n  health_check_matcher       = \"200\"\n  healthcheck_path           = \"/\"\n  service_container_port     = 8080\n  service_container_protocol = \"HTTP\"\n  vpc_id                     = \"vpc-xxxxxxxxxxxxxxxxx\"\n  container_definition_json = jsonencode([\n    module.container_definition_1.json_map_object,\n    module.container_definition_2.json_map_object\n  ])\n}\n```\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 3.0 |\n| \u003ca name=\"requirement_local\"\u003e\u003c/a\u003e [local](#requirement\\_local) | \u003e= 1.3 |\n| \u003ca name=\"requirement_null\"\u003e\u003c/a\u003e [null](#requirement\\_null) | \u003e= 2.0 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | \u003e= 3.0 |\n| \u003ca name=\"requirement_time\"\u003e\u003c/a\u003e [time](#requirement\\_time) | \u003e= 0.7.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 3.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_acm_certificate\"\u003e\u003c/a\u003e [acm\\_certificate](#module\\_acm\\_certificate) | nventive/acm-certificate/aws | 1.0.1 |\n| \u003ca name=\"module_alb_alarms\"\u003e\u003c/a\u003e [alb\\_alarms](#module\\_alb\\_alarms) | cloudposse/alb-target-group-cloudwatch-sns-alarms/aws | 0.17.0 |\n| \u003ca name=\"module_alb_ingress\"\u003e\u003c/a\u003e [alb\\_ingress](#module\\_alb\\_ingress) | cloudposse/alb-ingress/aws | 0.25.1 |\n| \u003ca name=\"module_autoscaling\"\u003e\u003c/a\u003e [autoscaling](#module\\_autoscaling) | cloudposse/ecs-cloudwatch-autoscaling/aws | 0.7.3 |\n| \u003ca name=\"module_ecs_alarms\"\u003e\u003c/a\u003e [ecs\\_alarms](#module\\_ecs\\_alarms) | cloudposse/ecs-cloudwatch-sns-alarms/aws | 0.12.3 |\n| \u003ca name=\"module_ecs_service_sg\"\u003e\u003c/a\u003e [ecs\\_service\\_sg](#module\\_ecs\\_service\\_sg) | cloudposse/security-group/aws | 2.2.0 |\n| \u003ca name=\"module_service\"\u003e\u003c/a\u003e [service](#module\\_service) | cloudposse/ecs-alb-service-task/aws | 0.58.0 |\n| \u003ca name=\"module_this\"\u003e\u003c/a\u003e [this](#module\\_this) | cloudposse/label/null | 0.25.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.app](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_lb_listener.app](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener) | resource |\n| [aws_security_group_rule.opened_to_alb](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule) | resource |\n| [aws_lb.alb](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/lb) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_additional_tag_map\"\u003e\u003c/a\u003e [additional\\_tag\\_map](#input\\_additional\\_tag\\_map) | Additional key-value pairs to add to each map in `tags_as_list_of_maps`. Not added to `tags` or `id`.\u003cbr\u003eThis is for some rare cases where resources want additional configuration of tags\u003cbr\u003eand therefore take a list of maps with tag key, value, and additional configuration. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_alb_alarms_3xx_threshold\"\u003e\u003c/a\u003e [alb\\_alarms\\_3xx\\_threshold](#input\\_alb\\_alarms\\_3xx\\_threshold) | The maximum count of 3XX requests over a period. A negative value will disable the alert. | `number` | `25` | no |\n| \u003ca name=\"input_alb_alarms_4xx_threshold\"\u003e\u003c/a\u003e [alb\\_alarms\\_4xx\\_threshold](#input\\_alb\\_alarms\\_4xx\\_threshold) | The maximum count of 4XX requests over a period. A negative value will disable the alert. | `number` | `25` | no |\n| \u003ca name=\"input_alb_alarms_5xx_threshold\"\u003e\u003c/a\u003e [alb\\_alarms\\_5xx\\_threshold](#input\\_alb\\_alarms\\_5xx\\_threshold) | The maximum count of 5XX requests over a period. A negative value will disable the alert. | `number` | `25` | no |\n| \u003ca name=\"input_alb_alarms_alarm_actions\"\u003e\u003c/a\u003e [alb\\_alarms\\_alarm\\_actions](#input\\_alb\\_alarms\\_alarm\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to execute when this alarm transitions into an ALARM state from any other state.  If set, this list takes precedence over notify\\_arns. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_alb_alarms_enabled\"\u003e\u003c/a\u003e [alb\\_alarms\\_enabled](#input\\_alb\\_alarms\\_enabled) | Whether to enable SNS alarms for the ALB target group. | `bool` | `false` | no |\n| \u003ca name=\"input_alb_alarms_evaluation_periods\"\u003e\u003c/a\u003e [alb\\_alarms\\_evaluation\\_periods](#input\\_alb\\_alarms\\_evaluation\\_periods) | Number of periods to evaluate for the alarm. | `number` | `1` | no |\n| \u003ca name=\"input_alb_alarms_insufficient_data_actions\"\u003e\u003c/a\u003e [alb\\_alarms\\_insufficient\\_data\\_actions](#input\\_alb\\_alarms\\_insufficient\\_data\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to execute when this alarm transitions into an INSUFFICIENT\\_DATA state from any other state. If set, this list takes precedence over notify\\_arns. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_alb_alarms_ok_actions\"\u003e\u003c/a\u003e [alb\\_alarms\\_ok\\_actions](#input\\_alb\\_alarms\\_ok\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to execute when this alarm transitions into an OK state from any other state. If set, this list takes precedence over notify\\_arns. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_alb_alarms_period\"\u003e\u003c/a\u003e [alb\\_alarms\\_period](#input\\_alb\\_alarms\\_period) | Duration in seconds to evaluate for the alarm. | `number` | `300` | no |\n| \u003ca name=\"input_alb_alarms_response_time_threshold\"\u003e\u003c/a\u003e [alb\\_alarms\\_response\\_time\\_threshold](#input\\_alb\\_alarms\\_response\\_time\\_threshold) | The maximum average target response time (in seconds) over a period. A negative value will disable the alert. | `number` | `0.5` | no |\n| \u003ca name=\"input_alb_arn\"\u003e\u003c/a\u003e [alb\\_arn](#input\\_alb\\_arn) | ARN of the ALB. | `string` | n/a | yes |\n| \u003ca name=\"input_alb_arn_suffix\"\u003e\u003c/a\u003e [alb\\_arn\\_suffix](#input\\_alb\\_arn\\_suffix) | The ARN suffix of ALB. | `string` | n/a | yes |\n| \u003ca name=\"input_alb_ingress_stickiness_cookie_duration\"\u003e\u003c/a\u003e [alb\\_ingress\\_stickiness\\_cookie\\_duration](#input\\_alb\\_ingress\\_stickiness\\_cookie\\_duration) | The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds) | `number` | `86400` | no |\n| \u003ca name=\"input_alb_ingress_stickiness_enabled\"\u003e\u003c/a\u003e [alb\\_ingress\\_stickiness\\_enabled](#input\\_alb\\_ingress\\_stickiness\\_enabled) | Boolean to enable / disable `stickiness`. | `bool` | `true` | no |\n| \u003ca name=\"input_alb_ingress_stickiness_type\"\u003e\u003c/a\u003e [alb\\_ingress\\_stickiness\\_type](#input\\_alb\\_ingress\\_stickiness\\_type) | The type of sticky sessions. The only current possible value is `lb_cookie` | `string` | `\"lb_cookie\"` | no |\n| \u003ca name=\"input_alb_listeners\"\u003e\u003c/a\u003e [alb\\_listeners](#input\\_alb\\_listeners) | A list of map containing a port and a protocol and optionally a `default_action` for all ALB listeners. | \u003cpre\u003elist(object({\u003cbr\u003e    port     = number\u003cbr\u003e    protocol = string\u003cbr\u003e    default_action = object({\u003cbr\u003e      type             = string\u003cbr\u003e      target_group_arn = optional(string)\u003cbr\u003e      redirect = optional(object({\u003cbr\u003e        host        = optional(string)\u003cbr\u003e        path        = optional(string)\u003cbr\u003e        port        = optional(string)\u003cbr\u003e        protocol    = optional(string)\u003cbr\u003e        query       = optional(string)\u003cbr\u003e        status_code = string\u003cbr\u003e      }))\u003cbr\u003e      fixed_response = optional(object({\u003cbr\u003e        content_type = string\u003cbr\u003e        message_body = optional(string)\u003cbr\u003e        status_code  = optional(string)\u003cbr\u003e      }))\u003cbr\u003e    })\u003cbr\u003e  }))\u003c/pre\u003e | \u003cpre\u003e[\u003cbr\u003e  {\u003cbr\u003e    \"default_action\": {\u003cbr\u003e      \"type\": \"forward\"\u003cbr\u003e    },\u003cbr\u003e    \"port\": 80,\u003cbr\u003e    \"protocol\": \"HTTP\"\u003cbr\u003e  }\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_alb_security_group_id\"\u003e\u003c/a\u003e [alb\\_security\\_group\\_id](#input\\_alb\\_security\\_group\\_id) | ALB security group id (to allow connection from the ALB to the service). | `string` | n/a | yes |\n| \u003ca name=\"input_aliases\"\u003e\u003c/a\u003e [aliases](#input\\_aliases) | List of FQDN's - Used to set the Alternate Domain Names (CNAMEs). | `list(string)` | `[]` | no |\n| \u003ca name=\"input_attributes\"\u003e\u003c/a\u003e [attributes](#input\\_attributes) | ID element. Additional attributes (e.g. `workers` or `cluster`) to add to `id`,\u003cbr\u003ein the order they appear in the list. New attributes are appended to the\u003cbr\u003eend of the list. The elements of the list are joined by the `delimiter`\u003cbr\u003eand treated as a single ID element. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_autoscaling_cpu_enabled\"\u003e\u003c/a\u003e [autoscaling\\_cpu\\_enabled](#input\\_autoscaling\\_cpu\\_enabled) | Whether the ECS service should scale based on CPU utilization. | `bool` | `false` | no |\n| \u003ca name=\"input_autoscaling_enabled\"\u003e\u003c/a\u003e [autoscaling\\_enabled](#input\\_autoscaling\\_enabled) | Whether to enable autoscaling for the ECS service. | `bool` | `false` | no |\n| \u003ca name=\"input_autoscaling_max_capacity\"\u003e\u003c/a\u003e [autoscaling\\_max\\_capacity](#input\\_autoscaling\\_max\\_capacity) | Maximum number of running instances of a Service. | `number` | `2` | no |\n| \u003ca name=\"input_autoscaling_memory_enabled\"\u003e\u003c/a\u003e [autoscaling\\_memory\\_enabled](#input\\_autoscaling\\_memory\\_enabled) | Whether the ECS service should scale based on memory utilization. | `bool` | `false` | no |\n| \u003ca name=\"input_autoscaling_min_capacity\"\u003e\u003c/a\u003e [autoscaling\\_min\\_capacity](#input\\_autoscaling\\_min\\_capacity) | Minimum number of running instances of a Service. | `number` | `1` | no |\n| \u003ca name=\"input_autoscaling_scale_down_adjustment\"\u003e\u003c/a\u003e [autoscaling\\_scale\\_down\\_adjustment](#input\\_autoscaling\\_scale\\_down\\_adjustment) | Scaling adjustment to make during scale down event. | `number` | `-1` | no |\n| \u003ca name=\"input_autoscaling_scale_down_cooldown\"\u003e\u003c/a\u003e [autoscaling\\_scale\\_down\\_cooldown](#input\\_autoscaling\\_scale\\_down\\_cooldown) | Period (in seconds) to wait between scale down events. | `number` | `300` | no |\n| \u003ca name=\"input_autoscaling_scale_up_adjustment\"\u003e\u003c/a\u003e [autoscaling\\_scale\\_up\\_adjustment](#input\\_autoscaling\\_scale\\_up\\_adjustment) | Scaling adjustment to make during scale up event. | `number` | `1` | no |\n| \u003ca name=\"input_autoscaling_scale_up_cooldown\"\u003e\u003c/a\u003e [autoscaling\\_scale\\_up\\_cooldown](#input\\_autoscaling\\_scale\\_up\\_cooldown) | Period (in seconds) to wait between scale up events. | `number` | `60` | no |\n| \u003ca name=\"input_certificate_certificate_body_base64\"\u003e\u003c/a\u003e [certificate\\_certificate\\_body\\_base64](#input\\_certificate\\_certificate\\_body\\_base64) | The certificate's PEM-formatted public key base64-encoded. | `string` | `\"\"` | no |\n| \u003ca name=\"input_certificate_chain_base64\"\u003e\u003c/a\u003e [certificate\\_chain\\_base64](#input\\_certificate\\_chain\\_base64) | The certificate's PEM-formatted chain base64-encoded. | `string` | `\"\"` | no |\n| \u003ca name=\"input_certificate_private_key_base64\"\u003e\u003c/a\u003e [certificate\\_private\\_key\\_base64](#input\\_certificate\\_private\\_key\\_base64) | The certificate's PEM-formatted private key base64-encoded. | `string` | `\"\"` | no |\n| \u003ca name=\"input_certificate_transparency_logging_preference\"\u003e\u003c/a\u003e [certificate\\_transparency\\_logging\\_preference](#input\\_certificate\\_transparency\\_logging\\_preference) | Specifies whether certificate details should be added to a certificate transparency log. | `bool` | `true` | no |\n| \u003ca name=\"input_certificate_type\"\u003e\u003c/a\u003e [certificate\\_type](#input\\_certificate\\_type) | Used to chose a sub-module. Should be either `request` or `import` a certificate. | `string` | `\"request\"` | no |\n| \u003ca name=\"input_certificate_validation_method\"\u003e\u003c/a\u003e [certificate\\_validation\\_method](#input\\_certificate\\_validation\\_method) | Method to use for validation, DNS or EMAIL. | `string` | `\"DNS\"` | no |\n| \u003ca name=\"input_certificate_wait_for_certificate_issued\"\u003e\u003c/a\u003e [certificate\\_wait\\_for\\_certificate\\_issued](#input\\_certificate\\_wait\\_for\\_certificate\\_issued) | Whether to wait for the certificate to be issued by ACM (the certificate status changed from `Pending Validation` to `Issued`). | `bool` | `false` | 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) | Number of days to retain Cloudwatch logs. | `number` | `60` | no |\n| \u003ca name=\"input_container_definition_json\"\u003e\u003c/a\u003e [container\\_definition\\_json](#input\\_container\\_definition\\_json) | A string containing a JSON-encoded array of container definitions\u003cbr\u003e(`\"[{ \"name\": \"container1\", ... }, { \"name\": \"container2\", ... }]\"`).\u003cbr\u003eSee [API\\_ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html),\u003cbr\u003e[cloudposse/terraform-aws-ecs-container-definition](https://github.com/cloudposse/terraform-aws-ecs-container-definition), or\u003cbr\u003e[ecs\\_task\\_definition#container\\_definitions](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition#container_definitions) | `string` | n/a | yes |\n| \u003ca name=\"input_context\"\u003e\u003c/a\u003e [context](#input\\_context) | Single object for setting entire context at once.\u003cbr\u003eSee description of individual variables for details.\u003cbr\u003eLeave string and numeric variables as `null` to use default value.\u003cbr\u003eIndividual variable settings (non-null) override settings in context object,\u003cbr\u003eexcept for attributes, tags, and additional\\_tag\\_map, which are merged. | `any` | \u003cpre\u003e{\u003cbr\u003e  \"additional_tag_map\": {},\u003cbr\u003e  \"attributes\": [],\u003cbr\u003e  \"delimiter\": null,\u003cbr\u003e  \"descriptor_formats\": {},\u003cbr\u003e  \"enabled\": true,\u003cbr\u003e  \"environment\": null,\u003cbr\u003e  \"id_length_limit\": null,\u003cbr\u003e  \"label_key_case\": null,\u003cbr\u003e  \"label_order\": [],\u003cbr\u003e  \"label_value_case\": null,\u003cbr\u003e  \"labels_as_tags\": [\u003cbr\u003e    \"unset\"\u003cbr\u003e  ],\u003cbr\u003e  \"name\": null,\u003cbr\u003e  \"namespace\": null,\u003cbr\u003e  \"regex_replace_chars\": null,\u003cbr\u003e  \"stage\": null,\u003cbr\u003e  \"tags\": {},\u003cbr\u003e  \"tenant\": null\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_default_service_security_group_enabled\"\u003e\u003c/a\u003e [default\\_service\\_security\\_group\\_enabled](#input\\_default\\_service\\_security\\_group\\_enabled) | Enables the creation of a default security group for the ECS Service | `bool` | `true` | no |\n| \u003ca name=\"input_delimiter\"\u003e\u003c/a\u003e [delimiter](#input\\_delimiter) | Delimiter to be used between ID elements.\u003cbr\u003eDefaults to `-` (hyphen). Set to `\"\"` to use no delimiter at all. | `string` | `null` | no |\n| \u003ca name=\"input_descriptor_formats\"\u003e\u003c/a\u003e [descriptor\\_formats](#input\\_descriptor\\_formats) | Describe additional descriptors to be output in the `descriptors` output map.\u003cbr\u003eMap of maps. Keys are names of descriptors. Values are maps of the form\u003cbr\u003e`{\u003cbr\u003e   format = string\u003cbr\u003e   labels = list(string)\u003cbr\u003e}`\u003cbr\u003e(Type is `any` so the map values can later be enhanced to provide additional options.)\u003cbr\u003e`format` is a Terraform format string to be passed to the `format()` function.\u003cbr\u003e`labels` is a list of labels, in order, to pass to `format()` function.\u003cbr\u003eLabel values will be normalized before being passed to `format()` so they will be\u003cbr\u003eidentical to how they appear in `id`.\u003cbr\u003eDefault is `{}` (`descriptors` output will be empty). | `any` | `{}` | no |\n| \u003ca name=\"input_dns_alias_enabled\"\u003e\u003c/a\u003e [dns\\_alias\\_enabled](#input\\_dns\\_alias\\_enabled) | Create a DNS alias for the CDN. Requires `parent_zone_id` or `parent_zone_name`. | `bool` | `false` | no |\n| \u003ca name=\"input_ecs_alarm_description\"\u003e\u003c/a\u003e [ecs\\_alarm\\_description](#input\\_ecs\\_alarm\\_description) | The string to format and use as the ECS alarm description. | `string` | `\"Average service %v utilization %v last %f minute(s) over %v period(s)\"` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_high_alarm_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_high\\_alarm\\_actions](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_high\\_alarm\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on CPU Utilization High Alarm action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_high_evaluation_periods\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_high\\_evaluation\\_periods](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_high\\_evaluation\\_periods) | Number of periods to evaluate for the alarm. | `number` | `1` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_high_ok_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_high\\_ok\\_actions](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_high\\_ok\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on CPU Utilization High OK action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_high_period\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_high\\_period](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_high\\_period) | Duration in seconds to evaluate for the alarm. | `number` | `300` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_high_threshold\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_high\\_threshold](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_high\\_threshold) | The maximum percentage of CPU utilization average. | `number` | `80` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_low_alarm_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_low\\_alarm\\_actions](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_low\\_alarm\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on CPU Utilization Low Alarm action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_low_evaluation_periods\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_low\\_evaluation\\_periods](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_low\\_evaluation\\_periods) | Number of periods to evaluate for the alarm. | `number` | `1` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_low_ok_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_low\\_ok\\_actions](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_low\\_ok\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on CPU Utilization Low OK action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_low_period\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_low\\_period](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_low\\_period) | Duration in seconds to evaluate for the alarm. | `number` | `300` | no |\n| \u003ca name=\"input_ecs_alarms_cpu_utilization_low_threshold\"\u003e\u003c/a\u003e [ecs\\_alarms\\_cpu\\_utilization\\_low\\_threshold](#input\\_ecs\\_alarms\\_cpu\\_utilization\\_low\\_threshold) | The minimum percentage of CPU utilization average. | `number` | `20` | no |\n| \u003ca name=\"input_ecs_alarms_enabled\"\u003e\u003c/a\u003e [ecs\\_alarms\\_enabled](#input\\_ecs\\_alarms\\_enabled) | Whether to enable SNS alarms for the ECS service. | `bool` | `false` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_high_alarm_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_high\\_alarm\\_actions](#input\\_ecs\\_alarms\\_memory\\_utilization\\_high\\_alarm\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on Memory Utilization High Alarm action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_high_evaluation_periods\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_high\\_evaluation\\_periods](#input\\_ecs\\_alarms\\_memory\\_utilization\\_high\\_evaluation\\_periods) | Number of periods to evaluate for the alarm. | `number` | `1` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_high_ok_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_high\\_ok\\_actions](#input\\_ecs\\_alarms\\_memory\\_utilization\\_high\\_ok\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on Memory Utilization High OK action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_high_period\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_high\\_period](#input\\_ecs\\_alarms\\_memory\\_utilization\\_high\\_period) | Duration in seconds to evaluate for the alarm. | `number` | `300` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_high_threshold\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_high\\_threshold](#input\\_ecs\\_alarms\\_memory\\_utilization\\_high\\_threshold) | The maximum percentage of Memory utilization average. | `number` | `80` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_low_alarm_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_low\\_alarm\\_actions](#input\\_ecs\\_alarms\\_memory\\_utilization\\_low\\_alarm\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on Memory Utilization Low Alarm action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_low_evaluation_periods\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_low\\_evaluation\\_periods](#input\\_ecs\\_alarms\\_memory\\_utilization\\_low\\_evaluation\\_periods) | Number of periods to evaluate for the alarm. | `number` | `1` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_low_ok_actions\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_low\\_ok\\_actions](#input\\_ecs\\_alarms\\_memory\\_utilization\\_low\\_ok\\_actions) | A list of ARNs (i.e. SNS Topic ARN) to notify on Memory Utilization Low OK action. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_low_period\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_low\\_period](#input\\_ecs\\_alarms\\_memory\\_utilization\\_low\\_period) | Duration in seconds to evaluate for the alarm. | `number` | `300` | no |\n| \u003ca name=\"input_ecs_alarms_memory_utilization_low_threshold\"\u003e\u003c/a\u003e [ecs\\_alarms\\_memory\\_utilization\\_low\\_threshold](#input\\_ecs\\_alarms\\_memory\\_utilization\\_low\\_threshold) | The minimum percentage of Memory utilization average. | `number` | `20` | no |\n| \u003ca name=\"input_ecs_cluster_arn\"\u003e\u003c/a\u003e [ecs\\_cluster\\_arn](#input\\_ecs\\_cluster\\_arn) | The ARN of the ECS cluster. | `string` | n/a | yes |\n| \u003ca name=\"input_ecs_cluster_name\"\u003e\u003c/a\u003e [ecs\\_cluster\\_name](#input\\_ecs\\_cluster\\_name) | The name of the ECS cluster. | `string` | n/a | yes |\n| \u003ca name=\"input_enabled\"\u003e\u003c/a\u003e [enabled](#input\\_enabled) | Set to false to prevent the module from creating any resources | `bool` | `null` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | ID element. Usually used for region e.g. 'uw2', 'us-west-2', OR role 'prod', 'staging', 'dev', 'UAT' | `string` | `null` | no |\n| \u003ca name=\"input_health_check_enabled\"\u003e\u003c/a\u003e [health\\_check\\_enabled](#input\\_health\\_check\\_enabled) | Indicates whether health checks are enabled. Defaults to `true` | `bool` | `true` | no |\n| \u003ca name=\"input_health_check_healthy_threshold\"\u003e\u003c/a\u003e [health\\_check\\_healthy\\_threshold](#input\\_health\\_check\\_healthy\\_threshold) | The number of consecutive health checks successes required before healthy | `number` | `2` | no |\n| \u003ca name=\"input_health_check_interval\"\u003e\u003c/a\u003e [health\\_check\\_interval](#input\\_health\\_check\\_interval) | The duration in seconds in between health checks | `number` | `15` | no |\n| \u003ca name=\"input_health_check_matcher\"\u003e\u003c/a\u003e [health\\_check\\_matcher](#input\\_health\\_check\\_matcher) | The HTTP response codes to indicate a healthy check.\u003cbr\u003eExample: `\"200-399\"` | `string` | n/a | yes |\n| \u003ca name=\"input_health_check_path\"\u003e\u003c/a\u003e [health\\_check\\_path](#input\\_health\\_check\\_path) | The destination for the health check request | `string` | `\"/\"` | no |\n| \u003ca name=\"input_health_check_port\"\u003e\u003c/a\u003e [health\\_check\\_port](#input\\_health\\_check\\_port) | The port to use to connect with the target. Valid values are either ports 1-65536, or `traffic-port`. Defaults to `traffic-port` | `string` | `\"traffic-port\"` | no |\n| \u003ca name=\"input_health_check_protocol\"\u003e\u003c/a\u003e [health\\_check\\_protocol](#input\\_health\\_check\\_protocol) | The protocol to use to connect with the target. Defaults to `HTTP`. Not applicable when `target_type` is `lambda` | `string` | `\"HTTP\"` | no |\n| \u003ca name=\"input_health_check_timeout\"\u003e\u003c/a\u003e [health\\_check\\_timeout](#input\\_health\\_check\\_timeout) | The amount of time to wait in seconds before failing a health check request | `number` | `10` | no |\n| \u003ca name=\"input_health_check_unhealthy_threshold\"\u003e\u003c/a\u003e [health\\_check\\_unhealthy\\_threshold](#input\\_health\\_check\\_unhealthy\\_threshold) | The number of consecutive health check failures required before unhealthy | `number` | `2` | no |\n| \u003ca name=\"input_healthcheck_path\"\u003e\u003c/a\u003e [healthcheck\\_path](#input\\_healthcheck\\_path) | DEPRECATED: Use `health_check_path` instead.\u003cbr\u003ePath for the ALB health checks. | `string` | `null` | no |\n| \u003ca name=\"input_id_length_limit\"\u003e\u003c/a\u003e [id\\_length\\_limit](#input\\_id\\_length\\_limit) | Limit `id` to this many characters (minimum 6).\u003cbr\u003eSet to `0` for unlimited length.\u003cbr\u003eSet to `null` for keep the existing setting, which defaults to `0`.\u003cbr\u003eDoes not affect `id_full`. | `number` | `null` | no |\n| \u003ca name=\"input_kms_key_arn\"\u003e\u003c/a\u003e [kms\\_key\\_arn](#input\\_kms\\_key\\_arn) | KMS Key ARN for Cloudwatch logs. | `string` | `null` | no |\n| \u003ca name=\"input_label_key_case\"\u003e\u003c/a\u003e [label\\_key\\_case](#input\\_label\\_key\\_case) | Controls the letter case of the `tags` keys (label names) for tags generated by this module.\u003cbr\u003eDoes not affect keys of tags passed in via the `tags` input.\u003cbr\u003ePossible values: `lower`, `title`, `upper`.\u003cbr\u003eDefault value: `title`. | `string` | `null` | no |\n| \u003ca name=\"input_label_order\"\u003e\u003c/a\u003e [label\\_order](#input\\_label\\_order) | The order in which the labels (ID elements) appear in the `id`.\u003cbr\u003eDefaults to [\"namespace\", \"environment\", \"stage\", \"name\", \"attributes\"].\u003cbr\u003eYou can omit any of the 6 labels (\"tenant\" is the 6th), but at least one must be present. | `list(string)` | `null` | no |\n| \u003ca name=\"input_label_value_case\"\u003e\u003c/a\u003e [label\\_value\\_case](#input\\_label\\_value\\_case) | Controls the letter case of ID elements (labels) as included in `id`,\u003cbr\u003eset as tag values, and output by this module individually.\u003cbr\u003eDoes not affect values of tags passed in via the `tags` input.\u003cbr\u003ePossible values: `lower`, `title`, `upper` and `none` (no transformation).\u003cbr\u003eSet this to `title` and set `delimiter` to `\"\"` to yield Pascal Case IDs.\u003cbr\u003eDefault value: `lower`. | `string` | `null` | no |\n| \u003ca name=\"input_labels_as_tags\"\u003e\u003c/a\u003e [labels\\_as\\_tags](#input\\_labels\\_as\\_tags) | Set of labels (ID elements) to include as tags in the `tags` output.\u003cbr\u003eDefault is to include all labels.\u003cbr\u003eTags with empty values will not be included in the `tags` output.\u003cbr\u003eSet to `[]` to suppress all generated tags.\u003cbr\u003e**Notes:**\u003cbr\u003e  The value of the `name` tag, if included, will be the `id`, not the `name`.\u003cbr\u003e  Unlike other `null-label` inputs, the initial setting of `labels_as_tags` cannot be\u003cbr\u003e  changed in later chained modules. Attempts to change it will be silently ignored. | `set(string)` | \u003cpre\u003e[\u003cbr\u003e  \"default\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | ID element. Usually the component or solution name, e.g. 'app' or 'jenkins'.\u003cbr\u003eThis is the only ID element not also included as a `tag`.\u003cbr\u003eThe \"name\" tag is set to the full `id` string. There is no tag with the value of the `name` input. | `string` | `null` | no |\n| \u003ca name=\"input_namespace\"\u003e\u003c/a\u003e [namespace](#input\\_namespace) | ID element. Usually an abbreviation of your organization name, e.g. 'eg' or 'cp', to help ensure generated IDs are globally unique | `string` | `null` | no |\n| \u003ca name=\"input_parent_zone_id\"\u003e\u003c/a\u003e [parent\\_zone\\_id](#input\\_parent\\_zone\\_id) | ID of the hosted zone to contain this record (or specify `parent_zone_name`). Requires `dns_alias_enabled` set to true. | `string` | `\"\"` | no |\n| \u003ca name=\"input_parent_zone_name\"\u003e\u003c/a\u003e [parent\\_zone\\_name](#input\\_parent\\_zone\\_name) | Name of the hosted zone to contain this record (or specify `parent_zone_id`). Requires `dns_alias_enabled` set to true. | `string` | `\"\"` | no |\n| \u003ca name=\"input_regex_replace_chars\"\u003e\u003c/a\u003e [regex\\_replace\\_chars](#input\\_regex\\_replace\\_chars) | Terraform regular expression (regex) string.\u003cbr\u003eCharacters matching the regex will be removed from the ID elements.\u003cbr\u003eIf not set, `\"/[^a-zA-Z0-9-]/\"` is used to remove all characters other than hyphens, letters and digits. | `string` | `null` | no |\n| \u003ca name=\"input_service_assign_public_ip\"\u003e\u003c/a\u003e [service\\_assign\\_public\\_ip](#input\\_service\\_assign\\_public\\_ip) | Assign a public IP address to the ENI (Fargate launch type only). Valid values are `true` or `false`. Default `false`. | `bool` | `false` | no |\n| \u003ca name=\"input_service_circuit_breaker_deployment_enabled\"\u003e\u003c/a\u003e [service\\_circuit\\_breaker\\_deployment\\_enabled](#input\\_service\\_circuit\\_breaker\\_deployment\\_enabled) | Whether to enable the deployment circuit breaker logic for the service. | `bool` | `false` | no |\n| \u003ca name=\"input_service_circuit_breaker_rollback_enabled\"\u003e\u003c/a\u003e [service\\_circuit\\_breaker\\_rollback\\_enabled](#input\\_service\\_circuit\\_breaker\\_rollback\\_enabled) | Whether to enable Amazon ECS to roll back the service if a service deployment fails. | `bool` | `false` | no |\n| \u003ca name=\"input_service_container_name\"\u003e\u003c/a\u003e [service\\_container\\_name](#input\\_service\\_container\\_name) | Name of the service to map to the load balancer. | `string` | n/a | yes |\n| \u003ca name=\"input_service_container_port\"\u003e\u003c/a\u003e [service\\_container\\_port](#input\\_service\\_container\\_port) | Container internal port for the service. | `number` | n/a | yes |\n| \u003ca name=\"input_service_container_protocol\"\u003e\u003c/a\u003e [service\\_container\\_protocol](#input\\_service\\_container\\_protocol) | Container protocol for the service. | `string` | `\"HTTP\"` | no |\n| \u003ca name=\"input_service_deployment_controller_type\"\u003e\u003c/a\u003e [service\\_deployment\\_controller\\_type](#input\\_service\\_deployment\\_controller\\_type) | Type of deployment controller. Valid values are `CODE_DEPLOY` and `ECS`. | `string` | `\"ECS\"` | no |\n| \u003ca name=\"input_service_deployment_maximum_percent\"\u003e\u003c/a\u003e [service\\_deployment\\_maximum\\_percent](#input\\_service\\_deployment\\_maximum\\_percent) | The upper limit of the number of tasks (as a percentage of `desired_count`) that can be running in a service during a deployment. | `number` | `200` | no |\n| \u003ca name=\"input_service_deployment_minimum_healthy_percent\"\u003e\u003c/a\u003e [service\\_deployment\\_minimum\\_healthy\\_percent](#input\\_service\\_deployment\\_minimum\\_healthy\\_percent) | The lower limit (as a percentage of `desired_count`) of the number of tasks that must remain running and healthy in a service during a deployment. | `number` | `100` | no |\n| \u003ca name=\"input_service_desired_count\"\u003e\u003c/a\u003e [service\\_desired\\_count](#input\\_service\\_desired\\_count) | The number of instances of the task definition to place and keep running. | `number` | `1` | no |\n| \u003ca name=\"input_service_exec_enabled\"\u003e\u003c/a\u003e [service\\_exec\\_enabled](#input\\_service\\_exec\\_enabled) | Specifies whether to enable Amazon ECS Exec for the tasks within the service. | `bool` | `false` | no |\n| \u003ca name=\"input_service_health_check_grace_period_seconds\"\u003e\u003c/a\u003e [service\\_health\\_check\\_grace\\_period\\_seconds](#input\\_service\\_health\\_check\\_grace\\_period\\_seconds) | Seconds to ignore failing load balancer health checks on newly instantiated tasks to prevent premature shutdown, up to 7200. Only valid for services configured to use load balancers. | `number` | `0` | no |\n| \u003ca name=\"input_service_ignore_changes_desired_count\"\u003e\u003c/a\u003e [service\\_ignore\\_changes\\_desired\\_count](#input\\_service\\_ignore\\_changes\\_desired\\_count) | Whether to ignore changes for desired count in the ECS service. | `bool` | `false` | no |\n| \u003ca name=\"input_service_ignore_changes_task_definition\"\u003e\u003c/a\u003e [service\\_ignore\\_changes\\_task\\_definition](#input\\_service\\_ignore\\_changes\\_task\\_definition) | Whether to ignore changes in container definition and task definition in the ECS service. | `bool` | `true` | no |\n| \u003ca name=\"input_service_launch_type\"\u003e\u003c/a\u003e [service\\_launch\\_type](#input\\_service\\_launch\\_type) | The launch type on which to run your service. Valid values are `EC2` and `FARGATE`. | `string` | `\"FARGATE\"` | no |\n| \u003ca name=\"input_service_security_groups\"\u003e\u003c/a\u003e [service\\_security\\_groups](#input\\_service\\_security\\_groups) | A list of Security Group IDs to allow in Service `network_configuration` if `var.network_mode = \"awsvpc\"`. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_service_task_cpu\"\u003e\u003c/a\u003e [service\\_task\\_cpu](#input\\_service\\_task\\_cpu) | The number of CPU units used by the task. If using `FARGATE` launch type `task_cpu` must match [supported memory values](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size). | `number` | `256` | no |\n| \u003ca name=\"input_service_task_memory\"\u003e\u003c/a\u003e [service\\_task\\_memory](#input\\_service\\_task\\_memory) | The amount of memory (in MiB) used by the task. If using Fargate launch type `task_memory` must match [supported cpu value](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size). | `number` | `512` | no |\n| \u003ca name=\"input_service_task_policy_arns\"\u003e\u003c/a\u003e [service\\_task\\_policy\\_arns](#input\\_service\\_task\\_policy\\_arns) | A list of IAM Policy ARNs to attach to the generated task role. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_service_volumes\"\u003e\u003c/a\u003e [service\\_volumes](#input\\_service\\_volumes) | Task volume definitions as list of configuration objects. | \u003cpre\u003elist(object({\u003cbr\u003e    host_path = string\u003cbr\u003e    name      = string\u003cbr\u003e    docker_volume_configuration = list(object({\u003cbr\u003e      autoprovision = bool\u003cbr\u003e      driver        = string\u003cbr\u003e      driver_opts   = map(string)\u003cbr\u003e      labels        = map(string)\u003cbr\u003e      scope         = string\u003cbr\u003e    }))\u003cbr\u003e    efs_volume_configuration = list(object({\u003cbr\u003e      file_system_id          = string\u003cbr\u003e      root_directory          = string\u003cbr\u003e      transit_encryption      = string\u003cbr\u003e      transit_encryption_port = string\u003cbr\u003e      authorization_config = list(object({\u003cbr\u003e        access_point_id = string\u003cbr\u003e        iam             = string\u003cbr\u003e      }))\u003cbr\u003e    }))\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_stage\"\u003e\u003c/a\u003e [stage](#input\\_stage) | ID element. Usually used to indicate role, e.g. 'prod', 'staging', 'source', 'build', 'test', 'deploy', 'release' | `string` | `null` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | List of subnet IDs for the DB. DB instance will be created in the VPC associated with the DB subnet group provisioned using the subnet IDs. Specify one of `subnet_ids`, `db_subnet_group_name` or `availability_zone`. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Additional tags (e.g. `{'BusinessUnit': 'XYZ'}`).\u003cbr\u003eNeither the tag keys nor the tag values will be modified by this module. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_tenant\"\u003e\u003c/a\u003e [tenant](#input\\_tenant) | ID element \\_(Rarely used, not included by default)\\_. A customer identifier, indicating who this instance of a resource is for | `string` | `null` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | VPC ID the DB instance will be created in. | `string` | n/a | yes |\n| \u003ca name=\"input_wait_for_steady_state\"\u003e\u003c/a\u003e [wait\\_for\\_steady\\_state](#input\\_wait\\_for\\_steady\\_state) | If true, it will wait for the service to reach a steady state (like aws ecs wait services-stable) before continuing. | `bool` | `false` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_alb_listener_arns\"\u003e\u003c/a\u003e [alb\\_listener\\_arns](#output\\_alb\\_listener\\_arns) | The ARN of the ALB listeners. |\n| \u003ca name=\"output_ecs_service_security_group_id\"\u003e\u003c/a\u003e [ecs\\_service\\_security\\_group\\_id](#output\\_ecs\\_service\\_security\\_group\\_id) | The ID of the Security Group for the ECS service. |\n| \u003ca name=\"output_service_arn\"\u003e\u003c/a\u003e [service\\_arn](#output\\_service\\_arn) | ECS Service ARN |\n| \u003ca name=\"output_service_name\"\u003e\u003c/a\u003e [service\\_name](#output\\_service\\_name) | ECS Service name |\n| \u003ca name=\"output_task_definition_family\"\u003e\u003c/a\u003e [task\\_definition\\_family](#output\\_task\\_definition\\_family) | ECS task definition family |\n| \u003ca name=\"output_task_exec_role_arn\"\u003e\u003c/a\u003e [task\\_exec\\_role\\_arn](#output\\_task\\_exec\\_role\\_arn) | ECS Task exec role ARN |\n| \u003ca name=\"output_task_role_arn\"\u003e\u003c/a\u003e [task\\_role\\_arn](#output\\_task\\_role\\_arn) | ECS Task role ARN |\n| \u003ca name=\"output_url\"\u003e\u003c/a\u003e [url](#output\\_url) | Full URL of the app |\n\n## Breaking Changes\n\nPlease consult [BREAKING\\_CHANGES.md](BREAKING\\_CHANGES.md) for more information about version\nhistory and compatibility.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on the process for\ncontributing to this project.\n\nBe mindful of our [Code of Conduct](CODE\\_OF\\_CONDUCT.md).\n\n## We're hiring\n\nLook for current openings on BambooHR https://nventive.bamboohr.com/careers/\n\n## Stay in touch\n\n[nventive.com](https://nventive.com/) | [Linkedin](https://www.linkedin.com/company/nventive/) | [Instagram](https://www.instagram.com/hellonventive/) | [YouTube](https://www.youtube.com/channel/UCFQyvGEKMO10hEyvCqprp5w) | [Spotify](https://open.spotify.com/show/0lsxfIb6Ttm76jB4wgutob)\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnventive%2Fterraform-aws-ecs-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnventive%2Fterraform-aws-ecs-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnventive%2Fterraform-aws-ecs-app/lists"}