the-sett / elm-aws-elastic-containers / AWS.Ecs

Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks using the Fargate launch type. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage by using the EC2 launch type. For more information about launch types, see Amazon ECS Launch Types.

Amazon ECS lets you launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

Service definition.

service : AWS.Config.Region -> AWS.Service.Service

Configuration for this service.

Service endpoints.

createCluster : CreateClusterRequest -> AWS.Http.Request AWS.Http.AWSAppError CreateClusterResponse

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the service-linked role for your account so that required resources in other AWS services can be managed on your behalf. However, if the IAM user that makes the call does not have permissions to create the service-linked role, it is not created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

createService : CreateServiceRequest -> AWS.Http.Request AWS.Http.AWSAppError CreateServiceResponse

Runs and maintains a desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS spawns another copy of the task in the specified cluster. To update an existing service, see UpdateService.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind a load balancer. The load balancer distributes traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and the container instance that they're hosted on is reported as healthy by the load balancer.

There are two service scheduler strategies available:

You can optionally specify a deployment configuration for your service. The deployment is triggered by changing properties, such as the task definition or the desired count of a service, with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service is using the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and they're reported as healthy by the load balancer. The default value for minimum healthy percent is 100%.

If a service is using the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service is using either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used, although they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic:

createTaskSet : CreateTaskSetRequest -> AWS.Http.Request AWS.Http.AWSAppError CreateTaskSetResponse

Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

deleteAccountSetting : DeleteAccountSettingRequest -> AWS.Http.Request AWS.Http.AWSAppError DeleteAccountSettingResponse

Disables an account setting for a specified IAM user, IAM role, or the root user for an account.

deleteAttributes : DeleteAttributesRequest -> AWS.Http.Request AWS.Http.AWSAppError DeleteAttributesResponse

Deletes one or more custom attributes from an Amazon ECS resource.

deleteCluster : DeleteClusterRequest -> AWS.Http.Request AWS.Http.AWSAppError DeleteClusterResponse

Deletes the specified cluster. You must deregister all container instances from this cluster before you may delete it. You can list the container instances in a cluster with ListContainerInstances and deregister them with DeregisterContainerInstance.

deleteService : DeleteServiceRequest -> AWS.Http.Request AWS.Http.AWSAppError DeleteServiceResponse

Deletes a specified service within a cluster. You can delete a service if you have no running tasks in it and the desired task count is zero. If the service is actively maintaining tasks, you cannot delete it, and you must update the service to a desired task count of zero. For more information, see UpdateService.

When you delete a service, if there are still running tasks that require cleanup, the service status moves from ACTIVE to DRAINING, and the service is no longer visible in the console or in the ListServices API operation. After the tasks have stopped, then the service status moves from DRAINING to INACTIVE. Services in the DRAINING or INACTIVE status can still be viewed with the DescribeServices API operation. However, in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping, and DescribeServices calls on those services return a ServiceNotFoundException error.

If you attempt to create a new service with the same name as an existing service in either ACTIVE or DRAINING status, you receive an error.

deleteTaskSet : DeleteTaskSetRequest -> AWS.Http.Request AWS.Http.AWSAppError DeleteTaskSetResponse

Deletes a specified task set within a service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

deregisterContainerInstance : DeregisterContainerInstanceRequest -> AWS.Http.Request AWS.Http.AWSAppError DeregisterContainerInstanceResponse

Deregisters an Amazon ECS container instance from the specified cluster. This instance is no longer available to run tasks.

If you intend to use the container instance for some other purpose after deregistration, you should stop all of the tasks running on the container instance before deregistration. That prevents any orphaned tasks from consuming resources.

Deregistering a container instance removes the instance from a cluster, but it does not terminate the EC2 instance. If you are finished using the instance, be sure to terminate it in the Amazon EC2 console to stop billing.

If you terminate a running container instance, Amazon ECS automatically deregisters the instance from your cluster (stopped container instances or instances with disconnected agents are not automatically deregistered when terminated).

deregisterTaskDefinition : DeregisterTaskDefinitionRequest -> AWS.Http.Request AWS.Http.AWSAppError DeregisterTaskDefinitionResponse

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. Existing services that reference an INACTIVE task definition can still scale up or down by modifying the service's desired count.

You cannot use an INACTIVE task definition to run new tasks or create new services, and you cannot update an existing service to reference an INACTIVE task definition. However, there may be up to a 10-minute window following deregistration where these restrictions have not yet taken effect.

At this time, INACTIVE task definitions remain discoverable in your account indefinitely. However, this behavior is subject to change in the future, so you should not rely on INACTIVE task definitions persisting beyond the lifecycle of any associated tasks and services.

describeClusters : DescribeClustersRequest -> AWS.Http.Request AWS.Http.AWSAppError DescribeClustersResponse

Describes one or more of your clusters.

describeContainerInstances : DescribeContainerInstancesRequest -> AWS.Http.Request AWS.Http.AWSAppError DescribeContainerInstancesResponse

Describes Amazon Elastic Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested.

describeServices : DescribeServicesRequest -> AWS.Http.Request AWS.Http.AWSAppError DescribeServicesResponse

Describes the specified services running in your cluster.

describeTaskDefinition : DescribeTaskDefinitionRequest -> AWS.Http.Request AWS.Http.AWSAppError DescribeTaskDefinitionResponse

Describes a task definition. You can specify a family and revision to find information about a specific task definition, or you can simply specify the family to find the latest ACTIVE revision in that family.

You can only describe INACTIVE task definitions while an active task or service references them.

describeTaskSets : DescribeTaskSetsRequest -> AWS.Http.Request AWS.Http.AWSAppError DescribeTaskSetsResponse

Describes the task sets in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

describeTasks : DescribeTasksRequest -> AWS.Http.Request AWS.Http.AWSAppError DescribeTasksResponse

Describes a specified task or tasks.

discoverPollEndpoint : DiscoverPollEndpointRequest -> AWS.Http.Request AWS.Http.AWSAppError DiscoverPollEndpointResponse

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Returns an endpoint for the Amazon ECS agent to poll for updates.

listAccountSettings : ListAccountSettingsRequest -> AWS.Http.Request AWS.Http.AWSAppError ListAccountSettingsResponse

Lists the account settings for a specified principal.

listAttributes : ListAttributesRequest -> AWS.Http.Request AWS.Http.AWSAppError ListAttributesResponse

Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify a target type and cluster, ListAttributes returns a list of attribute objects, one for each attribute on each resource. You can filter the list of results to a single attribute name to only return results that have that name. You can also filter the results by attribute name and value, for example, to see which container instances in a cluster are running a Linux AMI (ecs.os-type=linux).

listClusters : ListClustersRequest -> AWS.Http.Request AWS.Http.AWSAppError ListClustersResponse

Returns a list of existing clusters.

listContainerInstances : ListContainerInstancesRequest -> AWS.Http.Request AWS.Http.AWSAppError ListContainerInstancesResponse

Returns a list of container instances in a specified cluster. You can filter the results of a ListContainerInstances operation with cluster query language statements inside the filter parameter. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

listServices : ListServicesRequest -> AWS.Http.Request AWS.Http.AWSAppError ListServicesResponse

Lists the services that are running in a specified cluster.

listTagsForResource : ListTagsForResourceRequest -> AWS.Http.Request AWS.Http.AWSAppError ListTagsForResourceResponse

List the tags for an Amazon ECS resource.

listTaskDefinitionFamilies : ListTaskDefinitionFamiliesRequest -> AWS.Http.Request AWS.Http.AWSAppError ListTaskDefinitionFamiliesResponse

Returns a list of task definition families that are registered to your account (which may include task definition families that no longer have any ACTIVE task definition revisions).

You can filter out task definition families that do not contain any ACTIVE task definition revisions by setting the status parameter to ACTIVE. You can also filter the results with the familyPrefix parameter.

