Service

ecs.services.k8s.aws/v1alpha1

TypeLink
GoDocecs-controller/apis/v1alpha1#Service

Metadata

PropertyValue
ScopeNamespaced
KindService
ListKindServiceList
Pluralservices
Singularservice

Details on a service within a cluster.

Spec

capacityProviderStrategy:
- base: integer
  capacityProvider: string
  weight: integer
cluster: string
clusterRef: 
  from: 
    name: string
deploymentConfiguration: 
  alarms: 
    alarmNames:
    - string
    enable: boolean
    rollback: boolean
  deploymentCircuitBreaker: 
    enable: boolean
    rollback: boolean
  maximumPercent: integer
  minimumHealthyPercent: integer
deploymentController: 
  type: string
desiredCount: integer
enableECSManagedTags: boolean
enableExecuteCommand: boolean
healthCheckGracePeriodSeconds: integer
launchType: string
loadBalancers:
- containerName: string
  containerPort: integer
  loadBalancerName: string
  targetGroupARN: string
name: string
networkConfiguration: 
  awsVPCConfiguration: 
    assignPublicIP: string
    securityGroups:
    - string
    subnets:
    - string
placementConstraints:
- expression: string
  type: string
placementStrategy:
- field: string
  type: string
platformVersion: string
propagateTags: string
role: string
roleRef: 
  from: 
    name: string
schedulingStrategy: string
serviceConnectConfiguration: 
  enabled: boolean
  logConfiguration: 
    logDriver: string
    options: {}
    secretOptions:
    - name: string
      valueFrom: string
  namespace: string
  services:
    clientAliases:
    - dnsName: string
      port: integer
    discoveryName: string
    ingressPortOverride: integer
    portName: string
    timeout: 
      idleTimeoutSeconds: integer
      perRequestTimeoutSeconds: integer
    tls: 
      issuerCertificateAuthority: 
        awsPCAAuthorityARN: string
      kmsKey: string
      roleARN: string
serviceRegistries:
- containerName: string
  containerPort: integer
  port: integer
  registryARN: string
tags:
- key: string
  value: string
taskDefinition: string
taskDefinitionRef: 
  from: 
    name: string
volumeConfigurations:
  managedEBSVolume: 
    encrypted: boolean
    filesystemType: string
    iops: integer
    kmsKeyID: string
    roleARN: string
    sizeInGiB: integer
    snapshotID: string
    tagSpecifications:
    - propagateTags: string
      resourceType: string
      tags:
      - key: string
        value: string
    throughput: integer
    volumeType: string
  name: string
FieldDescription
capacityProviderStrategy
Optional
array
The capacity provider strategy to use for the service.


If a capacityProviderStrategy is specified, the launchType parameter must
be omitted. If no capacityProviderStrategy or launchType is specified, the
defaultCapacityProviderStrategy for the cluster is used.


A capacity provider strategy may contain a maximum of 6 capacity providers.
capacityProviderStrategy.[]
Required
object
The details of a capacity provider strategy. A capacity provider strategy
can be set when using the RunTask or CreateCluster APIs or as the default
capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

A capacity provider strategy may contain a maximum of 6 capacity providers. || capacityProviderStrategy.[].base
Optional | integer
| | capacityProviderStrategy.[].capacityProvider
Optional | string
| | capacityProviderStrategy.[].weight
Optional | integer
| | cluster
Optional | string
The short name or full Amazon Resource Name (ARN) of the cluster that you
run your service on. If you do not specify a cluster, the default cluster
is assumed. | | clusterRef
Optional | object
AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference
type to provide more user friendly syntax for references using ‘from’ field
Ex:
APIIDRef:


from:
name: my-api | | clusterRef.from
Optional | object
AWSResourceReference provides all the values necessary to reference another
k8s resource for finding the identifier(Id/ARN/Name) | | clusterRef.from.name
Optional | string
| | deploymentConfiguration
Optional | object
Optional deployment parameters that control how many tasks run during the
deployment and the ordering of stopping and starting tasks. | | deploymentConfiguration.alarms
Optional | object
One of the methods which provide a way for you to quickly identify when a
deployment has failed, and then to optionally roll back the failure to the
last working deployment.


When the alarms are generated, Amazon ECS sets the service deployment to
failed. Set the rollback parameter to have Amazon ECS to roll back your service
to the last completed deployment after a failure.


You can only use the DeploymentAlarms method to detect failures when the
DeploymentController is set to ECS (rolling update).


For more information, see Rolling update (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html)
in the Amazon Elastic Container Service Developer Guide . | | deploymentConfiguration.alarms.alarmNames
Optional | array
| | deploymentConfiguration.alarms.alarmNames.[]
Required | string
|| deploymentConfiguration.alarms.enable
Optional | boolean
| | deploymentConfiguration.alarms.rollback
Optional | boolean
| | deploymentConfiguration.deploymentCircuitBreaker
Optional | object
The deployment circuit breaker can only be used for services using the rolling
update (ECS) deployment type.


The deployment circuit breaker determines whether a service deployment will
fail if the service can’t reach a steady state. If it is turned on, a service
deployment will transition to a failed state and stop launching new tasks.
You can also configure Amazon ECS to roll back your service to the last completed
deployment after a failure. For more information, see Rolling update (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html)
in the Amazon Elastic Container Service Developer Guide.


