AWS Fargate Task Definitions API

Operations for registering and managing ECS task definitions with Fargate compatibility, including CPU, memory, network mode, and container configuration.

Documentation

Specifications

Other Resources

🔗
API Operations
https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Operations.html
🔗
Pricing
https://aws.amazon.com/fargate/pricing/
🔗
Developer Guide
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html
🔗
CLI Reference
https://docs.aws.amazon.com/cli/latest/reference/ecs/
🔗
SDKs
https://aws.amazon.com/tools/
🔗
Platform Versions
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform-fargate.html
🔗
ChangeLog
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform-versions-changelog.html
🔗
Service Quotas
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html
🔗
Security
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-fargate.html
🔗
Monitoring
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/monitoring-fargate-usage.html
🔗
Container Insights
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html
🔗
Best Practices
https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/intro.html
🔗
Windows Containers
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-considerations.html
🔗
ECS Exec
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html
🔗
Fargate Profiles
https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html
🔗
Pod Configuration
https://docs.aws.amazon.com/eks/latest/userguide/fargate-pod-configuration.html
🔗
Pod Execution Role
https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html
🔗
CLI Reference
https://docs.aws.amazon.com/cli/latest/reference/eks/create-fargate-profile.html

OpenAPI Specification

fargate-task-definitions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Fargate Amazon ECS API (Fargate) Clusters Task Definitions API
  description: The Amazon ECS API provides programmatic access to manage Fargate tasks and services through Amazon Elastic Container Service. AWS Fargate is a serverless compute engine for containers that removes the need to provision and manage servers. This specification covers the core ECS API operations relevant to Fargate workloads, including registering task definitions with Fargate compatibility, running tasks on Fargate infrastructure, and managing services with the Fargate launch type. All operations use the JSON-RPC style with POST requests and an X-Amz-Target header specifying the action.
  version: '2014-11-13'
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/fargate/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  termsOfService: https://aws.amazon.com/service-terms/
servers:
- url: https://ecs.{region}.amazonaws.com
  description: Amazon ECS regional endpoint
  variables:
    region:
      default: us-east-1
      description: AWS region
      enum:
      - us-east-1
      - us-east-2
      - us-west-1
      - us-west-2
      - eu-west-1
      - eu-west-2
      - eu-west-3
      - eu-central-1
      - eu-north-1
      - ap-southeast-1
      - ap-southeast-2
      - ap-northeast-1
      - ap-northeast-2
      - ap-south-1
      - sa-east-1
      - ca-central-1
security:
- aws_sig_v4: []
tags:
- name: Task Definitions
  description: Operations for registering and managing ECS task definitions with Fargate compatibility, including CPU, memory, network mode, and container configuration.
  externalDocs:
    url: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html