listTaskDefinitions : ListTaskDefinitionsRequest -> AWS.Http.Request AWS.Http.AWSAppError ListTaskDefinitionsResponse

Returns a list of task definitions that are registered to your account. You can filter the results by family name with the familyPrefix parameter or by status with the status parameter.

listTasks : ListTasksRequest -> AWS.Http.Request AWS.Http.AWSAppError ListTasksResponse

Returns a list of tasks for a specified cluster. You can filter the results by family name, by a particular container instance, or by the desired status of the task with the family, containerInstance, and desiredStatus parameters.

Recently stopped tasks might appear in the returned results. Currently, stopped tasks appear in the returned results for at least one hour.

putAccountSetting : PutAccountSettingRequest -> AWS.Http.Request AWS.Http.AWSAppError PutAccountSettingResponse

Modifies an account setting. If you change the account setting for the root user, the default settings for all of the IAM users and roles for which no individual account setting has been specified are reset. For more information, see Account Settings in the Amazon Elastic Container Service Developer Guide.

When serviceLongArnFormat, taskLongArnFormat, or containerInstanceLongArnFormat are specified, the Amazon Resource Name (ARN) and resource ID format of the resource type for a specified IAM user, IAM role, or the root user for an account is affected. The opt-in and opt-out account setting must be set for each Amazon ECS resource separately. The ARN and resource ID format of a resource will be defined by the opt-in status of the IAM user or role that created the resource. You must enable this setting to use Amazon ECS features such as resource tagging.

When awsvpcTrunking is specified, the elastic network interface (ENI) limit for any new container instances that support the feature is changed. If awsvpcTrunking is enabled, any new container instances that support the feature are launched have the increased ENI limits available to them. For more information, see Elastic Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

When containerInsights is specified, the default setting indicating whether CloudWatch Container Insights is enabled for your clusters is changed. If containerInsights is enabled, any new clusters that are created will have Container Insights enabled unless you disable it during cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

putAccountSettingDefault : PutAccountSettingDefaultRequest -> AWS.Http.Request AWS.Http.AWSAppError PutAccountSettingDefaultResponse

Modifies an account setting for all IAM users on an account for whom no individual account setting has been specified.

putAttributes : PutAttributesRequest -> AWS.Http.Request AWS.Http.AWSAppError PutAttributesResponse

Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use DeleteAttributes. For more information, see Attributes in the Amazon Elastic Container Service Developer Guide.

registerContainerInstance : RegisterContainerInstanceRequest -> AWS.Http.Request AWS.Http.AWSAppError RegisterContainerInstanceResponse

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Registers an EC2 instance into the specified cluster. This instance becomes available to place containers on.

registerTaskDefinition : RegisterTaskDefinitionRequest -> AWS.Http.Request AWS.Http.AWSAppError RegisterTaskDefinitionResponse

Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon Elastic Container Service Developer Guide.

You can specify an IAM role for your task with the taskRoleArn parameter. When you specify an IAM role for a task, its containers can then use the latest versions of the AWS CLI or SDKs to make API requests to the AWS services that are specified in the IAM policy associated with the role. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide.

You can specify a Docker networking mode for the containers in your task definition with the networkMode parameter. The available network modes correspond to those described in Network settings in the Docker run reference. If you specify the awsvpc network mode, the task is allocated an elastic network interface, and you must specify a NetworkConfiguration when you create a service or run a task with the task definition. For more information, see Task Networking in the Amazon Elastic Container Service Developer Guide.

runTask : RunTaskRequest -> AWS.Http.Request AWS.Http.AWSAppError RunTaskResponse

Starts a new task using the specified task definition.

You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

Alternatively, you can use StartTask to use your own scheduler or place tasks manually on specific container instances.

The Amazon ECS API follows an eventual consistency model, due to the distributed nature of the system supporting the API. This means that the result of an API command you run that affects your Amazon ECS resources might not be immediately visible to all subsequent commands you run. Keep this in mind when you carry out an API command that immediately follows a previous API command.

To manage eventual consistency, you can do the following:

startTask : StartTaskRequest -> AWS.Http.Request AWS.Http.AWSAppError StartTaskResponse

Starts a new task from the specified task definition on the specified container instance or instances.

Alternatively, you can use RunTask to place tasks for you. For more information, see Scheduling Tasks in the Amazon Elastic Container Service Developer Guide.

stopTask : StopTaskRequest -> AWS.Http.Request AWS.Http.AWSAppError StopTaskResponse

Stops a running task. Any tags associated with the task will be deleted.

When StopTask is called on a task, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM value and a default 30-second timeout, after which the SIGKILL value is sent and the containers are forcibly stopped. If the container handles the SIGTERM value gracefully and exits within 30 seconds from receiving it, no SIGKILL value is sent.

The default 30-second timeout can be configured on the Amazon ECS container agent with the ECS_CONTAINER_STOP_TIMEOUT variable. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide.

submitAttachmentStateChanges : SubmitAttachmentStateChangesRequest -> AWS.Http.Request AWS.Http.AWSAppError SubmitAttachmentStateChangesResponse

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that an attachment changed states.

submitContainerStateChange : SubmitContainerStateChangeRequest -> AWS.Http.Request AWS.Http.AWSAppError SubmitContainerStateChangeResponse

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a container changed states.

submitTaskStateChange : SubmitTaskStateChangeRequest -> AWS.Http.Request AWS.Http.AWSAppError SubmitTaskStateChangeResponse

This action is only used by the Amazon ECS agent, and it is not intended for use outside of the agent.

Sent to acknowledge that a task changed states.

tagResource : TagResourceRequest -> AWS.Http.Request AWS.Http.AWSAppError ()

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are deleted as well.

untagResource : UntagResourceRequest -> AWS.Http.Request AWS.Http.AWSAppError ()

Deletes specified tags from a resource.

updateContainerAgent : UpdateContainerAgentRequest -> AWS.Http.Request AWS.Http.AWSAppError UpdateContainerAgentResponse

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent does not interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

UpdateContainerAgent requires the Amazon ECS-optimized AMI or Amazon Linux with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide.

updateContainerInstancesState : UpdateContainerInstancesStateRequest -> AWS.Http.Request AWS.Http.AWSAppError UpdateContainerInstancesStateResponse

Modifies the status of an Amazon ECS container instance.

Once a container instance has reached an ACTIVE state, you can change the status of a container instance to DRAINING to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size.

A container instance cannot be changed to DRAINING until it has reached an ACTIVE status. If the instance is in any other status, an error will be received.

When you set a container instance to DRAINING, Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the PENDING state are stopped immediately.

Service tasks on the container instance that are in the RUNNING state are stopped and replaced according to the service's deployment configuration parameters, minimumHealthyPercent and maximumPercent. You can change the deployment configuration of your service using UpdateService.

Any PENDING or RUNNING tasks that do not belong to a service are not affected. You must wait for them to finish or stop them manually.

A container instance has completed draining when it has no more RUNNING tasks. You can verify this using ListTasks.

When a container instance has been drained, you can set a container instance to ACTIVE status and once it has reached that status the Amazon ECS scheduler can begin scheduling tasks on the instance again.

updateService : UpdateServiceRequest -> AWS.Http.Request AWS.Http.AWSAppError UpdateServiceResponse

Modifies the parameters of a service.

For services using the rolling update (ECS) deployment controller, the desired count, deployment configuration, network configuration, or task definition used can be updated.

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired count, deployment configuration, and health check grace period can be updated using this API. If the network configuration, platform version, or task definition need to be updated, a new AWS CodeDeploy deployment should be created. For more information, see CreateDeployment in the AWS CodeDeploy API Reference.

For services using an external deployment controller, you can update only the desired count and health check grace period using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, you should create a new task set. For more information, see CreateTaskSet.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.

If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest), you do not need to create a new revision of your task definition. You can update the service using the forceNewDeployment option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout, after which SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic:

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