For more information about API failure reasons, see API failure reasons (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html)
in the Amazon Elastic Container Service Developer Guide. | | deploymentConfiguration.deploymentCircuitBreaker.enable
Optional | boolean
| | deploymentConfiguration.deploymentCircuitBreaker.rollback
Optional | boolean
| | deploymentConfiguration.maximumPercent
Optional | integer
| | deploymentConfiguration.minimumHealthyPercent
Optional | integer
| | deploymentController
Optional | object
The deployment controller to use for the service. If no deployment controller
is specified, the default value of ECS is used. | | deploymentController.type
Optional | string
| | desiredCount
Optional | integer
The number of instantiations of the specified task definition to place and
keep running in your service.


This is required if schedulingStrategy is REPLICA or isn’t specified. If
schedulingStrategy is DAEMON then this isn’t required. | | enableECSManagedTags
Optional | boolean
Specifies whether to turn on Amazon ECS managed tags for the tasks within
the service. For more information, see Tagging your Amazon ECS resources
(https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
in the Amazon Elastic Container Service Developer Guide.


When you use Amazon ECS managed tags, you need to set the propagateTags request
parameter. | | enableExecuteCommand
Optional | boolean
Determines whether the execute command functionality is turned on for the
service. If true, this enables execute command functionality on all containers
in the service tasks. | | healthCheckGracePeriodSeconds
Optional | integer
The period of time, in seconds, that the Amazon ECS service scheduler ignores
unhealthy Elastic Load Balancing target health checks after a task has first
started. This is only used when your service is configured to use a load
balancer. If your service has a load balancer defined and you don’t specify
a health check grace period value, the default value of 0 is used.


If you do not use an Elastic Load Balancing, we recommend that you use the
startPeriod in the task definition health check parameters. For more information,
see Health check (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html).


If your service’s tasks take a while to start and respond to Elastic Load
Balancing health checks, you can specify a health check grace period of up
to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS
service scheduler ignores health check status. This grace period can prevent
the service scheduler from marking tasks as unhealthy and stopping them before
they have time to come up. | | launchType
Optional | string
The infrastructure that you run your service on. For more information, see
Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)
in the Amazon Elastic Container Service Developer Guide.


The FARGATE launch type runs your tasks on Fargate On-Demand infrastructure.


Fargate Spot infrastructure is available for use but a capacity provider
strategy must be used. For more information, see Fargate capacity providers
(https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-capacity-providers.html)
in the Amazon ECS User Guide for Fargate.


The EC2 launch type runs your tasks on Amazon EC2 instances registered to
your cluster.


The EXTERNAL launch type runs your tasks on your on-premises server or virtual
machine (VM) capacity registered to your cluster.


A service can use either a launch type or a capacity provider strategy. If
a launchType is specified, the capacityProviderStrategy parameter must be
omitted. | | loadBalancers
Optional | array
A load balancer object representing the load balancers to use with your service.
For more information, see Service load balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)
in the Amazon Elastic Container Service Developer Guide.


If the service uses the rolling update (ECS) deployment controller and using
either an Application Load Balancer or Network Load Balancer, you must specify
one or more target group ARNs to attach to the service. The service-linked
role is required for services that use multiple target groups. For more information,
see Using service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
in the Amazon Elastic Container Service Developer Guide.


If the service uses the CODE_DEPLOY deployment controller, the service is
required to use either an Application Load Balancer or Network Load Balancer.
When creating an CodeDeploy deployment group, you specify two target groups
(referred to as a targetGroupPair). During a deployment, CodeDeploy determines
which task set in your service has the status PRIMARY, and it associates
one target group with it. Then, it also associates the other target group
with the replacement task set. The load balancer can also have up to two
listeners: a required listener for production traffic and an optional listener
that you can use to perform validation tests with Lambda functions before
routing production traffic to it.


If you use the CODE_DEPLOY deployment controller, these values can be changed
when updating the service.


For Application Load Balancers and Network Load Balancers, this object must
contain the load balancer target group ARN, the container name, and the container
port to access from the load balancer. The container name must be as it appears
in a container definition. The load balancer name parameter must be omitted.
When a task from this service is placed on a container instance, the container
instance and port combination is registered as a target in the target group
that’s specified here.


For Classic Load Balancers, this object must contain the load balancer name,
the container name , and the container port to access from the load balancer.
The container name must be as it appears in a container definition. The target
group ARN parameter must be omitted. When a task from this service is placed
on a container instance, the container instance is registered with the load
balancer that’s specified here.


Services with tasks that use the awsvpc network mode (for example, those
with the Fargate launch type) only support Application Load Balancers and
Network Load Balancers. Classic Load Balancers aren’t supported. Also, when
you create any target groups for these services, you must choose ip as the
target type, not instance. This is because tasks that use the awsvpc network
mode are associated with an elastic network interface, not an Amazon EC2
instance. | | loadBalancers.[]
Required | object
The load balancer configuration to use with a service or task set.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) in the Amazon Elastic Container Service Developer Guide. || loadBalancers.[].containerName
Optional | string
| | loadBalancers.[].containerPort
Optional | integer
| | loadBalancers.[].loadBalancerName
Optional | string
| | loadBalancers.[].targetGroupARN
Optional | string
| | name
Required | string
The name of your service. Up to 255 letters (uppercase and lowercase), numbers,
underscores, and hyphens are allowed. Service names must be unique within
a cluster, but you can have similarly named services in multiple clusters
within a Region or across multiple Regions. | | networkConfiguration
Optional | object
The network configuration for the service. This parameter is required for
task definitions that use the awsvpc network mode to receive their own elastic
network interface, and it isn’t supported for other network modes. For more
information, see Task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html)
in the Amazon Elastic Container Service Developer Guide. | | networkConfiguration.awsVPCConfiguration
Optional | object
An object representing the networking details for a task or service. For
example awsvpcConfiguration={subnets=[“subnet-12344321”],securityGroups=[“sg-12344321”]} | | networkConfiguration.awsVPCConfiguration.assignPublicIP
Optional | string
| | networkConfiguration.awsVPCConfiguration.securityGroups
Optional | array
| | networkConfiguration.awsVPCConfiguration.securityGroups.[]
Required | string
|| networkConfiguration.awsVPCConfiguration.subnets
Optional | array
| | networkConfiguration.awsVPCConfiguration.subnets.[]
Required | string
|| placementConstraints
Optional | array
An array of placement constraint objects to use for tasks in your service.
You can specify a maximum of 10 constraints for each task. This limit includes
constraints in the task definition and those specified at runtime. | | placementConstraints.[]
Required | object
An object representing a constraint on task placement. For more information, see Task placement constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) in the Amazon Elastic Container Service Developer Guide.