paths:
  /#X-Amz-Target=AmazonEC2ContainerServiceV20141113.RegisterTaskDefinition:
    post:
      operationId: registerTaskDefinition
      summary: AWS Fargate Register a Fargate task definition
      description: Registers a new task definition from the supplied family and container definitions. For Fargate tasks, the networkMode must be awsvpc, and task-level cpu and memory values are required. Use the requiresCompatibilities parameter with FARGATE to validate that all parameters meet Fargate requirements. The task definition is used to run tasks directly or as part of a service.
      tags:
      - Task Definitions
      externalDocs:
        url: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/RegisterTaskDefinitionRequest'
      responses:
        '200':
          description: Task definition registered successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterTaskDefinitionResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '500':
          $ref: '#/components/responses/ServerError'
  /#X-Amz-Target=AmazonEC2ContainerServiceV20141113.DescribeTaskDefinition:
    post:
      operationId: describeTaskDefinition
      summary: AWS Fargate Describe a task definition
      description: Describes a task definition. You can specify a family and revision to find a specific task definition, or you can provide the family name alone to get the latest ACTIVE revision in that family. This is useful for inspecting the Fargate CPU, memory, and networking configuration of a registered task definition.
      tags:
      - Task Definitions
      externalDocs:
        url: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskDefinition.html
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              type: object
              required:
              - taskDefinition
              properties:
                taskDefinition:
                  type: string
                  description: The family and revision (family:revision) or full ARN of the task definition to describe. If you specify only the family name, the latest ACTIVE revision is described.
                include:
                  type: array
                  description: Specifies whether to see the resource tags for the task definition.
                  items:
                    type: string
                    enum:
                    - TAGS
      responses:
        '200':
          description: Task definition described successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  taskDefinition:
                    $ref: '#/components/schemas/TaskDefinition'
                  tags:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tag'
        '400':
          $ref: '#/components/responses/ClientError'
        '500':
          $ref: '#/components/responses/ServerError'
  /#X-Amz-Target=AmazonEC2ContainerServiceV20141113.ListTaskDefinitions:
    post:
      operationId: listTaskDefinitions
      summary: AWS Fargate List task definitions
      description: Returns a list of task definitions that are registered to your account. You can filter the results by family name to retrieve all revisions of a particular task definition family. Use the status filter to list only ACTIVE or INACTIVE task definitions.
      tags:
      - Task Definitions
      externalDocs:
        url: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitions.html
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              type: object
              properties:
                familyPrefix:
                  type: string
                  description: The family name prefix to filter the task definitions with.
                status:
                  type: string
                  description: The task definition status to filter on.
                  enum:
                  - ACTIVE
                  - INACTIVE
                sort:
                  type: string
                  description: The order to sort the results in.
                  enum:
                  - ASC
                  - DESC
                nextToken:
                  type: string
                  description: Token for the next set of results from a previous call.
                maxResults:
                  type: integer
                  description: Maximum number of task definition results.
                  minimum: 1
                  maximum: 100
      responses:
        '200':
          description: List of task definition ARNs
          content:
            application/json:
              schema:
                type: object
                properties:
                  taskDefinitionArns:
                    type: array
                    items:
                      type: string
                  nextToken:
                    type: string
        '400':
          $ref: '#/components/responses/ClientError'
        '500':
          $ref: '#/components/responses/ServerError'
  /#X-Amz-Target=AmazonEC2ContainerServiceV20141113.DeregisterTaskDefinition:
    post:
      operationId: deregisterTaskDefinition
      summary: AWS Fargate Deregister a task definition
      description: Deregisters the specified task definition by family and revision. Upon deregistration, the task definition is marked as INACTIVE. Existing tasks and services that reference an INACTIVE task definition continue to run without disruption. You cannot use an INACTIVE task definition to run new tasks or create new services.
      tags:
      - Task Definitions
      externalDocs:
        url: https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html
      parameters:
      - $ref: '#/components/parameters/X-Amz-Target'
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              type: object
              required:
              - taskDefinition
              properties:
                taskDefinition:
                  type: string
                  description: The family and revision (family:revision) or full ARN of the task definition to deregister.
      responses:
        '200':
          description: Task definition deregistered successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  taskDefinition:
                    $ref: '#/components/schemas/TaskDefinition'
        '400':
          $ref: '#/components/responses/ClientError'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    LogConfiguration:
      type: object
      description: Log configuration for the container. Fargate tasks support the awslogs, splunk, and awsfirelens log drivers.
      required:
      - logDriver
      properties:
        logDriver:
          type: string
          description: The log driver to use for the container. Fargate supports awslogs, splunk, and awsfirelens.
          enum:
          - awslogs
          - splunk
          - awsfirelens
        options:
          type: object
          description: Configuration options for the log driver. For awslogs, includes awslogs-group, awslogs-region, and awslogs-stream-prefix.
          additionalProperties:
            type: string
        secretOptions:
          type: array
          description: Secret log configuration options passed to the log driver.
          items:
            type: object
            properties:
              name:
                type: string
              valueFrom:
                type: string
    EphemeralStorage:
      type: object
      description: The amount of ephemeral storage to allocate for the Fargate task. Available on platform version 1.4.0 or later for Linux and 1.0.0 or later for Windows.
      required:
      - sizeInGiB
      properties:
        sizeInGiB:
          type: integer
          description: The total amount of ephemeral storage in GiB.
          minimum: 21
          maximum: 200
    RegisterTaskDefinitionResponse:
      type: object
      properties:
        taskDefinition:
          $ref: '#/components/schemas/TaskDefinition'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/Tag'
    Volume:
      type: object
      description: A data volume used by containers in a task. Fargate tasks support bind mounts and EFS volumes.
      properties:
        name:
          type: string
          description: The name of the volume, referenced by containers in mountPoints.
        efsVolumeConfiguration:
          type: object
          description: Amazon EFS volume configuration for the task.
          required:
          - fileSystemId
          properties:
            fileSystemId:
              type: string
              description: The Amazon EFS file system ID.
            rootDirectory:
              type: string
              description: The directory within the EFS file system to mount.
            transitEncryption:
              type: string
              description: Whether to enable EFS transit encryption.
              enum:
              - ENABLED
              - DISABLED
            transitEncryptionPort:
              type: integer
              description: The port to use for encrypted transit.
            authorizationConfig:
              type: object
              properties:
                accessPointId:
                  type: string
                  description: The EFS access point ID.
                iam:
                  type: string
                  description: Whether to use the task IAM role for authorization.
                  enum:
                  - ENABLED
                  - DISABLED
    TaskDefinition:
      type: object
      description: A Fargate task definition describes the containers and parameters required to run a Fargate task.
      properties:
        taskDefinitionArn:
          type: string
          description: The full ARN of the task definition.
        family:
          type: string
          description: The family name for the task definition.
        revision:
          type: integer
          description: The revision of the task definition.
        status:
          type: string
          description: The status of the task definition.
          enum:
          - ACTIVE
          - INACTIVE
          - DELETE_IN_PROGRESS
        containerDefinitions:
          type: array
          description: The container definitions for the task.
          items:
            $ref: '#/components/schemas/ContainerDefinition'
        cpu:
          type: string
          description: The task-level CPU value in CPU units. Required for Fargate.
        memory:
          type: string
          description: The task-level memory value in MiB. Required for Fargate.
        networkMode:
          type: string
          description: The Docker networking mode. Must be awsvpc for Fargate tasks.
          enum:
          - awsvpc
        requiresCompatibilities:
          type: array
          description: The launch type compatibility requirements.
          items:
            type: string
            enum:
            - FARGATE
            - EC2
        executionRoleArn:
          type: string
          description: The ARN of the task execution role for pulling images and sending logs.
        taskRoleArn:
          type: string
          description: The IAM role that containers in the task can assume.
        runtimePlatform:
          $ref: '#/components/schemas/RuntimePlatform'
        ephemeralStorage:
          $ref: '#/components/schemas/EphemeralStorage'
        volumes:
          type: array
          description: The volumes defined for the task.
          items:
            $ref: '#/components/schemas/Volume'
        registeredAt:
          type: string
          format: date-time
          description: The Unix timestamp when the task definition was registered.
        registeredBy:
          type: string
          description: The principal that registered the task definition.
        compatibilities:
          type: array
          description: The launch type compatibilities for the task definition.
          items:
            type: string
    PortMapping:
      type: object
      description: A port mapping for a container. For Fargate tasks, the containerPort is the only required field. The hostPort is automatically set to match the containerPort.
      properties:
        containerPort:
          type: integer
          description: The port number on the container bound to the host port.
          minimum: 0
          maximum: 65535
        hostPort:
          type: integer
          description: The port number on the host. For Fargate tasks, this is always the same as the containerPort.
          minimum: 0
          maximum: 65535
        protocol:
          type: string
          description: The protocol used for the port mapping.
          enum:
          - tcp
          - udp
          default: tcp
        name:
          type: string
          description: The name for the port mapping, used for Service Connect.
        appProtocol:
          type: string
          description: The application protocol for the port mapping, used for Service Connect.
          enum:
          - http
          - http2
          - grpc
    ErrorResponse:
      type: object
      properties:
        __type:
          type: string
          description: The error type identifier.
        message:
          type: string
          description: A human-readable error message.
    HealthCheck:
      type: object
      description: Container health check configuration. The health check command is run inside the container.
      required:
      - command
      properties:
        command:
          type: array
          description: The command to run to determine container health. Prefix with CMD for shell execution or CMD-SHELL for direct execution.
          items:
            type: string
        interval:
          type: integer
          description: The period in seconds between health checks. Default is 30.
          default: 30
          minimum: 5
          maximum: 300
        timeout:
          type: integer
          description: The time in seconds to wait for a health check to succeed. Default is 5.
          default: 5
          minimum: 2
          maximum: 120
        retries:
          type: integer
          description: The number of times to retry a failed health check before the container is considered unhealthy. Default is 3.
          default: 3
          minimum: 1
          maximum: 10
        startPeriod:
          type: integer
          description: The grace period in seconds to allow the container to bootstrap before failed health checks count.
          default: 0
          minimum: 0
          maximum: 300
    RegisterTaskDefinitionRequest:
      type: object
      description: Request to register a Fargate task definition.
      required:
      - family
      - containerDefinitions
      properties:
        family:
          type: string
          description: The family name for the task definition. Up to 255 characters consisting of letters, numbers, underscores, and hyphens.
          maxLength: 255
          pattern: ^[a-zA-Z0-9_-]+$
        containerDefinitions:
          type: array
          description: The container definitions for the task.
          items:
            $ref: '#/components/schemas/ContainerDefinition'
        cpu:
          type: string
          description: The task-level CPU value in CPU units. Required for Fargate. Valid values are 256, 512, 1024, 2048, 4096, 8192, and 16384.
          enum:
          - '256'
          - '512'
          - '1024'
          - '2048'
          - '4096'
          - '8192'
          - '16384'
        memory:
          type: string
          description: The task-level memory value in MiB. Required for Fargate. The valid values depend on the CPU value specified.
        networkMode:
          type: string
          description: The Docker networking mode. Must be awsvpc for Fargate tasks.
          enum:
          - awsvpc
        requiresCompatibilities:
          type: array
          description: The launch type compatibility to validate against. Use FARGATE to ensure the task definition is Fargate-compatible.
          items:
            type: string
            enum:
            - FARGATE
            - EC2
        executionRoleArn:
          type: string
          description: The ARN of the task execution role that grants the ECS agent permission to pull images and publish logs.
        taskRoleArn:
          type: string
          description: The IAM role that containers in the task can assume for AWS API access.
        runtimePlatform:
          $ref: '#/components/schemas/RuntimePlatform'
        ephemeralStorage:
          $ref: '#/components/schemas/EphemeralStorage'
        volumes:
          type: array
          description: The volumes to make available for containers in the task.
          items:
            $ref: '#/components/schemas/Volume'
        tags:
          type: array
          description: Tags to apply to the task definition.
          items:
            $ref: '#/components/schemas/Tag'
    ContainerDefinition:
      type: object
      description: A container definition describes a container that is part of a task.
      required:
      - name
      - image
      properties:
        name:
          type: string
          description: The name of the container. Up to 255 letters, numbers, underscores, and hyphens.
          maxLength: 255
        image:
          type: string
          description: The image used to start the container. Can be an image in a Docker Hub, Amazon ECR, or another repository.
        cpu:
          type: integer
          description: The number of cpu units reserved for the container. For Fargate tasks, the task-level CPU value is used, and this is optional.
        memory:
          type: integer
          description: The amount of memory (in MiB) to allocate to the container. For Fargate tasks, the task-level memory value is used, and this is optional.
        memoryReservation:
          type: integer
          description: The soft limit (in MiB) of memory to reserve for the container.
        essential:
          type: boolean
          description: If true, and the container fails or stops, all other containers in the task are stopped. At least one container must be marked essential in a task definition.
        portMappings:
          type: array
          description: Port mappings for the container. For Fargate tasks with awsvpc network mode, only containerPort is used. The hostPort value is the same as containerPort.
          items:
            $ref: '#/components/schemas/PortMapping'
        environment:
          type: array
          description: Environment variables to pass to the container.
          items:
            $ref: '#/components/schemas/KeyValuePair'
        secrets:
          type: array
          description: Secrets to pass to the container from AWS Secrets Manager or AWS Systems Manager Parameter Store.
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the environment variable to set in the container.
              valueFrom:
                type: string
                description: The secret ARN or SSM parameter ARN to expose as an environment variable.
        logConfiguration:
          $ref: '#/components/schemas/LogConfiguration'
        healthCheck:
          $ref: '#/components/schemas/HealthCheck'
        command:
          type: array
          description: The command passed to the container. Overrides the CMD in the Dockerfile.
          items:
            type: string
        entryPoint:
          type: array
          description: The entry point passed to the container. Overrides the ENTRYPOINT in the Dockerfile.
          items:
            type: string
        workingDirectory:
          type: string
          description: The working directory to run commands inside the container.
        user:
          type: string
          description: The user to use inside the container (UID or username).
        readonlyRootFilesystem:
          type: boolean
          description: When true, the container is given read-only access to its root filesystem.
        dependsOn:
          type: array
          description: Dependencies defined for container startup and shutdown ordering.
          items:
            type: object
            properties:
              containerName:
                type: string
              condition:
                type: string
                enum:
                - START
                - COMPLETE
                - SUCCESS
                - HEALTHY
        mountPoints:
          type: array
          description: Mount points for data volumes in the container.
          items:
            type: object
            properties:
              sourceVolume:
                type: string
              containerPath:
                type: string
              readOnly:
                type: boolean
    KeyValuePair:
      type: object
      description: A key-value pair representing an environment variable.
      properties:
        name:
          type: string
          description: The name of the environment variable.
        value:
          type: string
          description: The value of the environment variable.
    Tag:
      type: object
      description: A key-value pair used to tag an Amazon ECS resource.
      properties:
        key:
          type: string
          description: The tag key. Tag keys are case-sensitive and must be unique.
          maxLength: 128
        value:
          type: string
          description: The tag value.
          maxLength: 256
    RuntimePlatform:
      type: object
      description: The operating system and CPU architecture for the Fargate task.
      properties:
        cpuArchitecture:
          type: string
          description: The CPU architecture. ARM64 is supported for Linux tasks.
          enum:
          - X86_64
          - ARM64
          default: X86_64
        operatingSystemFamily:
          type: string
          description: The operating system family for the Fargate task.
          enum:
          - LINUX
          - WINDOWS_SERVER_2019_FULL
          - WINDOWS_SERVER_2019_CORE
          - WINDOWS_SERVER_2022_FULL
          - WINDOWS_SERVER_2022_CORE
          - WINDOWS_SERVER_2025_FULL
          - WINDOWS_SERVER_2025_CORE
          default: LINUX
  parameters:
    X-Amz-Target:
      name: X-Amz-Target
      in: header
      required: true
      schema:
        type: string
      description: The ECS API action target header used for JSON-RPC style routing.
  responses:
    ServerError:
      description: Server error. An internal service error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ClientError:
      description: Client error. The request was invalid, contained incorrect parameters, or the caller does not have required permissions.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    aws_sig_v4:
      type: apiKey
      name: Authorization
      in: header
      description: AWS Signature Version 4 authentication. Requests must be signed using AWS access credentials.
externalDocs:
  description: AWS Fargate Developer Guide
  url: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html