Schema URL https://catalog.lintel.tools/schemas/schemastore/aws-copilot-manifest/_shared/latest--common-definitions.json
Parent schema aws-copilot-manifest

Common definitions shared across AWS Copilot manifest schemas https://aws.github.io/copilot-cli/docs/manifest/overview/

Definitions

duration string

Duration string (e.g., 30s, 5m, 1h)

platform string | object

Operating system and architecture (formatted as [os]/[arch]) to pass with docker build --platform. For example, linux/arm64 or windows/x86_64. The default is linux/x86_64.

count integer | scaling-config

The number of tasks that your service should maintain.

cpu integer

Number of CPU units for the task. See the Amazon ECS docs for valid CPU values.

memory integer

Amount of memory in MiB used by the task. See the Amazon ECS docs for valid memory values.

entrypoint string | string[]

Override the default entrypoint in the image.

command string | string[]

Override the default command in the image.

sidecars Record<string, object>

Sidecar containers to run alongside the main container.

image-config object
build string | object

Build a container from a Dockerfile with optional arguments. Mutually exclusive with image.location.

location string

Instead of building a container from a Dockerfile, you can specify an existing image name. Mutually exclusive with image.build. The location field follows the same definition as the image parameter in the Amazon ECS task definition.

credentials string

An optional credentials ARN for a private repository. The credentials field follows the same definition as the credentialsParameter in the Amazon ECS task definition.

pattern=^arn:aws:
labels Record<string, string>

An optional key/value map of Docker labels to add to the container.

depends_on Record<string, string>

An optional key/value map of Container Dependencies to add to the container. The key of the map is a container name and the value is the condition to depend on. Valid conditions are: start, healthy, complete, and success. You cannot specify a complete or success dependency on an essential container.

port integer

The port exposed in your Dockerfile. Copilot should parse this value for you from your EXPOSE instruction.

min=1max=65535
healthcheck object

Optional configuration for container health checks.

5 nested properties
command string[]

The command to run to determine if the container is healthy. The string array can start with CMD to execute the command arguments directly, or CMD-SHELL to run the command with the container's default shell.

interval string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
retries integer

Number of times to retry before container is deemed unhealthy. Default is 2.

min=0
timeout string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
start_period string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
http-healthcheck object
path string

The destination that the health check requests are sent to.

pattern=^/.*$
port integer

The port that the health check requests are sent to. The default is image.port, or the port exposed by http.target_container, if set. If the port exposed is 443, then the health check protocol is automatically set to HTTPS.

min=1max=65535
success_codes string

The HTTP status codes that healthy targets must use when responding to an HTTP health check. You can specify values between 200 and 499. You can specify multiple values (for example, "200,202") or a range of values (for example, "200-299"). The default is 200.

pattern=^(\d{3}(,\d{3})*|\d{3}-\d{3})$
healthy_threshold integer

The number of consecutive health check successes required before considering an unhealthy target healthy. The default is 5. Range: 2-10.

min=2max=10
unhealthy_threshold integer

The number of consecutive health check failures required before considering a target unhealthy. The default is 2. Range: 2-10.

min=2max=10
interval string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
timeout string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
grace_period string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
http-additional-rule object
path string required

Requests to this path will be forwarded to your service. Each listener rule should listen on a unique path.

pattern=^/?.*$
healthcheck string | http-healthcheck
deregistration_delay string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
target_container string

A sidecar container that requests are routed to instead of the main service container. If the target container's port is set to 443, then the protocol is set to HTTPS so that the load balancer establishes TLS connections with the Fargate tasks using certificates that you install on the target container.

target_port integer
min=1max=65535
stickiness boolean

Indicates whether sticky sessions are enabled.

allowed_source_ips string[]

CIDR IP addresses permitted to access your service.

alias string | string[] | object[]

HTTPS domain alias of your service.

hosted_zone string

ID of your existing hosted zone; can only be used with http.alias and http.additional_rules.alias. If you have an environment with imported certificates, you can specify the hosted zone into which Copilot should insert the A record once the load balancer is created.

redirect_to_https boolean

Automatically redirect the Application Load Balancer from HTTP to HTTPS. By default it is true.

version string

The HTTP(S) protocol version. Must be one of 'grpc', 'http1', or 'http2'. If omitted, then 'http1' is assumed. If using gRPC, please note that a domain must be associated with your application.

Values: "grpc" "http1" "http2"
nlb-healthcheck object
port string

The port that the health check requests are sent to. Specify this if your health check should be performed on a different port than the container target port.

healthy_threshold integer

The number of consecutive health check successes required before considering an unhealthy target healthy. The default is 3. Range: 2-10.

min=2max=10
unhealthy_threshold integer

The number of consecutive health check failures required before considering a target unhealthy. The default is 3. Range: 2-10.

min=2max=10
grace_period string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
interval string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
timeout string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
nlb-additional-listener object
port string required

Required. The additional port and protocol for the Network Load Balancer to listen on.

pattern=^\d+(/(?:tcp|udp|tls))?$
healthcheck object
6 nested properties
port string