If you’re using the Fargate launch type, task placement constraints aren’t supported. || placementConstraints.[].expression
Optional | string
| | placementConstraints.[].type
Optional | string
| | placementStrategy
Optional | array
The placement strategy objects to use for tasks in your service. You can
specify a maximum of 5 strategy rules for each service. | | placementStrategy.[]
Required | object
The task placement strategy for a task or service. For more information, see Task placement strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the Amazon Elastic Container Service Developer Guide. || placementStrategy.[].field
Optional | string
| | placementStrategy.[].type
Optional | string
| | platformVersion
Optional | string
The platform version that your tasks in the service are running on. A platform
version is specified only for tasks using the Fargate launch type. If one
isn’t specified, the LATEST platform version is used. For more information,
see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)
in the Amazon Elastic Container Service Developer Guide. | | propagateTags
Optional | string
Specifies whether to propagate the tags from the task definition to the task.
If no value is specified, the tags aren’t propagated. Tags can only be propagated
to the task during task creation. To add tags to a task after task creation,
use the TagResource (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html)
API action.


The default is NONE. | | role
Optional | string
The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon
ECS to make calls to your load balancer on your behalf. This parameter is
only permitted if you are using a load balancer with your service and your
task definition doesn’t use the awsvpc network mode. If you specify the role
parameter, you must also specify a load balancer object with the loadBalancers
parameter.


If your account has already created the Amazon ECS service-linked role, that
role is used for your service unless you specify a role here. The service-linked
role is required if your task definition uses the awsvpc network mode or
if the service is configured to use service discovery, an external deployment
controller, multiple target groups, or Elastic Inference accelerators in
which case you don’t specify a role here. For more information, see Using
service-linked roles for Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html)
in the Amazon Elastic Container Service Developer Guide.


If your specified role has a path other than /, then you must either specify
the full role ARN (this is recommended) or prefix the role name with the
path. For example, if a role with the name bar has a path of /foo/ then you
would specify /foo/bar as the role name. For more information, see Friendly
names and paths (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)
in the IAM User Guide. | | roleRef
Optional | object
AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference
type to provide more user friendly syntax for references using ‘from’ field
Ex:
APIIDRef:


from:
name: my-api | | roleRef.from
Optional | object
AWSResourceReference provides all the values necessary to reference another
k8s resource for finding the identifier(Id/ARN/Name) | | roleRef.from.name
Optional | string
| | schedulingStrategy
Optional | string
The scheduling strategy to use for the service. For more information, see
Services (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).


There are two service scheduler strategies available:


* REPLICA-The replica scheduling strategy places and maintains the desired
number of tasks across your cluster. By default, the service scheduler
spreads tasks across Availability Zones. You can use task placement strategies
and constraints to customize task placement decisions. This scheduler
strategy is required if the service uses the CODE_DEPLOY or EXTERNAL deployment
controller types.


* DAEMON-The daemon scheduling strategy deploys exactly one task on each
active container instance that meets all of the task placement constraints
that you specify in your cluster. The service scheduler also evaluates
the task placement constraints for running tasks and will stop tasks that
don’t meet the placement constraints. When you’re using this strategy,
you don’t need to specify a desired number of tasks, a task placement
strategy, or use Service Auto Scaling policies. Tasks using the Fargate
launch type or the CODE_DEPLOY or EXTERNAL deployment controller types
don’t support the DAEMON scheduling strategy. | | serviceConnectConfiguration
Optional | object
The configuration for this service to discover and connect to services, and
be discovered by, and connected from, other services within a namespace.


Tasks that run in a namespace can use short names to connect to services
in the namespace. Tasks can connect to services across all of the clusters
in the namespace. Tasks connect through a managed proxy container that collects
logs and metrics for increased visibility. Only the tasks that Amazon ECS
services create are supported with Service Connect. For more information,
see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html)
in the Amazon Elastic Container Service Developer Guide. | | serviceConnectConfiguration.enabled
Optional | boolean
| | serviceConnectConfiguration.logConfiguration
Optional | object
The log configuration for the container. This parameter maps to LogConfig
in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
and the –log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).


By default, containers use the same logging driver that the Docker daemon
uses. However, the container might use a different logging driver than the
Docker daemon by specifying a log driver configuration in the container definition.
For more information about the options for different supported log drivers,
see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
in the Docker documentation.


Understand the following when specifying a log configuration for your containers.