updateServicePrimaryTaskSet : UpdateServicePrimaryTaskSetRequest -> AWS.Http.Request AWS.Http.AWSAppError UpdateServicePrimaryTaskSetResponse

Modifies which task set in a service is the primary task set. Any parameters that are updated on the primary task set in a service will transition to the service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

updateTaskSet : UpdateTaskSetRequest -> AWS.Http.Request AWS.Http.AWSAppError UpdateTaskSetResponse

Modifies a task set. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

API data model.


type AgentUpdateStatus
    = AgentUpdateStatusPending
    | AgentUpdateStatusStaging
    | AgentUpdateStatusStaged
    | AgentUpdateStatusUpdating
    | AgentUpdateStatusUpdated
    | AgentUpdateStatusFailed

The AgentUpdateStatus data model.


type AssignPublicIp
    = AssignPublicIpEnabled
    | AssignPublicIpDisabled

The AssignPublicIp data model.


type alias Attachment =
{ details : Maybe AttachmentDetails
, id : Maybe String
, status : Maybe String
, type_ : Maybe String 
}

The Attachment data model.


type alias AttachmentDetails =
List KeyValuePair

The AttachmentDetails data model.


type alias AttachmentStateChange =
{ attachmentArn : String
, status : String 
}

The AttachmentStateChange data model.


type alias AttachmentStateChanges =
List AttachmentStateChange

The AttachmentStateChanges data model.


type alias Attachments =
List Attachment

The Attachments data model.


type alias Attribute =
{ name : String
, targetId : Maybe String
, targetType : Maybe TargetType
, value : Maybe String 
}

The Attribute data model.


type alias Attributes =
List Attribute

The Attributes data model.


type alias AwsVpcConfiguration =
{ assignPublicIp : Maybe AssignPublicIp
, securityGroups : Maybe StringList
, subnets : StringList 
}

The AwsVpcConfiguration data model.


type alias Cluster =
{ activeServicesCount : Maybe Basics.Int
, clusterArn : Maybe String
, clusterName : Maybe String
, pendingTasksCount : Maybe Basics.Int
, registeredContainerInstancesCount : Maybe Basics.Int
, runningTasksCount : Maybe Basics.Int
, settings : Maybe ClusterSettings
, statistics : Maybe Statistics
, status : Maybe String
, tags : Maybe Tags 
}

The Cluster data model.


type ClusterField
    = ClusterFieldStatistics
    | ClusterFieldTags

The ClusterField data model.


type alias ClusterFieldList =
List ClusterField

The ClusterFieldList data model.


type alias ClusterSetting =
{ name : Maybe ClusterSettingName
, value : Maybe String 
}

The ClusterSetting data model.


type ClusterSettingName
    = ClusterSettingNameContainerInsights

The ClusterSettingName data model.


type alias ClusterSettings =
List ClusterSetting

The ClusterSettings data model.


type alias Clusters =
List Cluster

The Clusters data model.


type Compatibility
    = CompatibilityEc2
    | CompatibilityFargate

The Compatibility data model.


type alias CompatibilityList =
List Compatibility

The CompatibilityList data model.


type Connectivity
    = ConnectivityConnected
    | ConnectivityDisconnected

The Connectivity data model.


type alias Container =
{ containerArn : Maybe String
, cpu : Maybe String
, exitCode : Maybe Basics.Int
, gpuIds : Maybe GpuIds
, healthStatus : Maybe HealthStatus
, lastStatus : Maybe String
, memory : Maybe String
, memoryReservation : Maybe String
, name : Maybe String
, networkBindings : Maybe NetworkBindings
, networkInterfaces : Maybe NetworkInterfaces
, reason : Maybe String
, taskArn : Maybe String 
}

The Container data model.


type ContainerCondition
    = ContainerConditionStart
    | ContainerConditionComplete
    | ContainerConditionSuccess
    | ContainerConditionHealthy

The ContainerCondition data model.


type alias ContainerDefinition =
{ command : Maybe StringList
, cpu : Maybe Basics.Int
, dependsOn : Maybe ContainerDependencies
, disableNetworking : Maybe Basics.Bool
, dnsSearchDomains : Maybe StringList
, dnsServers : Maybe StringList
, dockerLabels : Maybe DockerLabelsMap
, dockerSecurityOptions : Maybe StringList
, entryPoint : Maybe StringList
, environment : Maybe EnvironmentVariables
, essential : Maybe Basics.Bool
, extraHosts : Maybe HostEntryList
, healthCheck : Maybe HealthCheck
, hostname : Maybe String
, image : Maybe String
, interactive : Maybe Basics.Bool
, links : Maybe StringList
, linuxParameters : Maybe LinuxParameters
, logConfiguration : Maybe LogConfiguration
, memory : Maybe Basics.Int
, memoryReservation : Maybe Basics.Int
, mountPoints : Maybe MountPointList
, name : Maybe String
, portMappings : Maybe PortMappingList
, privileged : Maybe Basics.Bool
, pseudoTerminal : Maybe Basics.Bool
, readonlyRootFilesystem : Maybe Basics.Bool
, repositoryCredentials : Maybe RepositoryCredentials
, resourceRequirements : Maybe ResourceRequirements
, secrets : Maybe SecretList
, startTimeout : Maybe Basics.Int
, stopTimeout : Maybe Basics.Int
, systemControls : Maybe SystemControls
, ulimits : Maybe UlimitList
, user : Maybe String
, volumesFrom : Maybe VolumeFromList
, workingDirectory : Maybe String 
}

The ContainerDefinition data model.


type alias ContainerDefinitions =
List ContainerDefinition

The ContainerDefinitions data model.


type alias ContainerDependencies =
List ContainerDependency

The ContainerDependencies data model.


type alias ContainerDependency =
{ condition : ContainerCondition
, containerName : String 
}

The ContainerDependency data model.


type alias ContainerInstance =
{ agentConnected : Maybe Basics.Bool
, agentUpdateStatus : Maybe AgentUpdateStatus
, attachments : Maybe Attachments
, attributes : Maybe Attributes
, containerInstanceArn : Maybe String
, ec2InstanceId : Maybe String
, pendingTasksCount : Maybe Basics.Int
, registeredAt : Maybe String
, registeredResources : Maybe Resources
, remainingResources : Maybe Resources
, runningTasksCount : Maybe Basics.Int
, status : Maybe String
, statusReason : Maybe String
, tags : Maybe Tags
, version : Maybe Basics.Int
, versionInfo : Maybe VersionInfo 
}

The ContainerInstance data model.


type ContainerInstanceField
    = ContainerInstanceFieldTags

The ContainerInstanceField data model.


type alias ContainerInstanceFieldList =
List ContainerInstanceField

The ContainerInstanceFieldList data model.


type ContainerInstanceStatus
    = ContainerInstanceStatusActive
    | ContainerInstanceStatusDraining
    | ContainerInstanceStatusRegistering
    | ContainerInstanceStatusDeregistering
    | ContainerInstanceStatusRegistrationFailed

The ContainerInstanceStatus data model.


type alias ContainerInstances =
List ContainerInstance

The ContainerInstances data model.


type alias ContainerOverride =
{ command : Maybe StringList
, cpu : Maybe Basics.Int
, environment : Maybe EnvironmentVariables
, memory : Maybe Basics.Int
, memoryReservation : Maybe Basics.Int
, name : Maybe String
, resourceRequirements : Maybe ResourceRequirements 
}

The ContainerOverride data model.


type alias ContainerOverrides =
List ContainerOverride

The ContainerOverrides data model.


type alias ContainerStateChange =
{ containerName : Maybe String
, exitCode : Maybe Basics.Int
, networkBindings : Maybe NetworkBindings
, reason : Maybe String
, status : Maybe String 
}

The ContainerStateChange data model.


type alias ContainerStateChanges =
List ContainerStateChange