The port that the health check requests are sent to. Specify this if your health check should be performed on a different port than the container target port.

healthy_threshold integer

The number of consecutive health check successes required before considering an unhealthy target healthy. The default is 3. Range: 2-10.

min=2max=10
unhealthy_threshold integer

The number of consecutive health check failures required before considering a target unhealthy. The default is 3. Range: 2-10.

min=2max=10
grace_period string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
interval string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
timeout string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
target_container string

A sidecar container that takes the place of a service container.

target_port integer
min=1max=65535
ssl_policy string

The security policy that defines which protocols and ciphers are supported. To learn more, see this doc.

stickiness boolean

Indicates whether sticky sessions are enabled.

scaling-config object
spot integer

If you want to use Fargate Spot capacity to run your services, you can specify a number under the spot subfield.

min=1
range string | object
cooldown object

Cooldown scaling fields that are used as the default cooldown for all autoscaling fields specified.

2 nested properties
in string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
out string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
cpu_percentage integer | object

Scale up or down based on the average CPU your service should maintain.

memory_percentage integer | object

Scale up or down based on the average memory your service should maintain.

requests integer | object

Scale up or down based on the request count handled per task.

response_time duration | object

Scale up or down based on the service average response time.

queue_delay object

Scale up or down to maintain an acceptable queue latency by tracking against the acceptable backlog per task.

3 nested properties
acceptable_latency string required

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
msg_processing_time string required

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
cooldown object

Cooldown scaling fields that are used as the default cooldown for all autoscaling fields specified.

2 nested properties
in string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
out string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
deployment object
rolling string

Rolling deployment strategy. Valid values are 'default' and 'recreate'.

Values: "default" "recreate"
rollback_alarms string[] | object

If an alarm is in "In alarm" state at the beginning of a deployment, Amazon ECS will NOT monitor alarms for the duration of that deployment. For more details, read the docs here.

network object
connect boolean | object

Enable Service Connect for your service, which makes the traffic between services load balanced and more resilient. Defaults to false.

vpc object

Subnets and security groups attached to your tasks.

2 nested properties
placement string | object
security_groups string | object[] | object
environment-variables Record<string, string | object>
secrets Record<string, string | object>
storage object
ephemeral integer

Specify how much ephemeral task storage to provision in GiB. The default value and minimum is 20 GiB. The maximum size is 200 GiB. Sizes above 20 GiB incur additional charges.

min=20max=200
readonly_fs boolean

Specify true to give your container read-only access to its root file system.

volumes Record<string, object>

Specify the name and configuration of any EFS volumes you would like to attach.

publish object
topics object[]

List of topic objects.

logging object
retention integer

Optional. The number of days to retain the log events. See this page for all accepted values. If omitted, the default is 30.

Values: 1 3 5 7 14 30 60 90 120 150 180 365 400 545 731 1827 3653
image object

Optional. The Fluent Bit image to use. Defaults to public.ecr.aws/aws-observability/aws-for-fluent-bit:stable.

destination object

Optional. The configuration options to send to the FireLens log driver.

enableMetadata boolean

Optional. Whether to include ECS metadata in logs. Defaults to true.

secretOptions object

Optional. The secrets to pass to the log configuration.

configFilePath string

Optional. The full config file path in your custom Fluent Bit image.

env_file string

The path to a file from the root of your workspace containing the environment variables to pass to the logging sidecar container. For more information about the environment variable file, see Considerations for specifying environment variable files.

observability object
tracing string

The vendor to use for tracing. Currently, only awsxray is supported.

Values: "awsxray"
taskdef-override object
path string required

Required. Path to the Task Definition field to override.

value required

Required. Value of the Task Definition field to override.

environments Record<string, object>
subnet-config object
id string

The ID of the subnet to import. This field is mutually exclusive with cidr and az.

pattern=^subnet-[a-f0-9]{8}([a-f0-9]{9})?$
cidr string

An IPv4 CIDR block assigned to the subnet. This field is mutually exclusive with id.

pattern=^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}$
az string

The Availability Zone name assigned to the subnet. The az field is optional, by default Availability Zones are assigned in alphabetical order. This field is mutually exclusive with id.

pattern=^[a-z]+-[a-z]+-\d[a-z]$
security-group-rule object
ip_protocol string required

The IP protocol name or number.

cidr string required

The IPv4 address range, in CIDR format.

pattern=^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\d{1,2}$
ports integer | string

The port range or number for the security group rule.

queue-config object
delay string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
retention string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
timeout string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
fifo boolean | object
dead_letter object
1 nested properties
tries integer required

If specified, creates a dead letter queue and a redrive policy which routes messages to the DLQ after tries attempts.

min=1
subscribe-config object
topics object[]

Contains information about which SNS topics the worker service should subscribe to.

queue object
5 nested properties
delay string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
retention string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
timeout string

Duration string (e.g., 30s, 5m, 1h)

pattern=^\d+(ms|[smhd])$
fifo boolean | object
dead_letter object
1 nested properties
tries integer required

If specified, creates a dead letter queue and a redrive policy which routes messages to the DLQ after tries attempts.

min=1
port-value integer