* Amazon ECS currently supports a subset of the logging drivers available
to the Docker daemon. Additional log drivers may be available in future
releases of the Amazon ECS container agent. For tasks on Fargate, the
supported log drivers are awslogs, splunk, and awsfirelens. For tasks
hosted on Amazon EC2 instances, the supported log drivers are awslogs,
fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.


* This parameter requires version 1.18 of the Docker Remote API or greater
on your container instance.


* For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container
agent must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS
environment variable before containers placed on that instance can use
these log configuration options. For more information, see Amazon ECS
container agent configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
in the Amazon Elastic Container Service Developer Guide.


* For tasks that are on Fargate, because you don’t have access to the
underlying infrastructure your tasks are hosted on, any additional software
needed must be installed outside of the task. For example, the Fluentd
output aggregators or a remote host running Logstash to send Gelf logs
to. | | serviceConnectConfiguration.logConfiguration.logDriver
Optional | string
| | serviceConnectConfiguration.logConfiguration.options
Optional | object
| | serviceConnectConfiguration.logConfiguration.secretOptions
Optional | array
| | serviceConnectConfiguration.logConfiguration.secretOptions.[]
Required | object
An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying sensitive data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the Amazon Elastic Container Service Developer Guide. || serviceConnectConfiguration.logConfiguration.secretOptions.[].name
Optional | string
| | serviceConnectConfiguration.logConfiguration.secretOptions.[].valueFrom
Optional | string
| | serviceConnectConfiguration.namespace
Optional | string
| | serviceConnectConfiguration.services
Optional | array
| | serviceConnectConfiguration.services.[]
Required | object
The Service Connect service object configuration. For more information, see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the Amazon Elastic Container Service Developer Guide. || serviceConnectConfiguration.services.[].clientAliases
Optional | array
| | serviceConnectConfiguration.services.[].clientAliases.[]
Required | object
Each alias (“endpoint”) is a fully-qualified name and port number that other tasks (“clients”) can use to connect to this service.

Each name and port mapping must be unique within the namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the Amazon Elastic Container Service Developer Guide. || serviceConnectConfiguration.services.[].clientAliases.[].dnsName
Optional | string
| | serviceConnectConfiguration.services.[].clientAliases.[].port
Optional | integer
| | serviceConnectConfiguration.services.[].discoveryName
Optional | string
| | serviceConnectConfiguration.services.[].ingressPortOverride
Optional | integer
| | serviceConnectConfiguration.services.[].portName
Optional | string
| | serviceConnectConfiguration.services.[].timeout
Optional | object
An object that represents the timeout configurations for Service Connect.


If idleTimeout is set to a time that is less than perRequestTimeout, the
connection will close when the idleTimeout is reached and not the perRequestTimeout. | | serviceConnectConfiguration.services.[].timeout.idleTimeoutSeconds
Optional | integer
| | serviceConnectConfiguration.services.[].timeout.perRequestTimeoutSeconds
Optional | integer
| | serviceConnectConfiguration.services.[].tls
Optional | object
An object that represents the configuration for Service Connect TLS. | | serviceConnectConfiguration.services.[].tls.issuerCertificateAuthority
Optional | object
An object that represents the Amazon Web Services Private Certificate Authority
certificate. | | serviceConnectConfiguration.services.[].tls.issuerCertificateAuthority.awsPCAAuthorityARN
Optional | string
| | serviceConnectConfiguration.services.[].tls.kmsKey
Optional | string
| | serviceConnectConfiguration.services.[].tls.roleARN
Optional | string
| | serviceRegistries
Optional | array
The details of the service discovery registry to associate with this service.
For more information, see Service discovery (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html).


Each service may be associated with one service registry. Multiple service
registries for each service isn’t supported. | | serviceRegistries.[]
Required | object
The details for the service registry.

Each service may be associated with one service registry. Multiple service registries for each service are not supported.

When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration. || serviceRegistries.[].containerName
Optional | string
| | serviceRegistries.[].containerPort
Optional | integer
| | serviceRegistries.[].port
Optional | integer
| | serviceRegistries.[].registryARN
Optional | string
| | tags
Optional | array
The metadata that you apply to the service to help you categorize and organize
them. Each tag consists of a key and an optional value, both of which you
define. When a service is deleted, the tags are deleted as well.


The following basic restrictions apply to tags:


* Maximum number of tags per resource - 50


* For each resource, each tag key must be unique, and each tag key can
have only one value.


* Maximum key length - 128 Unicode characters in UTF-8


* Maximum value length - 256 Unicode characters in UTF-8


* If your tagging schema is used across multiple services and resources,
remember that other services may have restrictions on allowed characters.
Generally allowed characters are: letters, numbers, and spaces representable
in UTF-8, and the following characters: + - = . _ : / @.


* Tag keys and values are case-sensitive.