The ContainerStateChanges data model.


type alias Containers =
List Container

The Containers data model.


type alias CreateClusterRequest =
{ clusterName : Maybe String
, settings : Maybe ClusterSettings
, tags : Maybe Tags 
}

The CreateClusterRequest data model.


type alias CreateClusterResponse =
{ cluster : Maybe Cluster }

The CreateClusterResponse data model.


type alias CreateServiceRequest =
{ clientToken : Maybe String
, cluster : Maybe String
, deploymentConfiguration : Maybe DeploymentConfiguration
, deploymentController : Maybe DeploymentController
, desiredCount : Maybe Basics.Int
, enableEcsmanagedTags : Maybe Basics.Bool
, healthCheckGracePeriodSeconds : Maybe Basics.Int
, launchType : Maybe LaunchType
, loadBalancers : Maybe LoadBalancers
, networkConfiguration : Maybe NetworkConfiguration
, placementConstraints : Maybe PlacementConstraints
, placementStrategy : Maybe PlacementStrategies
, platformVersion : Maybe String
, propagateTags : Maybe PropagateTags
, role : Maybe String
, schedulingStrategy : Maybe SchedulingStrategy
, serviceName : String
, serviceRegistries : Maybe ServiceRegistries
, tags : Maybe Tags
, taskDefinition : Maybe String 
}

The CreateServiceRequest data model.


type alias CreateServiceResponse =
{ service : Maybe Service }

The CreateServiceResponse data model.


type alias CreateTaskSetRequest =
{ clientToken : Maybe String
, cluster : String
, externalId : Maybe String
, launchType : Maybe LaunchType
, loadBalancers : Maybe LoadBalancers
, networkConfiguration : Maybe NetworkConfiguration
, platformVersion : Maybe String
, scale : Maybe Scale
, service : String
, serviceRegistries : Maybe ServiceRegistries
, taskDefinition : String 
}

The CreateTaskSetRequest data model.


type alias CreateTaskSetResponse =
{ taskSet : Maybe TaskSet }

The CreateTaskSetResponse data model.


type alias DeleteAccountSettingRequest =
{ name : SettingName
, principalArn : Maybe String 
}

The DeleteAccountSettingRequest data model.


type alias DeleteAccountSettingResponse =
{ setting : Maybe Setting }

The DeleteAccountSettingResponse data model.


type alias DeleteAttributesRequest =
{ attributes : Attributes
, cluster : Maybe String 
}

The DeleteAttributesRequest data model.


type alias DeleteAttributesResponse =
{ attributes : Maybe Attributes }

The DeleteAttributesResponse data model.


type alias DeleteClusterRequest =
{ cluster : String }

The DeleteClusterRequest data model.


type alias DeleteClusterResponse =
{ cluster : Maybe Cluster }

The DeleteClusterResponse data model.


type alias DeleteServiceRequest =
{ cluster : Maybe String
, force : Maybe Basics.Bool
, service : String 
}

The DeleteServiceRequest data model.


type alias DeleteServiceResponse =
{ service : Maybe Service }

The DeleteServiceResponse data model.


type alias DeleteTaskSetRequest =
{ cluster : String
, force : Maybe Basics.Bool
, service : String
, taskSet : String 
}

The DeleteTaskSetRequest data model.


type alias DeleteTaskSetResponse =
{ taskSet : Maybe TaskSet }

The DeleteTaskSetResponse data model.


type alias Deployment =
{ createdAt : Maybe String
, desiredCount : Maybe Basics.Int
, id : Maybe String
, launchType : Maybe LaunchType
, networkConfiguration : Maybe NetworkConfiguration
, pendingCount : Maybe Basics.Int
, platformVersion : Maybe String
, runningCount : Maybe Basics.Int
, status : Maybe String
, taskDefinition : Maybe String
, updatedAt : Maybe String 
}

The Deployment data model.


type alias DeploymentConfiguration =
{ maximumPercent : Maybe Basics.Int
, minimumHealthyPercent : Maybe Basics.Int 
}

The DeploymentConfiguration data model.


type alias DeploymentController =
{ type_ : DeploymentControllerType }

The DeploymentController data model.


type DeploymentControllerType
    = DeploymentControllerTypeEcs
    | DeploymentControllerTypeCodeDeploy
    | DeploymentControllerTypeExternal

The DeploymentControllerType data model.


type alias Deployments =
List Deployment

The Deployments data model.


type alias DeregisterContainerInstanceRequest =
{ cluster : Maybe String
, containerInstance : String
, force : Maybe Basics.Bool 
}

The DeregisterContainerInstanceRequest data model.


type alias DeregisterContainerInstanceResponse =
{ containerInstance : Maybe ContainerInstance }

The DeregisterContainerInstanceResponse data model.


type alias DeregisterTaskDefinitionRequest =
{ taskDefinition : String }

The DeregisterTaskDefinitionRequest data model.


type alias DeregisterTaskDefinitionResponse =
{ taskDefinition : Maybe TaskDefinition }

The DeregisterTaskDefinitionResponse data model.


type alias DescribeClustersRequest =
{ clusters : Maybe StringList
, include : Maybe ClusterFieldList 
}

The DescribeClustersRequest data model.


type alias DescribeClustersResponse =
{ clusters : Maybe Clusters
, failures : Maybe Failures 
}

The DescribeClustersResponse data model.


type alias DescribeContainerInstancesRequest =
{ cluster : Maybe String
, containerInstances : StringList
, include : Maybe ContainerInstanceFieldList 
}

The DescribeContainerInstancesRequest data model.


type alias DescribeContainerInstancesResponse =
{ containerInstances : Maybe ContainerInstances
, failures : Maybe Failures 
}

The DescribeContainerInstancesResponse data model.


type alias DescribeServicesRequest =
{ cluster : Maybe String
, include : Maybe ServiceFieldList
, services : StringList 
}

The DescribeServicesRequest data model.


type alias DescribeServicesResponse =
{ failures : Maybe Failures
, services : Maybe Services 
}

The DescribeServicesResponse data model.


type alias DescribeTaskDefinitionRequest =
{ include : Maybe TaskDefinitionFieldList
, taskDefinition : String 
}

The DescribeTaskDefinitionRequest data model.


type alias DescribeTaskDefinitionResponse =
{ tags : Maybe Tags
, taskDefinition : Maybe TaskDefinition 
}

The DescribeTaskDefinitionResponse data model.


type alias DescribeTaskSetsRequest =
{ cluster : String
, service : String
, taskSets : Maybe StringList 
}

The DescribeTaskSetsRequest data model.


type alias DescribeTaskSetsResponse =
{ failures : Maybe Failures
, taskSets : Maybe TaskSets 
}

The DescribeTaskSetsResponse data model.


type alias DescribeTasksRequest =
{ cluster : Maybe String
, include : Maybe TaskFieldList
, tasks : StringList 
}

The DescribeTasksRequest data model.


type alias DescribeTasksResponse =
{ failures : Maybe Failures
, tasks : Maybe Tasks 
}

The DescribeTasksResponse data model.


type DesiredStatus
    = DesiredStatusRunning
    | DesiredStatusPending
    | DesiredStatusStopped

The DesiredStatus data model.


type alias Device =
{ containerPath : Maybe String
, hostPath : String
, permissions : Maybe DeviceCgroupPermissions 
}

The Device data model.


type DeviceCgroupPermission
    = DeviceCgroupPermissionRead
    | DeviceCgroupPermissionWrite
    | DeviceCgroupPermissionMknod

The DeviceCgroupPermission data model.


type alias DeviceCgroupPermissions =
List DeviceCgroupPermission

The DeviceCgroupPermissions data model.


type alias DevicesList =
List Device

The DevicesList data model.


type alias DiscoverPollEndpointRequest =
{ cluster : Maybe String
, containerInstance : Maybe String 
}