* Do not use aws:, AWS:, or any upper or lowercase combination of such
as a prefix for either keys or values as it is reserved for Amazon Web
Services use. You cannot edit or delete tag keys or values with this prefix.
Tags with this prefix do not count against your tags per resource limit. | | tags.[]
Required | object
The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8

  • Maximum value length - 256 Unicode characters in UTF-8

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case-sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. || tags.[].key
    Optional | string
    | | tags.[].value
    Optional | string
    | | taskDefinition
    Optional | string
    The family and revision (family:revision) or full ARN of the task definition
    to run in your service. If a revision isn’t specified, the latest ACTIVE
    revision is used.


    A task definition must be specified if the service uses either the ECS or
    CODE_DEPLOY deployment controllers.


    For more information about deployment types, see Amazon ECS deployment types
    (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). | | taskDefinitionRef
    Optional | object
    AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference
    type to provide more user friendly syntax for references using ‘from’ field
    Ex:
    APIIDRef:


    from:
    name: my-api | | taskDefinitionRef.from
    Optional | object
    AWSResourceReference provides all the values necessary to reference another
    k8s resource for finding the identifier(Id/ARN/Name) | | taskDefinitionRef.from.name
    Optional | string
    | | volumeConfigurations
    Optional | array
    The configuration for a volume specified in the task definition as a volume
    that is configured at launch time. Currently, the only supported volume type
    is an Amazon EBS volume. | | volumeConfigurations.[]
    Required | object
    The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume. || volumeConfigurations.[].managedEBSVolume
    Optional | object
    The configuration for the Amazon EBS volume that Amazon ECS creates and manages
    on your behalf. These settings are used to create each Amazon EBS volume,
    with one volume created for each task in the service.


    Many of these parameters map 1:1 with the Amazon EBS CreateVolume API request
    parameters. | | volumeConfigurations.[].managedEBSVolume.encrypted
    Optional | boolean
    | | volumeConfigurations.[].managedEBSVolume.filesystemType
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.iops
    Optional | integer
    | | volumeConfigurations.[].managedEBSVolume.kmsKeyID
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.roleARN
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.sizeInGiB
    Optional | integer
    | | volumeConfigurations.[].managedEBSVolume.snapshotID
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.tagSpecifications
    Optional | array
    | | volumeConfigurations.[].managedEBSVolume.tagSpecifications.[]
    Required | object
    The tag specifications of an Amazon EBS volume. || volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].propagateTags
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].resourceType
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags
    Optional | array
    | | volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags.[]
    Required | object
    The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8

  • Maximum value length - 256 Unicode characters in UTF-8

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case-sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. || volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags.[].key
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags.[].value
    Optional | string
    | | volumeConfigurations.[].managedEBSVolume.throughput
    Optional | integer
    | | volumeConfigurations.[].managedEBSVolume.volumeType
    Optional | string
    | | volumeConfigurations.[].name
    Optional | string
    |

Status

ackResourceMetadata: 
  arn: string
  ownerAccountID: string
  region: string
clusterARN: string
conditions:
- lastTransitionTime: string
  message: string
  reason: string
  status: string
  type: string
createdAt: string
createdBy: string
deployments:
  capacityProviderStrategy:
  - base: integer
    capacityProvider: string
    weight: integer
  createdAt: string
  desiredCount: integer
  failedTasks: integer
  id: string
  launchType: string
  networkConfiguration: 
    awsVPCConfiguration: 
      assignPublicIP: string
      securityGroups:
      - string
      subnets:
      - string
  pendingCount: integer
  platformFamily: string
  platformVersion: string
  rolloutState: string
  rolloutStateReason: string
  runningCount: integer
  serviceConnectConfiguration: 
    enabled: boolean
    logConfiguration: 
      logDriver: string
      options: {}
      secretOptions:
      - name: string
        valueFrom: string
    namespace: string
    services:
      clientAliases:
      - dnsName: string
        port: integer
      discoveryName: string
      ingressPortOverride: integer
      portName: string
      timeout: 
        idleTimeoutSeconds: integer
        perRequestTimeoutSeconds: integer
      tls: 
        issuerCertificateAuthority: 
          awsPCAAuthorityARN: string
        kmsKey: string
        roleARN: string
  serviceConnectResources:
  - discoveryARN: string
    discoveryName: string
  status: string
  taskDefinition: string
  updatedAt: string
  volumeConfigurations:
    managedEBSVolume: 
      encrypted: boolean
      filesystemType: string
      iops: integer
      kmsKeyID: string
      roleARN: string
      sizeInGiB: integer
      snapshotID: string
      tagSpecifications:
      - propagateTags: string
        resourceType: string
        tags:
        - key: string
          value: string
      throughput: integer
      volumeType: string
    name: string
events:
- createdAt: string
  id: string
  message: string
pendingCount: integer
platformFamily: string
roleARN: string
runningCount: integer
status: string
taskSets:
  capacityProviderStrategy:
  - base: integer
    capacityProvider: string
    weight: integer
  clusterARN: string
  computedDesiredCount: integer
  createdAt: string
  externalID: string
  id: string
  launchType: string
  loadBalancers:
  - containerName: string
    containerPort: integer
    loadBalancerName: string
    targetGroupARN: string
  networkConfiguration: 
    awsVPCConfiguration: 
      assignPublicIP: string
      securityGroups:
      - string
      subnets:
      - string
  pendingCount: integer
  platformFamily: string
  platformVersion: string
  runningCount: integer
  scale: 
    unit: string
    value: number
  serviceARN: string
  serviceRegistries:
  - containerName: string
    containerPort: integer
    port: integer
    registryARN: string
  stabilityStatus: string
  stabilityStatusAt: string
  startedBy: string
  status: string
  tags:
  - key: string
    value: string
  taskDefinition: string
  taskSetARN: string
  updatedAt: string
FieldDescription
ackResourceMetadata
Optional
object
All CRs managed by ACK have a common Status.ACKResourceMetadata member
that is used to contain resource sync state, account ownership,
constructed ARN for the resource
ackResourceMetadata.arn
Optional
string
ARN is the Amazon Resource Name for the resource. This is a
globally-unique identifier and is set only by the ACK service controller
once the controller has orchestrated the creation of the resource OR
when it has verified that an “adopted” resource (a resource where the
ARN annotation was set by the Kubernetes user on the CR) exists and
matches the supplied CR’s Spec field values.
TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse
https://github.com/aws/aws-controllers-k8s/issues/270
ackResourceMetadata.ownerAccountID
Required
string
OwnerAccountID is the AWS Account ID of the account that owns the
backend AWS service API resource.
ackResourceMetadata.region
Required
string
Region is the AWS region in which the resource exists or will exist.
clusterARN
Optional
string
The Amazon Resource Name (ARN) of the cluster that hosts the service.
conditions
Optional
array
All CRS managed by ACK have a common Status.Conditions member that
contains a collection of ackv1alpha1.Condition objects that describe
the various terminal states of the CR and its backend AWS service API
resource
conditions.[]
Required
object
Condition is the common struct used by all CRDs managed by ACK service
controllers to indicate terminal states of the CR and its backend AWS
service API resource
conditions.[].message
Optional
string
A human readable message indicating details about the transition.
conditions.[].reason
Optional
string
The reason for the condition’s last transition.
conditions.[].status
Optional
string
Status of the condition, one of True, False, Unknown.
conditions.[].type
Optional
string
Type is the type of the Condition
createdAt
Optional
string
The Unix timestamp for the time when the service was created.
createdBy
Optional
string
The principal that created the service.
deployments
Optional
array
The current state of deployments for the service.
deployments.[]
Required
object
The details of an Amazon ECS service deployment. This is used only when a
service uses the ECS deployment controller type.
deployments.[].capacityProviderStrategy.[]
Required
object
The details of a capacity provider strategy. A capacity provider strategy
can be set when using the RunTask or CreateCluster APIs or as the default
capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

A capacity provider strategy may contain a maximum of 6 capacity providers. || deployments.[].capacityProviderStrategy.[].base
Optional | integer
| | deployments.[].capacityProviderStrategy.[].capacityProvider
Optional | string
| | deployments.[].capacityProviderStrategy.[].weight
Optional | integer
| | deployments.[].createdAt
Optional | string
| | deployments.[].desiredCount
Optional | integer
| | deployments.[].failedTasks
Optional | integer
| | deployments.[].id
Optional | string
| | deployments.[].launchType
Optional | string
| | deployments.[].networkConfiguration
Optional | object
The network configuration for a task or service. | | deployments.[].networkConfiguration.awsVPCConfiguration
Optional | object
An object representing the networking details for a task or service. For
example awsvpcConfiguration={subnets=[“subnet-12344321”],securityGroups=[“sg-12344321”]} | | deployments.[].networkConfiguration.awsVPCConfiguration.assignPublicIP
Optional | string
| | deployments.[].networkConfiguration.awsVPCConfiguration.securityGroups
Optional | array
| | deployments.[].networkConfiguration.awsVPCConfiguration.securityGroups.[]
Required | string
|| deployments.[].networkConfiguration.awsVPCConfiguration.subnets
Optional | array
| | deployments.[].networkConfiguration.awsVPCConfiguration.subnets.[]
Required | string
|| deployments.[].pendingCount
Optional | integer
| | deployments.[].platformFamily
Optional | string
| | deployments.[].platformVersion
Optional | string
| | deployments.[].rolloutState
Optional | string
| | deployments.[].rolloutStateReason
Optional | string
| | deployments.[].runningCount
Optional | integer
| | deployments.[].serviceConnectConfiguration
Optional | object
The Service Connect configuration of your Amazon ECS service. The configuration
for this service to discover and connect to services, and be discovered by,
and connected from, other services within a namespace.


Tasks that run in a namespace can use short names to connect to services
in the namespace. Tasks can connect to services across all of the clusters
in the namespace. Tasks connect through a managed proxy container that collects
logs and metrics for increased visibility. Only the tasks that Amazon ECS
services create are supported with Service Connect. For more information,
see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html)
in the Amazon Elastic Container Service Developer Guide. | | deployments.[].serviceConnectConfiguration.enabled
Optional | boolean
| | deployments.[].serviceConnectConfiguration.logConfiguration
Optional | object
The log configuration for the container. This parameter maps to LogConfig
in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate)
section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/)
and the –log-driver option to docker run (https://docs.docker.com/engine/reference/commandline/run/).


By default, containers use the same logging driver that the Docker daemon
uses. However, the container might use a different logging driver than the
Docker daemon by specifying a log driver configuration in the container definition.
For more information about the options for different supported log drivers,
see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/)
in the Docker documentation.


Understand the following when specifying a log configuration for your containers.


* Amazon ECS currently supports a subset of the logging drivers available
to the Docker daemon. Additional log drivers may be available in future
releases of the Amazon ECS container agent. For tasks on Fargate, the
supported log drivers are awslogs, splunk, and awsfirelens. For tasks
hosted on Amazon EC2 instances, the supported log drivers are awslogs,
fluentd, gelf, json-file, journald, logentries,syslog, splunk, and awsfirelens.


* This parameter requires version 1.18 of the Docker Remote API or greater
on your container instance.


* For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container
agent must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS
environment variable before containers placed on that instance can use
these log configuration options. For more information, see Amazon ECS
container agent configuration (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html)
in the Amazon Elastic Container Service Developer Guide.