The DiscoverPollEndpointRequest data model.


type alias DiscoverPollEndpointResponse =
{ endpoint : Maybe String
, telemetryEndpoint : Maybe String 
}

The DiscoverPollEndpointResponse data model.


type alias DockerLabelsMap =
Dict String String

The DockerLabelsMap data model.


type alias DockerVolumeConfiguration =
{ autoprovision : Maybe Basics.Bool
, driver : Maybe String
, driverOpts : Maybe StringMap
, labels : Maybe StringMap
, scope : Maybe Scope 
}

The DockerVolumeConfiguration data model.


type alias EnvironmentVariables =
List KeyValuePair

The EnvironmentVariables data model.


type alias Failure =
{ arn : Maybe String
, reason : Maybe String 
}

The Failure data model.


type alias Failures =
List Failure

The Failures data model.


type alias GpuIds =
List String

The GpuIds data model.


type alias HealthCheck =
{ command : StringList
, interval : Maybe Basics.Int
, retries : Maybe Basics.Int
, startPeriod : Maybe Basics.Int
, timeout : Maybe Basics.Int 
}

The HealthCheck data model.


type HealthStatus
    = HealthStatusHealthy
    | HealthStatusUnhealthy
    | HealthStatusUnknown

The HealthStatus data model.


type alias HostEntry =
{ hostname : String
, ipAddress : String 
}

The HostEntry data model.


type alias HostEntryList =
List HostEntry

The HostEntryList data model.


type alias HostVolumeProperties =
{ sourcePath : Maybe String }

The HostVolumeProperties data model.


type IpcMode
    = IpcModeHost
    | IpcModeTask
    | IpcModeNone

The IpcMode data model.


type alias KernelCapabilities =
{ add : Maybe StringList
, drop : Maybe StringList 
}

The KernelCapabilities data model.


type alias KeyValuePair =
{ name : Maybe String
, value : Maybe String 
}

The KeyValuePair data model.


type LaunchType
    = LaunchTypeEc2
    | LaunchTypeFargate

The LaunchType data model.


type alias LinuxParameters =
{ capabilities : Maybe KernelCapabilities
, devices : Maybe DevicesList
, initProcessEnabled : Maybe Basics.Bool
, sharedMemorySize : Maybe Basics.Int
, tmpfs : Maybe TmpfsList 
}

The LinuxParameters data model.


type alias ListAccountSettingsRequest =
{ effectiveSettings : Maybe Basics.Bool
, maxResults : Maybe Basics.Int
, name : Maybe SettingName
, nextToken : Maybe String
, principalArn : Maybe String
, value : Maybe String 
}

The ListAccountSettingsRequest data model.


type alias ListAccountSettingsResponse =
{ nextToken : Maybe String
, settings : Maybe Settings 
}

The ListAccountSettingsResponse data model.


type alias ListAttributesRequest =
{ attributeName : Maybe String
, attributeValue : Maybe String
, cluster : Maybe String
, maxResults : Maybe Basics.Int
, nextToken : Maybe String
, targetType : TargetType 
}

The ListAttributesRequest data model.


type alias ListAttributesResponse =
{ attributes : Maybe Attributes
, nextToken : Maybe String 
}

The ListAttributesResponse data model.


type alias ListClustersRequest =
{ maxResults : Maybe Basics.Int
, nextToken : Maybe String 
}

The ListClustersRequest data model.


type alias ListClustersResponse =
{ clusterArns : Maybe StringList
, nextToken : Maybe String 
}

The ListClustersResponse data model.


type alias ListContainerInstancesRequest =
{ cluster : Maybe String
, filter : Maybe String
, maxResults : Maybe Basics.Int
, nextToken : Maybe String
, status : Maybe ContainerInstanceStatus 
}

The ListContainerInstancesRequest data model.


type alias ListContainerInstancesResponse =
{ containerInstanceArns : Maybe StringList
, nextToken : Maybe String 
}

The ListContainerInstancesResponse data model.


type alias ListServicesRequest =
{ cluster : Maybe String
, launchType : Maybe LaunchType
, maxResults : Maybe Basics.Int
, nextToken : Maybe String
, schedulingStrategy : Maybe SchedulingStrategy 
}

The ListServicesRequest data model.


type alias ListServicesResponse =
{ nextToken : Maybe String
, serviceArns : Maybe StringList 
}

The ListServicesResponse data model.


type alias ListTagsForResourceRequest =
{ resourceArn : String }

The ListTagsForResourceRequest data model.


type alias ListTagsForResourceResponse =
{ tags : Maybe Tags }

The ListTagsForResourceResponse data model.


type alias ListTaskDefinitionFamiliesRequest =
{ familyPrefix : Maybe String
, maxResults : Maybe Basics.Int
, nextToken : Maybe String
, status : Maybe TaskDefinitionFamilyStatus 
}

The ListTaskDefinitionFamiliesRequest data model.


type alias ListTaskDefinitionFamiliesResponse =
{ families : Maybe StringList
, nextToken : Maybe String 
}

The ListTaskDefinitionFamiliesResponse data model.


type alias ListTaskDefinitionsRequest =
{ familyPrefix : Maybe String
, maxResults : Maybe Basics.Int
, nextToken : Maybe String
, sort : Maybe SortOrder
, status : Maybe TaskDefinitionStatus 
}

The ListTaskDefinitionsRequest data model.


type alias ListTaskDefinitionsResponse =
{ nextToken : Maybe String
, taskDefinitionArns : Maybe StringList 
}

The ListTaskDefinitionsResponse data model.


type alias ListTasksRequest =
{ cluster : Maybe String
, containerInstance : Maybe String
, desiredStatus : Maybe DesiredStatus
, family : Maybe String
, launchType : Maybe LaunchType
, maxResults : Maybe Basics.Int
, nextToken : Maybe String
, serviceName : Maybe String
, startedBy : Maybe String 
}

The ListTasksRequest data model.


type alias ListTasksResponse =
{ nextToken : Maybe String
, taskArns : Maybe StringList 
}

The ListTasksResponse data model.


type alias LoadBalancer =
{ containerName : Maybe String
, containerPort : Maybe Basics.Int
, loadBalancerName : Maybe String
, targetGroupArn : Maybe String 
}

The LoadBalancer data model.


type alias LoadBalancers =
List LoadBalancer

The LoadBalancers data model.


type alias LogConfiguration =
{ logDriver : LogDriver
, options : Maybe LogConfigurationOptionsMap
, secretOptions : Maybe SecretList 
}

The LogConfiguration data model.


type alias LogConfigurationOptionsMap =
Dict String String

The LogConfigurationOptionsMap data model.


type LogDriver
    = LogDriverJsonFile
    | LogDriverSyslog
    | LogDriverJournald
    | LogDriverGelf
    | LogDriverFluentd
    | LogDriverAwslogs
    | LogDriverSplunk

The LogDriver data model.


type alias MountPoint =
{ containerPath : Maybe String
, readOnly : Maybe Basics.Bool
, sourceVolume : Maybe String 
}

The MountPoint data model.


type alias MountPointList =
List MountPoint

The MountPointList data model.


type alias NetworkBinding =
{ bindIp : Maybe String
, containerPort : Maybe Basics.Int
, hostPort : Maybe Basics.Int
, protocol : Maybe TransportProtocol 
}

The NetworkBinding data model.


type alias NetworkBindings =
List NetworkBinding

The NetworkBindings data model.


type alias NetworkConfiguration =
{ awsvpcConfiguration : Maybe AwsVpcConfiguration }

The NetworkConfiguration data model.


type alias NetworkInterface =
{ attachmentId : Maybe String
, ipv6Address : Maybe String
, privateIpv4Address : Maybe String 
}

The NetworkInterface data model.


type alias NetworkInterfaces =
List NetworkInterface

The NetworkInterfaces data model.