* For tasks that are on Fargate, because you don’t have access to the
underlying infrastructure your tasks are hosted on, any additional software
needed must be installed outside of the task. For example, the Fluentd
output aggregators or a remote host running Logstash to send Gelf logs
to. | | deployments.[].serviceConnectConfiguration.logConfiguration.logDriver
Optional | string
| | deployments.[].serviceConnectConfiguration.logConfiguration.options
Optional | object
| | deployments.[].serviceConnectConfiguration.logConfiguration.secretOptions
Optional | array
| | deployments.[].serviceConnectConfiguration.logConfiguration.secretOptions.[]
Required | object
An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying sensitive data (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the Amazon Elastic Container Service Developer Guide. || deployments.[].serviceConnectConfiguration.logConfiguration.secretOptions.[].name
Optional | string
| | deployments.[].serviceConnectConfiguration.logConfiguration.secretOptions.[].valueFrom
Optional | string
| | deployments.[].serviceConnectConfiguration.namespace
Optional | string
| | deployments.[].serviceConnectConfiguration.services
Optional | array
| | deployments.[].serviceConnectConfiguration.services.[]
Required | object
The Service Connect service object configuration. For more information, see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the Amazon Elastic Container Service Developer Guide. || deployments.[].serviceConnectConfiguration.services.[].clientAliases
Optional | array
| | deployments.[].serviceConnectConfiguration.services.[].clientAliases.[]
Required | object
Each alias (“endpoint”) is a fully-qualified name and port number that other tasks (“clients”) can use to connect to this service.

Each name and port mapping must be unique within the namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the Amazon Elastic Container Service Developer Guide. || deployments.[].serviceConnectConfiguration.services.[].clientAliases.[].dnsName
Optional | string
| | deployments.[].serviceConnectConfiguration.services.[].clientAliases.[].port
Optional | integer
| | deployments.[].serviceConnectConfiguration.services.[].discoveryName
Optional | string
| | deployments.[].serviceConnectConfiguration.services.[].ingressPortOverride
Optional | integer
| | deployments.[].serviceConnectConfiguration.services.[].portName
Optional | string
| | deployments.[].serviceConnectConfiguration.services.[].timeout
Optional | object
An object that represents the timeout configurations for Service Connect.


If idleTimeout is set to a time that is less than perRequestTimeout, the
connection will close when the idleTimeout is reached and not the perRequestTimeout. | | deployments.[].serviceConnectConfiguration.services.[].timeout.idleTimeoutSeconds
Optional | integer
| | deployments.[].serviceConnectConfiguration.services.[].timeout.perRequestTimeoutSeconds
Optional | integer
| | deployments.[].serviceConnectConfiguration.services.[].tls
Optional | object
An object that represents the configuration for Service Connect TLS. | | deployments.[].serviceConnectConfiguration.services.[].tls.issuerCertificateAuthority
Optional | object
An object that represents the Amazon Web Services Private Certificate Authority
certificate. | | deployments.[].serviceConnectConfiguration.services.[].tls.issuerCertificateAuthority.awsPCAAuthorityARN
Optional | string
| | deployments.[].serviceConnectConfiguration.services.[].tls.kmsKey
Optional | string
| | deployments.[].serviceConnectConfiguration.services.[].tls.roleARN
Optional | string
| | deployments.[].serviceConnectResources
Optional | array
| | deployments.[].serviceConnectResources.[]
Required | object
The Service Connect resource. Each configuration maps a discovery name to a Cloud Map service name. The data is stored in Cloud Map as part of the Service Connect configuration for each discovery name of this Amazon ECS service.

A task can resolve the dnsName for each of the clientAliases of a service. However a task can’t resolve the discovery names. If you want to connect to a service, refer to the ServiceConnectConfiguration of that service for the list of clientAliases that you can use. || deployments.[].serviceConnectResources.[].discoveryARN
Optional | string
| | deployments.[].serviceConnectResources.[].discoveryName
Optional | string
| | deployments.[].status
Optional | string
| | deployments.[].taskDefinition
Optional | string
| | deployments.[].updatedAt
Optional | string
| | deployments.[].volumeConfigurations
Optional | array
| | deployments.[].volumeConfigurations.[]
Required | object
The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume. || deployments.[].volumeConfigurations.[].managedEBSVolume
Optional | object
The configuration for the Amazon EBS volume that Amazon ECS creates and manages
on your behalf. These settings are used to create each Amazon EBS volume,
with one volume created for each task in the service.


Many of these parameters map 1:1 with the Amazon EBS CreateVolume API request
parameters. | | deployments.[].volumeConfigurations.[].managedEBSVolume.encrypted
Optional | boolean
| | deployments.[].volumeConfigurations.[].managedEBSVolume.filesystemType
Optional | string
| | deployments.[].volumeConfigurations.[].managedEBSVolume.iops
Optional | integer
| | deployments.[].volumeConfigurations.[].managedEBSVolume.kmsKeyID
Optional | string
| | deployments.[].volumeConfigurations.[].managedEBSVolume.roleARN
Optional | string
| | deployments.[].volumeConfigurations.[].managedEBSVolume.sizeInGiB
Optional | integer
| | deployments.[].volumeConfigurations.[].managedEBSVolume.snapshotID
Optional | string
| | deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications
Optional | array
| | deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[]
Required | object
The tag specifications of an Amazon EBS volume. || deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].propagateTags
Optional | string
| | deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].resourceType
Optional | string
| | deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags
Optional | array
| | deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags.[]
Required | object
The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8

  • Maximum value length - 256 Unicode characters in UTF-8

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case-sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. || deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags.[].key
    Optional | string
    | | deployments.[].volumeConfigurations.[].managedEBSVolume.tagSpecifications.[].tags.[].value
    Optional | string
    | | deployments.[].volumeConfigurations.[].managedEBSVolume.throughput
    Optional | integer
    | | deployments.[].volumeConfigurations.[].managedEBSVolume.volumeType
    Optional | string
    | | deployments.[].volumeConfigurations.[].name
    Optional | string
    | | events
    Optional | array
    The event stream for your service. A maximum of 100 of the latest events
    are displayed. | | events.[]
    Required | object
    The details for an event that’s associated with a service. || events.[].createdAt
    Optional | string
    | | events.[].id
    Optional | string
    | | events.[].message
    Optional | string
    | | pendingCount
    Optional | integer
    The number of tasks in the cluster that are in the PENDING state. | | platformFamily
    Optional | string
    The operating system that your tasks in the service run on. A platform family
    is specified only for tasks using the Fargate launch type.


    All tasks that run as part of this service must use the same platformFamily
    value as the service (for example, LINUX). | | roleARN
    Optional | string
    The ARN of the IAM role that’s associated with the service. It allows the
    Amazon ECS container agent to register container instances with an Elastic
    Load Balancing load balancer. | | runningCount
    Optional | integer
    The number of tasks in the cluster that are in the RUNNING state. | | status
    Optional | string
    The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE. | | taskSets
    Optional | array
    Information about a set of Amazon ECS tasks in either an CodeDeploy or an
    EXTERNAL deployment. An Amazon ECS task set includes details such as the
    desired number of tasks, how many tasks are running, and whether the task
    set serves production traffic. | | taskSets.[]
    Required | object
    Information about a set of Amazon ECS tasks in either an CodeDeploy or an EXTERNAL deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic. || taskSets.[].capacityProviderStrategy
    Optional | array
    | | taskSets.[].capacityProviderStrategy.[]
    Required | object
    The details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTask or CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

A capacity provider strategy may contain a maximum of 6 capacity providers. || taskSets.[].capacityProviderStrategy.[].base
Optional | integer
| | taskSets.[].capacityProviderStrategy.[].capacityProvider
Optional | string
| | taskSets.[].capacityProviderStrategy.[].weight
Optional | integer
| | taskSets.[].clusterARN
Optional | string
| | taskSets.[].computedDesiredCount
Optional | integer
| | taskSets.[].createdAt
Optional | string
| | taskSets.[].externalID
Optional | string
| | taskSets.[].id
Optional | string
| | taskSets.[].launchType
Optional | string
| | taskSets.[].loadBalancers
Optional | array
| | taskSets.[].loadBalancers.[]
Required | object
The load balancer configuration to use with a service or task set.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) in the Amazon Elastic Container Service Developer Guide. || taskSets.[].loadBalancers.[].containerName
Optional | string
| | taskSets.[].loadBalancers.[].containerPort
Optional | integer
| | taskSets.[].loadBalancers.[].loadBalancerName
Optional | string
| | taskSets.[].loadBalancers.[].targetGroupARN
Optional | string
| | taskSets.[].networkConfiguration
Optional | object
The network configuration for a task or service. | | taskSets.[].networkConfiguration.awsVPCConfiguration
Optional | object
An object representing the networking details for a task or service. For
example awsvpcConfiguration={subnets=[“subnet-12344321”],securityGroups=[“sg-12344321”]} | | taskSets.[].networkConfiguration.awsVPCConfiguration.assignPublicIP
Optional | string
| | taskSets.[].networkConfiguration.awsVPCConfiguration.securityGroups
Optional | array
| | taskSets.[].networkConfiguration.awsVPCConfiguration.securityGroups.[]
Required | string
|| taskSets.[].networkConfiguration.awsVPCConfiguration.subnets
Optional | array
| | taskSets.[].networkConfiguration.awsVPCConfiguration.subnets.[]
Required | string
|| taskSets.[].pendingCount
Optional | integer
| | taskSets.[].platformFamily
Optional | string
| | taskSets.[].platformVersion
Optional | string
| | taskSets.[].runningCount
Optional | integer
| | taskSets.[].scale
Optional | object
A floating-point percentage of the desired number of tasks to place and keep
running in the task set. | | taskSets.[].scale.unit
Optional | string
| | taskSets.[].scale.value
Optional | number
| | taskSets.[].serviceARN
Optional | string
| | taskSets.[].serviceRegistries
Optional | array
| | taskSets.[].serviceRegistries.[]
Required | object
The details for the service registry.

Each service may be associated with one service registry. Multiple service registries for each service are not supported.

When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration. || taskSets.[].serviceRegistries.[].containerName
Optional | string
| | taskSets.[].serviceRegistries.[].containerPort
Optional | integer
| | taskSets.[].serviceRegistries.[].port
Optional | integer
| | taskSets.[].serviceRegistries.[].registryARN
Optional | string
| | taskSets.[].stabilityStatus
Optional | string
| | taskSets.[].stabilityStatusAt
Optional | string
| | taskSets.[].startedBy
Optional | string
| | taskSets.[].status
Optional | string
| | taskSets.[].tags
Optional | array
| | taskSets.[].tags.[]
Required | object
The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8

  • Maximum value length - 256 Unicode characters in UTF-8

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case-sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. || taskSets.[].tags.[].key
    Optional | string
    | | taskSets.[].tags.[].value
    Optional | string
    | | taskSets.[].taskDefinition
    Optional | string
    | | taskSets.[].taskSetARN
    Optional | string
    | | taskSets.[].updatedAt
    Optional | string
    |