type NetworkMode
    = NetworkModeBridge
    | NetworkModeHost
    | NetworkModeAwsvpc
    | NetworkModeNone

The NetworkMode data model.


type PidMode
    = PidModeHost
    | PidModeTask

The PidMode data model.


type alias PlacementConstraint =
{ expression : Maybe String
, type_ : Maybe PlacementConstraintType 
}

The PlacementConstraint data model.


type PlacementConstraintType
    = PlacementConstraintTypeDistinctInstance
    | PlacementConstraintTypeMemberOf

The PlacementConstraintType data model.


type alias PlacementConstraints =
List PlacementConstraint

The PlacementConstraints data model.


type alias PlacementStrategies =
List PlacementStrategy

The PlacementStrategies data model.


type alias PlacementStrategy =
{ field : Maybe String
, type_ : Maybe PlacementStrategyType 
}

The PlacementStrategy data model.


type PlacementStrategyType
    = PlacementStrategyTypeRandom
    | PlacementStrategyTypeSpread
    | PlacementStrategyTypeBinpack

The PlacementStrategyType data model.


type alias PlatformDevice =
{ id : String
, type_ : PlatformDeviceType 
}

The PlatformDevice data model.


type PlatformDeviceType
    = PlatformDeviceTypeGpu

The PlatformDeviceType data model.


type alias PlatformDevices =
List PlatformDevice

The PlatformDevices data model.


type alias PortMapping =
{ containerPort : Maybe Basics.Int
, hostPort : Maybe Basics.Int
, protocol : Maybe TransportProtocol 
}

The PortMapping data model.


type alias PortMappingList =
List PortMapping

The PortMappingList data model.


type PropagateTags
    = PropagateTagsTaskDefinition
    | PropagateTagsService

The PropagateTags data model.


type alias ProxyConfiguration =
{ containerName : String
, properties : Maybe ProxyConfigurationProperties
, type_ : Maybe ProxyConfigurationType 
}

The ProxyConfiguration data model.


type alias ProxyConfigurationProperties =
List KeyValuePair

The ProxyConfigurationProperties data model.


type ProxyConfigurationType
    = ProxyConfigurationTypeAppmesh

The ProxyConfigurationType data model.


type alias PutAccountSettingDefaultRequest =
{ name : SettingName
, value : String 
}

The PutAccountSettingDefaultRequest data model.


type alias PutAccountSettingDefaultResponse =
{ setting : Maybe Setting }

The PutAccountSettingDefaultResponse data model.


type alias PutAccountSettingRequest =
{ name : SettingName
, principalArn : Maybe String
, value : String 
}

The PutAccountSettingRequest data model.


type alias PutAccountSettingResponse =
{ setting : Maybe Setting }

The PutAccountSettingResponse data model.


type alias PutAttributesRequest =
{ attributes : Attributes
, cluster : Maybe String 
}

The PutAttributesRequest data model.


type alias PutAttributesResponse =
{ attributes : Maybe Attributes }

The PutAttributesResponse data model.


type alias RegisterContainerInstanceRequest =
{ attributes : Maybe Attributes
, cluster : Maybe String
, containerInstanceArn : Maybe String
, instanceIdentityDocument : Maybe String
, instanceIdentityDocumentSignature : Maybe String
, platformDevices : Maybe PlatformDevices
, tags : Maybe Tags
, totalResources : Maybe Resources
, versionInfo : Maybe VersionInfo 
}

The RegisterContainerInstanceRequest data model.


type alias RegisterContainerInstanceResponse =
{ containerInstance : Maybe ContainerInstance }

The RegisterContainerInstanceResponse data model.


type alias RegisterTaskDefinitionRequest =
{ containerDefinitions : ContainerDefinitions
, cpu : Maybe String
, executionRoleArn : Maybe String
, family : String
, ipcMode : Maybe IpcMode
, memory : Maybe String
, networkMode : Maybe NetworkMode
, pidMode : Maybe PidMode
, placementConstraints : Maybe TaskDefinitionPlacementConstraints
, proxyConfiguration : Maybe ProxyConfiguration
, requiresCompatibilities : Maybe CompatibilityList
, tags : Maybe Tags
, taskRoleArn : Maybe String
, volumes : Maybe VolumeList 
}

The RegisterTaskDefinitionRequest data model.


type alias RegisterTaskDefinitionResponse =
{ tags : Maybe Tags
, taskDefinition : Maybe TaskDefinition 
}

The RegisterTaskDefinitionResponse data model.


type alias RepositoryCredentials =
{ credentialsParameter : String }

The RepositoryCredentials data model.


type alias RequiresAttributes =
List Attribute

The RequiresAttributes data model.


type alias Resource =
{ doubleValue : Maybe Basics.Float
, integerValue : Maybe Basics.Int
, longValue : Maybe Basics.Int
, name : Maybe String
, stringSetValue : Maybe StringList
, type_ : Maybe String 
}

The Resource data model.


type alias ResourceRequirement =
{ type_ : ResourceType
, value : String 
}

The ResourceRequirement data model.


type alias ResourceRequirements =
List ResourceRequirement

The ResourceRequirements data model.


type ResourceType
    = ResourceTypeGpu

The ResourceType data model.


type alias Resources =
List Resource

The Resources data model.


type alias RunTaskRequest =
{ cluster : Maybe String
, count : Maybe Basics.Int
, enableEcsmanagedTags : Maybe Basics.Bool
, group : Maybe String
, launchType : Maybe LaunchType
, networkConfiguration : Maybe NetworkConfiguration
, overrides : Maybe TaskOverride
, placementConstraints : Maybe PlacementConstraints
, placementStrategy : Maybe PlacementStrategies
, platformVersion : Maybe String
, propagateTags : Maybe PropagateTags
, startedBy : Maybe String
, tags : Maybe Tags
, taskDefinition : String 
}

The RunTaskRequest data model.


type alias RunTaskResponse =
{ failures : Maybe Failures
, tasks : Maybe Tasks 
}

The RunTaskResponse data model.


type alias Scale =
{ unit : Maybe ScaleUnit
, value : Maybe Basics.Float 
}

The Scale data model.


type ScaleUnit
    = ScaleUnitPercent

The ScaleUnit data model.


type SchedulingStrategy
    = SchedulingStrategyReplica
    | SchedulingStrategyDaemon

The SchedulingStrategy data model.


type Scope
    = ScopeTask
    | ScopeShared

The Scope data model.


type alias Secret =
{ name : String
, valueFrom : String 
}

The Secret data model.


type alias SecretList =
List Secret

The SecretList data model.


type alias Service =
{ clusterArn : Maybe String
, createdAt : Maybe String
, createdBy : Maybe String
, deploymentConfiguration : Maybe DeploymentConfiguration
, deploymentController : Maybe DeploymentController
, deployments : Maybe Deployments
, desiredCount : Maybe Basics.Int
, enableEcsmanagedTags : Maybe Basics.Bool
, events : Maybe ServiceEvents
, healthCheckGracePeriodSeconds : Maybe Basics.Int
, launchType : Maybe LaunchType
, loadBalancers : Maybe LoadBalancers
, networkConfiguration : Maybe NetworkConfiguration
, pendingCount : Maybe Basics.Int
, placementConstraints : Maybe PlacementConstraints
, placementStrategy : Maybe PlacementStrategies
, platformVersion : Maybe String
, propagateTags : Maybe PropagateTags
, roleArn : Maybe String
, runningCount : Maybe Basics.Int
, schedulingStrategy : Maybe SchedulingStrategy
, serviceArn : Maybe String
, serviceName : Maybe String
, serviceRegistries : Maybe ServiceRegistries
, status : Maybe String
, tags : Maybe Tags
, taskDefinition : Maybe String
, taskSets : Maybe TaskSets 
}

The Service data model.


type alias ServiceEvent =
{ createdAt : Maybe String
, id : Maybe String
, message : Maybe String 
}

The ServiceEvent data model.


type alias ServiceEvents =
List ServiceEvent

The ServiceEvents data model.


type ServiceField
    = ServiceFieldTags

The ServiceField data model.


type alias ServiceFieldList =
List ServiceField

The ServiceFieldList data model.


type alias ServiceRegistries =
List ServiceRegistry

The ServiceRegistries data model.


type alias ServiceRegistry =
{ containerName : Maybe String
, containerPort : Maybe Basics.Int
, port_ : Maybe Basics.Int
, registryArn : Maybe String 
}

The ServiceRegistry data model.


type alias Services =
List Service

The Services data model.


type alias Setting =
{ name : Maybe SettingName
, principalArn : Maybe String
, value : Maybe String 
}

The Setting data model.


type SettingName
    = SettingNameServiceLongArnFormat
    | SettingNameTaskLongArnFormat
    | SettingNameContainerInstanceLongArnFormat
    | SettingNameAwsvpcTrunking
    | SettingNameContainerInsights

The SettingName data model.


type alias Settings =
List Setting

The Settings data model.


type SortOrder
    = SortOrderAsc
    | SortOrderDesc

The SortOrder data model.


type StabilityStatus
    = StabilityStatusSteadyState
    | StabilityStatusStabilizing

The StabilityStatus data model.


type alias StartTaskRequest =
{ cluster : Maybe String
, containerInstances : StringList
, enableEcsmanagedTags : Maybe Basics.Bool
, group : Maybe String
, networkConfiguration : Maybe NetworkConfiguration
, overrides : Maybe TaskOverride
, propagateTags : Maybe PropagateTags
, startedBy : Maybe String
, tags : Maybe Tags
, taskDefinition : String 
}

The StartTaskRequest data model.


type alias StartTaskResponse =
{ failures : Maybe Failures
, tasks : Maybe Tasks 
}

The StartTaskResponse data model.


type alias Statistics =
List KeyValuePair

The Statistics data model.


type alias StopTaskRequest =
{ cluster : Maybe String
, reason : Maybe String
, task : String 
}

The StopTaskRequest data model.


type alias StopTaskResponse =
{ task : Maybe Task }

The StopTaskResponse data model.


type alias StringList =
List String

The StringList data model.


type alias StringMap =
Dict String String

The StringMap data model.


type alias SubmitAttachmentStateChangesRequest =
{ attachments : AttachmentStateChanges
, cluster : Maybe String 
}

The SubmitAttachmentStateChangesRequest data model.


type alias SubmitAttachmentStateChangesResponse =
{ acknowledgment : Maybe String }

The SubmitAttachmentStateChangesResponse data model.


type alias SubmitContainerStateChangeRequest =
{ cluster : Maybe String
, containerName : Maybe String
, exitCode : Maybe Basics.Int
, networkBindings : Maybe NetworkBindings
, reason : Maybe String
, status : Maybe String
, task : Maybe String 
}

The SubmitContainerStateChangeRequest data model.


type alias SubmitContainerStateChangeResponse =
{ acknowledgment : Maybe String }

The SubmitContainerStateChangeResponse data model.


type alias SubmitTaskStateChangeRequest =
{ attachments : Maybe AttachmentStateChanges
, cluster : Maybe String
, containers : Maybe ContainerStateChanges
, executionStoppedAt : Maybe String
, pullStartedAt : Maybe String
, pullStoppedAt : Maybe String
, reason : Maybe String
, status : Maybe String
, task : Maybe String 
}

The SubmitTaskStateChangeRequest data model.


type alias SubmitTaskStateChangeResponse =
{ acknowledgment : Maybe String }

The SubmitTaskStateChangeResponse data model.


type alias SystemControl =
{ namespace : Maybe String
, value : Maybe String 
}

The SystemControl data model.


type alias SystemControls =
List SystemControl

The SystemControls data model.


type alias Tag =
{ key : Maybe String
, value : Maybe String 
}

The Tag data model.


type alias TagKeys =
List String

The TagKeys data model.


type alias TagResourceRequest =
{ resourceArn : String
, tags : Tags 
}

The TagResourceRequest data model.


type alias TagResourceResponse =
{}

The TagResourceResponse data model.


type alias Tags =
List Tag

The Tags data model.


type TargetType
    = TargetTypeContainerInstance

The TargetType data model.


type alias Task =
{ attachments : Maybe Attachments
, clusterArn : Maybe String
, connectivity : Maybe Connectivity
, connectivityAt : Maybe String
, containerInstanceArn : Maybe String
, containers : Maybe Containers
, cpu : Maybe String
, createdAt : Maybe String
, desiredStatus : Maybe String
, executionStoppedAt : Maybe String
, group : Maybe String
, healthStatus : Maybe HealthStatus
, lastStatus : Maybe String
, launchType : Maybe LaunchType
, memory : Maybe String
, overrides : Maybe TaskOverride
, platformVersion : Maybe String
, pullStartedAt : Maybe String
, pullStoppedAt : Maybe String
, startedAt : Maybe String
, startedBy : Maybe String
, stopCode : Maybe TaskStopCode
, stoppedAt : Maybe String
, stoppedReason : Maybe String
, stoppingAt : Maybe String
, tags : Maybe Tags
, taskArn : Maybe String
, taskDefinitionArn : Maybe String
, version : Maybe Basics.Int 
}

The Task data model.


type alias TaskDefinition =
{ compatibilities : Maybe CompatibilityList
, containerDefinitions : Maybe ContainerDefinitions
, cpu : Maybe String
, executionRoleArn : Maybe String
, family : Maybe String
, ipcMode : Maybe IpcMode
, memory : Maybe String
, networkMode : Maybe NetworkMode
, pidMode : Maybe PidMode
, placementConstraints : Maybe TaskDefinitionPlacementConstraints
, proxyConfiguration : Maybe ProxyConfiguration
, requiresAttributes : Maybe RequiresAttributes
, requiresCompatibilities : Maybe CompatibilityList
, revision : Maybe Basics.Int
, status : Maybe TaskDefinitionStatus
, taskDefinitionArn : Maybe String
, taskRoleArn : Maybe String
, volumes : Maybe VolumeList 
}

The TaskDefinition data model.


type TaskDefinitionFamilyStatus
    = TaskDefinitionFamilyStatusActive
    | TaskDefinitionFamilyStatusInactive
    | TaskDefinitionFamilyStatusAll

The TaskDefinitionFamilyStatus data model.


type TaskDefinitionField
    = TaskDefinitionFieldTags

The TaskDefinitionField data model.


type alias TaskDefinitionFieldList =
List TaskDefinitionField

The TaskDefinitionFieldList data model.


type alias TaskDefinitionPlacementConstraint =
{ expression : Maybe String
, type_ : Maybe TaskDefinitionPlacementConstraintType 
}

The TaskDefinitionPlacementConstraint data model.


type TaskDefinitionPlacementConstraintType
    = TaskDefinitionPlacementConstraintTypeMemberOf

The TaskDefinitionPlacementConstraintType data model.


type alias TaskDefinitionPlacementConstraints =
List TaskDefinitionPlacementConstraint

The TaskDefinitionPlacementConstraints data model.


type TaskDefinitionStatus
    = TaskDefinitionStatusActive
    | TaskDefinitionStatusInactive

The TaskDefinitionStatus data model.


type TaskField
    = TaskFieldTags

The TaskField data model.


type alias TaskFieldList =
List TaskField

The TaskFieldList data model.


type alias TaskOverride =
{ containerOverrides : Maybe ContainerOverrides
, executionRoleArn : Maybe String
, taskRoleArn : Maybe String 
}

The TaskOverride data model.


type alias TaskSet =
{ clusterArn : Maybe String
, computedDesiredCount : Maybe Basics.Int
, createdAt : Maybe String
, externalId : Maybe String
, id : Maybe String
, launchType : Maybe LaunchType
, loadBalancers : Maybe LoadBalancers
, networkConfiguration : Maybe NetworkConfiguration
, pendingCount : Maybe Basics.Int
, platformVersion : Maybe String
, runningCount : Maybe Basics.Int
, scale : Maybe Scale
, serviceArn : Maybe String
, serviceRegistries : Maybe ServiceRegistries
, stabilityStatus : Maybe StabilityStatus
, stabilityStatusAt : Maybe String
, startedBy : Maybe String
, status : Maybe String
, taskDefinition : Maybe String
, taskSetArn : Maybe String
, updatedAt : Maybe String 
}

The TaskSet data model.


type alias TaskSets =
List TaskSet

The TaskSets data model.


type TaskStopCode
    = TaskStopCodeTaskFailedToStart
    | TaskStopCodeEssentialContainerExited
    | TaskStopCodeUserInitiated

The TaskStopCode data model.


type alias Tasks =
List Task

The Tasks data model.


type alias Tmpfs =
{ containerPath : String
, mountOptions : Maybe StringList
, size : Basics.Int 
}

The Tmpfs data model.


type alias TmpfsList =
List Tmpfs

The TmpfsList data model.


type TransportProtocol
    = TransportProtocolTcp
    | TransportProtocolUdp

The TransportProtocol data model.


type alias Ulimit =
{ hardLimit : Basics.Int
, name : UlimitName
, softLimit : Basics.Int 
}

The Ulimit data model.


type alias UlimitList =
List Ulimit

The UlimitList data model.


type UlimitName
    = UlimitNameCore
    | UlimitNameCpu
    | UlimitNameData
    | UlimitNameFsize
    | UlimitNameLocks
    | UlimitNameMemlock
    | UlimitNameMsgqueue
    | UlimitNameNice
    | UlimitNameNofile
    | UlimitNameNproc
    | UlimitNameRss
    | UlimitNameRtprio
    | UlimitNameRttime
    | UlimitNameSigpending
    | UlimitNameStack

The UlimitName data model.


type alias UntagResourceRequest =
{ resourceArn : String
, tagKeys : TagKeys 
}

The UntagResourceRequest data model.


type alias UntagResourceResponse =
{}

The UntagResourceResponse data model.


type alias UpdateContainerAgentRequest =
{ cluster : Maybe String
, containerInstance : String 
}

The UpdateContainerAgentRequest data model.


type alias UpdateContainerAgentResponse =
{ containerInstance : Maybe ContainerInstance }

The UpdateContainerAgentResponse data model.


type alias UpdateContainerInstancesStateRequest =
{ cluster : Maybe String
, containerInstances : StringList
, status : ContainerInstanceStatus 
}

The UpdateContainerInstancesStateRequest data model.


type alias UpdateContainerInstancesStateResponse =
{ containerInstances : Maybe ContainerInstances
, failures : Maybe Failures 
}

The UpdateContainerInstancesStateResponse data model.


type alias UpdateServicePrimaryTaskSetRequest =
{ cluster : String
, primaryTaskSet : String
, service : String 
}

The UpdateServicePrimaryTaskSetRequest data model.


type alias UpdateServicePrimaryTaskSetResponse =
{ taskSet : Maybe TaskSet }

The UpdateServicePrimaryTaskSetResponse data model.


type alias UpdateServiceRequest =
{ cluster : Maybe String
, deploymentConfiguration : Maybe DeploymentConfiguration
, desiredCount : Maybe Basics.Int
, forceNewDeployment : Maybe Basics.Bool
, healthCheckGracePeriodSeconds : Maybe Basics.Int
, networkConfiguration : Maybe NetworkConfiguration
, platformVersion : Maybe String
, service : String
, taskDefinition : Maybe String 
}

The UpdateServiceRequest data model.


type alias UpdateServiceResponse =
{ service : Maybe Service }

The UpdateServiceResponse data model.


type alias UpdateTaskSetRequest =
{ cluster : String
, scale : Scale
, service : String
, taskSet : String 
}

The UpdateTaskSetRequest data model.


type alias UpdateTaskSetResponse =
{ taskSet : Maybe TaskSet }

The UpdateTaskSetResponse data model.


type alias VersionInfo =
{ agentHash : Maybe String
, agentVersion : Maybe String
, dockerVersion : Maybe String 
}

The VersionInfo data model.


type alias Volume =
{ dockerVolumeConfiguration : Maybe DockerVolumeConfiguration
, host : Maybe HostVolumeProperties
, name : Maybe String 
}

The Volume data model.


type alias VolumeFrom =
{ readOnly : Maybe Basics.Bool
, sourceContainer : Maybe String 
}

The VolumeFrom data model.


type alias VolumeFromList =
List VolumeFrom

The VolumeFromList data model.


type alias VolumeList =
List Volume

The VolumeList data model.

agentUpdateStatus : Enum AgentUpdateStatus

The AgentUpdateStatus data model.

assignPublicIp : Enum AssignPublicIp

The AssignPublicIp data model.

clusterField : Enum ClusterField

The ClusterField data model.

clusterSettingName : Enum ClusterSettingName

The ClusterSettingName data model.

compatibility : Enum Compatibility

The Compatibility data model.

connectivity : Enum Connectivity

The Connectivity data model.

containerCondition : Enum ContainerCondition

The ContainerCondition data model.

containerInstanceField : Enum ContainerInstanceField

The ContainerInstanceField data model.

containerInstanceStatus : Enum ContainerInstanceStatus

The ContainerInstanceStatus data model.

deploymentControllerType : Enum DeploymentControllerType

The DeploymentControllerType data model.

desiredStatus : Enum DesiredStatus

The DesiredStatus data model.

deviceCgroupPermission : Enum DeviceCgroupPermission

The DeviceCgroupPermission data model.

healthStatus : Enum HealthStatus

The HealthStatus data model.

ipcMode : Enum IpcMode

The IpcMode data model.

launchType : Enum LaunchType

The LaunchType data model.

logDriver : Enum LogDriver

The LogDriver data model.

networkMode : Enum NetworkMode

The NetworkMode data model.

pidMode : Enum PidMode

The PidMode data model.

placementConstraintType : Enum PlacementConstraintType

The PlacementConstraintType data model.

placementStrategyType : Enum PlacementStrategyType

The PlacementStrategyType data model.

platformDeviceType : Enum PlatformDeviceType

The PlatformDeviceType data model.

propagateTags : Enum PropagateTags

The PropagateTags data model.

proxyConfigurationType : Enum ProxyConfigurationType

The ProxyConfigurationType data model.

resourceType : Enum ResourceType

The ResourceType data model.

scaleUnit : Enum ScaleUnit

The ScaleUnit data model.

schedulingStrategy : Enum SchedulingStrategy

The SchedulingStrategy data model.

scope : Enum Scope

The Scope data model.

serviceField : Enum ServiceField

The ServiceField data model.

settingName : Enum SettingName

The SettingName data model.

sortOrder : Enum SortOrder

The SortOrder data model.

stabilityStatus : Enum StabilityStatus

The StabilityStatus data model.

targetType : Enum TargetType

The TargetType data model.

taskDefinitionFamilyStatus : Enum TaskDefinitionFamilyStatus

The TaskDefinitionFamilyStatus data model.

taskDefinitionField : Enum TaskDefinitionField

The TaskDefinitionField data model.

taskDefinitionPlacementConstraintType : Enum TaskDefinitionPlacementConstraintType

The TaskDefinitionPlacementConstraintType data model.

taskDefinitionStatus : Enum TaskDefinitionStatus

The TaskDefinitionStatus data model.

taskField : Enum TaskField

The TaskField data model.

taskStopCode : Enum TaskStopCode

The TaskStopCode data model.

transportProtocol : Enum TransportProtocol

The TransportProtocol data model.

ulimitName : Enum UlimitName

The UlimitName data model.