amazonka-ecs-1.4.0: Amazon EC2 Container Service SDK.

Copyright(c) 2013-2016 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay@gmail.com>
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Network.AWS.ECS

Contents

Description

Amazon EC2 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 of EC2 instances. Amazon ECS lets you launch and stop container-enabled 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 like security groups, Amazon EBS volumes, and IAM roles.

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 EC2 Container Service eliminates the need for you to operate your own cluster management and configuration management systems or worry about scaling your management infrastructure.

Synopsis

Service Configuration

ecs :: Service Source

API version '2014-11-13' of the Amazon EC2 Container Service SDK configuration.

Errors

Error matchers are designed for use with the functions provided by Control.Exception.Lens. This allows catching (and rethrowing) service specific errors returned by ECS.

InvalidParameterException

_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified parameter is invalid. Review the available parameters for the API request.

ServerException

_ServerException :: AsError a => Getting (First ServiceError) a ServiceError Source

These errors are usually caused by a server issue.

ClusterContainsServicesException

_ClusterContainsServicesException :: AsError a => Getting (First ServiceError) a ServiceError Source

You cannot delete a cluster that contains services. You must first update the service to reduce its desired task count to 0 and then delete the service. For more information, see UpdateService and DeleteService.

ClusterContainsContainerInstancesException

_ClusterContainsContainerInstancesException :: AsError a => Getting (First ServiceError) a ServiceError Source

You cannot delete a cluster that has registered container instances. You must first deregister the container instances before you can delete the cluster. For more information, see DeregisterContainerInstance.

ServiceNotActiveException

_ServiceNotActiveException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified service is not active. You cannot update a service that is not active. If you have previously deleted a service, you can re-create it with CreateService.

ClusterNotFoundException

_ClusterNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified cluster could not be found. You can view your available clusters with ListClusters. Amazon ECS clusters are region-specific.

NoUpdateAvailableException

_NoUpdateAvailableException :: AsError a => Getting (First ServiceError) a ServiceError Source

There is no update available for this Amazon ECS container agent. This could be because the agent is already running the latest version, or it is so old that there is no update path to the current version.

ServiceNotFoundException

_ServiceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified service could not be found. You can view your available services with ListServices. Amazon ECS services are cluster-specific and region-specific.

MissingVersionException

_MissingVersionException :: AsError a => Getting (First ServiceError) a ServiceError Source

Amazon ECS is unable to determine the current version of the Amazon ECS container agent on the container instance and does not have enough information to proceed with an update. This could be because the agent running on the container instance is an older or custom version that does not use our version information.

UpdateInProgressException

_UpdateInProgressException :: AsError a => Getting (First ServiceError) a ServiceError Source

There is already a current Amazon ECS container agent update in progress on the specified container instance. If the container agent becomes disconnected while it is in a transitional stage, such as PENDING or STAGING, the update process can get stuck in that state. However, when the agent reconnects, it resumes where it stopped previously.

ClientException

_ClientException :: AsError a => Getting (First ServiceError) a ServiceError Source

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permission to use the action or resource, or specifying an identifier that is not valid.

Waiters

Waiters poll by repeatedly sending a request until some remote success condition configured by the Wait specification is fulfilled. The Wait specification determines how many attempts should be made, in addition to delay and retry strategies.

ServicesInactive

servicesInactive :: Wait DescribeServices Source

Polls DescribeServices every 15 seconds until a successful state is reached. An error is returned after 40 failed checks.

TasksRunning

tasksRunning :: Wait DescribeTasks Source

Polls DescribeTasks every 6 seconds until a successful state is reached. An error is returned after 100 failed checks.

TasksStopped

tasksStopped :: Wait DescribeTasks Source

Polls DescribeTasks every 6 seconds until a successful state is reached. An error is returned after 100 failed checks.

Operations

Some AWS operations return results that are incomplete and require subsequent requests in order to obtain the entire result set. The process of sending subsequent requests to continue where a previous request left off is called pagination. For example, the ListObjects operation of Amazon S3 returns up to 1000 objects at a time, and you must send subsequent requests with the appropriate Marker in order to retrieve the next page of results.

Operations that have an AWSPager instance can transparently perform subsequent requests, correctly setting Markers and other request facets to iterate through the entire result set of a truncated API operation. Operations which support this have an additional note in the documentation.

Many operations have the ability to filter results on the server side. See the individual operation parameters for details.

ListServices (Paginated)

DescribeClusters

DeleteService

UpdateService

DiscoverPollEndpoint

SubmitContainerStateChange

StopTask

DescribeTaskDefinition

SubmitTaskStateChange

DescribeContainerInstances

DeleteCluster

CreateCluster

ListTaskDefinitions (Paginated)

RunTask

ListTasks (Paginated)

RegisterContainerInstance

UpdateContainerAgent

ListContainerInstances (Paginated)

ListTaskDefinitionFamilies (Paginated)

StartTask

DeregisterTaskDefinition

DescribeTasks

ListClusters (Paginated)

DescribeServices

DeregisterContainerInstance

RegisterTaskDefinition

CreateService

Types

AgentUpdateStatus

DesiredStatus

LogDriver

SortOrder

TaskDefinitionStatus

TransportProtocol

UlimitName

Attribute

data Attribute Source

The attributes applicable to a container instance when it is registered.

See: attribute smart constructor.

attribute Source

Arguments

:: Text

aName

-> Attribute 

Creates a value of Attribute with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

aValue :: Lens' Attribute (Maybe Text) Source

The value of the container instance attribute (at this time, the value here is Null, but this could change in future revisions for expandability).

aName :: Lens' Attribute Text Source

The name of the container instance attribute.

Cluster

data Cluster Source

A regional grouping of one or more container instances on which you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.

See: cluster smart constructor.

cluster :: Cluster Source

Creates a value of Cluster with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

cStatus :: Lens' Cluster (Maybe Text) Source

The status of the cluster. The valid values are ACTIVE or INACTIVE. ACTIVE indicates that you can register container instances with the cluster and the associated instances can accept tasks.

cClusterARN :: Lens' Cluster (Maybe Text) Source

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the 'arn:aws:ecs' namespace, followed by the region of the cluster, the AWS account ID of the cluster owner, the cluster namespace, and then the cluster name. For example, arn:aws:ecs:region:012345678910:cluster/test.

cRunningTasksCount :: Lens' Cluster (Maybe Int) Source

The number of tasks in the cluster that are in the RUNNING state.

cRegisteredContainerInstancesCount :: Lens' Cluster (Maybe Int) Source

The number of container instances registered into the cluster.

cPendingTasksCount :: Lens' Cluster (Maybe Int) Source

The number of tasks in the cluster that are in the PENDING state.

cClusterName :: Lens' Cluster (Maybe Text) Source

A user-generated string that you use to identify your cluster.

cActiveServicesCount :: Lens' Cluster (Maybe Int) Source

The number of services that are running on the cluster in an ACTIVE state. You can view these services with ListServices.

Container

container :: Container Source

Creates a value of Container with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

cNetworkBindings :: Lens' Container [NetworkBinding] Source

The network bindings associated with the container.

cContainerARN :: Lens' Container (Maybe Text) Source

The Amazon Resource Name (ARN) of the container.

cTaskARN :: Lens' Container (Maybe Text) Source

The Amazon Resource Name (ARN) of the task.

cLastStatus :: Lens' Container (Maybe Text) Source

The last known status of the container.

cReason :: Lens' Container (Maybe Text) Source

A short (255 max characters) human-readable string to provide additional detail about a running or stopped container.

cName :: Lens' Container (Maybe Text) Source

The name of the container.

cExitCode :: Lens' Container (Maybe Int) Source

The exit code returned from the container.

ContainerDefinition

cdImage :: Lens' ContainerDefinition (Maybe Text) Source

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with 'repository-url\/image:tag'. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

  • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).
  • Images in other repositories on Docker Hub are qualified with an organization name (for example, 'amazon\/amazon-ecs-agent').
  • Images in other online repositories are qualified further by a domain name (for example, 'quay.io\/assemblyline\/ubuntu').

cdCommand :: Lens' ContainerDefinition [Text] Source

The command that is passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/reference/builder/#cmd.

cdHostname :: Lens' ContainerDefinition (Maybe Text) Source

The hostname to use for your container. This parameter maps to Hostname in the Create a container section of the Docker Remote API and the '--hostname' option to docker run.

cdDockerSecurityOptions :: Lens' ContainerDefinition [Text] Source

A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to SecurityOpt in the Create a container section of the Docker Remote API and the '--security-opt' option to docker run.

The Amazon ECS container agent running on a container instance must register with the 'ECS_SELINUX_CAPABLE=true' or 'ECS_APPARMOR_CAPABLE=true' environment variables before containers placed on that instance can use these security options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

cdDisableNetworking :: Lens' ContainerDefinition (Maybe Bool) Source

When this parameter is true, networking is disabled within the container. This parameter maps to NetworkDisabled in the Create a container section of the Docker Remote API.

cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom] Source

Data volumes to mount from another container. This parameter maps to VolumesFrom in the Create a container section of the Docker Remote API and the '--volumes-from' option to docker run.

cdEnvironment :: Lens' ContainerDefinition [KeyValuePair] Source

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the '--env' option to docker run.

We do not recommend using plain text environment variables for sensitive information, such as credential data.

cdEntryPoint :: Lens' ContainerDefinition [Text] Source

Early versions of the Amazon ECS container agent do not properly handle entryPoint parameters. If you have problems using entryPoint, update your container agent or enter your commands and arguments as command array items instead.

The entry point that is passed to the container. This parameter maps to Entrypoint in the Create a container section of the Docker Remote API and the '--entrypoint' option to docker run. For more information, see https://docs.docker.com/reference/builder/#entrypoint.

cdWorkingDirectory :: Lens' ContainerDefinition (Maybe Text) Source

The working directory in which to run commands inside the container. This parameter maps to WorkingDir in the Create a container section of the Docker Remote API and the '--workdir' option to docker run.

cdUlimits :: Lens' ContainerDefinition [Ulimit] Source

A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the '--ulimit' option to docker run. Valid naming values are displayed in the Ulimit data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: 'sudo docker version | grep "Server API version"'

cdPrivileged :: Lens' ContainerDefinition (Maybe Bool) Source

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the '--privileged' option to docker run.

cdPortMappings :: Lens' ContainerDefinition [PortMapping] Source

The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to PortBindings in the Create a container section of the Docker Remote API and the '--publish' option to docker run.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the Network Bindings section of a container description of a selected task in the Amazon ECS console, or the networkBindings section DescribeTasks responses.

cdDockerLabels :: Lens' ContainerDefinition (HashMap Text Text) Source

A key/value map of labels to add to the container. This parameter maps to Labels in the Create a container section of the Docker Remote API and the '--label' option to docker run. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: 'sudo docker version | grep "Server API version"'

cdExtraHosts :: Lens' ContainerDefinition [HostEntry] Source

A list of hostnames and IP address mappings to append to the '\/etc\/hosts' file on the container. This parameter maps to ExtraHosts in the Create a container section of the Docker Remote API and the '--add-host' option to docker run.

cdMemory :: Lens' ContainerDefinition (Maybe Int) Source

The number of MiB of memory to reserve for the container. You must specify a non-zero integer for this parameter; the Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers. If your container attempts to exceed the memory allocated here, the container is killed. This parameter maps to Memory in the Create a container section of the Docker Remote API and the '--memory' option to docker run.

cdUser :: Lens' ContainerDefinition (Maybe Text) Source

The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the '--user' option to docker run.

cdDnsSearchDomains :: Lens' ContainerDefinition [Text] Source

A list of DNS search domains that are presented to the container. This parameter maps to DnsSearch in the Create a container section of the Docker Remote API and the '--dns-search' option to docker run.

cdLogConfiguration :: Lens' ContainerDefinition (Maybe LogConfiguration) Source

The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the '--log-driver' option to docker run. Valid log drivers are displayed in the LogConfiguration data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: 'sudo docker version | grep "Server API version"'

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon EC2 Container Service Developer Guide.

cdName :: Lens' ContainerDefinition (Maybe Text) Source

The name of a container. If you are linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to name in the Create a container section of the Docker Remote API and the '--name' option to docker run.

cdDnsServers :: Lens' ContainerDefinition [Text] Source

A list of DNS servers that are presented to the container. This parameter maps to Dns in the Create a container section of the Docker Remote API and the '--dns' option to docker run.

cdMountPoints :: Lens' ContainerDefinition [MountPoint] Source

The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the '--volume' option to docker run.

cdLinks :: Lens' ContainerDefinition [Text] Source

The link parameter allows containers to communicate with each other without the need for port mappings, using the name parameter and optionally, an alias for the link. This construct is analogous to 'name:alias' in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each name and alias. For more information on linking Docker containers, see https://docs.docker.com/userguide/dockerlinks/. This parameter maps to Links in the Create a container section of the Docker Remote API and the '--link' option to docker run.

Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.

cdReadonlyRootFilesystem :: Lens' ContainerDefinition (Maybe Bool) Source

When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the '--read-only' option to 'docker run'.

cdEssential :: Lens' ContainerDefinition (Maybe Bool) Source

If the essential parameter of a container is marked as true, the failure of that container stops the task. If the essential parameter of a container is marked as false, then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container.

cdCpu :: Lens' ContainerDefinition (Maybe Int) Source

The number of cpu units reserved for the container. A container instance has 1,024 cpu units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the '--cpu-shares' option to docker run.

You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the Amazon EC2 Instances detail page by 1,024.

For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units.

The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see CPU share constraint in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version:

  • Agent versions less than or equal to 1.1.0: Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares.
  • Agent versions greater than or equal to 1.2.0: Null, zero, and CPU values of 1 are passed to Docker as 2.

ContainerInstance

ciStatus :: Lens' ContainerInstance (Maybe Text) Source

The status of the container instance. The valid values are ACTIVE or INACTIVE. ACTIVE indicates that the container instance can accept tasks.

ciRunningTasksCount :: Lens' ContainerInstance (Maybe Int) Source

The number of tasks on the container instance that are in the RUNNING status.

ciRemainingResources :: Lens' ContainerInstance [Resource] Source

The remaining resources of the container instance that are available for new tasks.

ciEc2InstanceId :: Lens' ContainerInstance (Maybe Text) Source

The EC2 instance ID of the container instance.

ciContainerInstanceARN :: Lens' ContainerInstance (Maybe Text) Source

The Amazon Resource Name (ARN) of the container instance. The ARN contains the 'arn:aws:ecs' namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the 'container-instance' namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.

ciAgentConnected :: Lens' ContainerInstance (Maybe Bool) Source

This parameter returns true if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false, and instances without a connected agent cannot accept placement requests.

ciVersionInfo :: Lens' ContainerInstance (Maybe VersionInfo) Source

The version information for the Amazon ECS container agent and Docker daemon running on the container instance.

ciAgentUpdateStatus :: Lens' ContainerInstance (Maybe AgentUpdateStatus) Source

The status of the most recent agent update. If an update has never been requested, this value is NULL.

ciAttributes :: Lens' ContainerInstance [Attribute] Source

The attributes set for the container instance by the Amazon ECS container agent at instance registration.

ciPendingTasksCount :: Lens' ContainerInstance (Maybe Int) Source

The number of tasks on the container instance that are in the PENDING status.

ciRegisteredResources :: Lens' ContainerInstance [Resource] Source

The registered resources on the container instance that are in use by current tasks.

ContainerOverride

containerOverride :: ContainerOverride Source

Creates a value of ContainerOverride with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

coCommand :: Lens' ContainerOverride [Text] Source

The command to send to the container that overrides the default command from the Docker image or the task definition.

coEnvironment :: Lens' ContainerOverride [KeyValuePair] Source

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition.

coName :: Lens' ContainerOverride (Maybe Text) Source

The name of the container that receives the override.

ContainerService

csRunningCount :: Lens' ContainerService (Maybe Int) Source

The number of tasks in the cluster that are in the RUNNING state.

csStatus :: Lens' ContainerService (Maybe Text) Source

The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.

csClusterARN :: Lens' ContainerService (Maybe Text) Source

The Amazon Resource Name (ARN) of the of the cluster that hosts the service.

csDesiredCount :: Lens' ContainerService (Maybe Int) Source

The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.

csLoadBalancers :: Lens' ContainerService [LoadBalancer] Source

A list of load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.

csPendingCount :: Lens' ContainerService (Maybe Int) Source

The number of tasks in the cluster that are in the PENDING state.

csEvents :: Lens' ContainerService [ServiceEvent] Source

The event stream for your service. A maximum of 100 of the latest events are displayed.

csDeployments :: Lens' ContainerService [Deployment] Source

The current state of deployments for the service.

csServiceName :: Lens' ContainerService (Maybe Text) Source

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.

csServiceARN :: Lens' ContainerService (Maybe Text) Source

The Amazon Resource Name (ARN) that identifies the service. The ARN contains the 'arn:aws:ecs' namespace, followed by the region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.

csTaskDefinition :: Lens' ContainerService (Maybe Text) Source

The task definition to use for tasks in the service. This value is specified when the service is created with CreateService, and it can be modified with UpdateService.

csRoleARN :: Lens' ContainerService (Maybe Text) Source

The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with a load balancer.

csDeploymentConfiguration :: Lens' ContainerService (Maybe DeploymentConfiguration) Source

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

Deployment

deployment :: Deployment Source

Creates a value of Deployment with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

dRunningCount :: Lens' Deployment (Maybe Int) Source

The number of tasks in the deployment that are in the RUNNING status.

dStatus :: Lens' Deployment (Maybe Text) Source

The status of the deployment. Valid values are PRIMARY (for the most recent deployment), ACTIVE (for previous deployments that still have tasks running, but are being replaced with the PRIMARY deployment), and INACTIVE (for deployments that have been completely replaced).

dCreatedAt :: Lens' Deployment (Maybe UTCTime) Source

The Unix time in seconds and milliseconds when the service was created.

dDesiredCount :: Lens' Deployment (Maybe Int) Source

The most recent desired count of tasks that was specified for the service to deploy or maintain.

dPendingCount :: Lens' Deployment (Maybe Int) Source

The number of tasks in the deployment that are in the PENDING status.

dId :: Lens' Deployment (Maybe Text) Source

The ID of the deployment.

dUpdatedAt :: Lens' Deployment (Maybe UTCTime) Source

The Unix time in seconds and milliseconds when the service was last updated.

dTaskDefinition :: Lens' Deployment (Maybe Text) Source

The most recent task definition that was specified for the service to use.

DeploymentConfiguration

deploymentConfiguration :: DeploymentConfiguration Source

Creates a value of DeploymentConfiguration with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

dcMinimumHealthyPercent :: Lens' DeploymentConfiguration (Maybe Int) Source

The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment. The minimum healthy tasks during a deployment is the desiredCount multiplied by the minimumHealthyPercent/100, rounded up to the nearest integer value.

dcMaximumPercent :: Lens' DeploymentConfiguration (Maybe Int) Source

The upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment. The maximum number of tasks during a deployment is the desiredCount multiplied by the maximumPercent/100, rounded down to the nearest integer value.

Failure

failure :: Failure Source

Creates a value of Failure with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

fArn :: Lens' Failure (Maybe Text) Source

The Amazon Resource Name (ARN) of the failed resource.

fReason :: Lens' Failure (Maybe Text) Source

The reason for the failure.

HostEntry

data HostEntry Source

Hostnames and IP address entries that are added to the '\/etc\/hosts' file of a container via the extraHosts parameter of its ContainerDefinition.

See: hostEntry smart constructor.

hostEntry Source

Creates a value of HostEntry with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

heHostname :: Lens' HostEntry Text Source

The hostname to use in the '\/etc\/hosts' entry.

heIpAddress :: Lens' HostEntry Text Source

The IP address to use in the '\/etc\/hosts' entry.

HostVolumeProperties

hostVolumeProperties :: HostVolumeProperties Source

Creates a value of HostVolumeProperties with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text) Source

The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the host parameter contains a sourcePath file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the sourcePath value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.

KeyValuePair

keyValuePair :: KeyValuePair Source

Creates a value of KeyValuePair with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

kvpValue :: Lens' KeyValuePair (Maybe Text) Source

The value of the key value pair. For environment variables, this is the value of the environment variable.

kvpName :: Lens' KeyValuePair (Maybe Text) Source

The name of the key value pair. For environment variables, this is the name of the environment variable.

LoadBalancer

loadBalancer :: LoadBalancer Source

Creates a value of LoadBalancer with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

lbLoadBalancerName :: Lens' LoadBalancer (Maybe Text) Source

The name of the load balancer.

lbContainerName :: Lens' LoadBalancer (Maybe Text) Source

The name of the container (as it appears in a container definition) to associate with the load balancer.

lbContainerPort :: Lens' LoadBalancer (Maybe Int) Source

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the service's task definition. Your container instances must allow ingress traffic on the hostPort of the port mapping.

LogConfiguration

logConfiguration Source

Creates a value of LogConfiguration with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

lcOptions :: Lens' LogConfiguration (HashMap Text Text) Source

The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: 'sudo docker version | grep "Server API version"'

lcLogDriver :: Lens' LogConfiguration LogDriver Source

The log driver to use for the container. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: 'sudo docker version | grep "Server API version"'

MountPoint

data MountPoint Source

Details on a volume mount point that is used in a container definition.

See: mountPoint smart constructor.

mountPoint :: MountPoint Source

Creates a value of MountPoint with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

mpContainerPath :: Lens' MountPoint (Maybe Text) Source

The path on the container to mount the host volume at.

mpSourceVolume :: Lens' MountPoint (Maybe Text) Source

The name of the volume to mount.

mpReadOnly :: Lens' MountPoint (Maybe Bool) Source

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.

NetworkBinding

data NetworkBinding Source

Details on the network bindings between a container and its host container instance. After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

See: networkBinding smart constructor.

networkBinding :: NetworkBinding Source

Creates a value of NetworkBinding with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

nbBindIP :: Lens' NetworkBinding (Maybe Text) Source

The IP address that the container is bound to on the container instance.

nbProtocol :: Lens' NetworkBinding (Maybe TransportProtocol) Source

The protocol used for the network binding.

nbHostPort :: Lens' NetworkBinding (Maybe Int) Source

The port number on the host that is used with the network binding.

nbContainerPort :: Lens' NetworkBinding (Maybe Int) Source

The port number on the container that is be used with the network binding.

PortMapping

data PortMapping Source

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition. After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

See: portMapping smart constructor.

portMapping :: PortMapping Source

Creates a value of PortMapping with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

pmProtocol :: Lens' PortMapping (Maybe TransportProtocol) Source

The protocol used for the port mapping. Valid values are tcp and udp. The default is tcp.

pmHostPort :: Lens' PortMapping (Maybe Int) Source

The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to '0') while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range is 49153 to 65535, and this range is used for Docker versions prior to 1.6.0. For Docker version 1.6.0 and later, the Docker daemon tries to read the ephemeral port range from '\/proc\/sys\/net\/ipv4\/ip_local_port_range'; if this kernel parameter is unavailable, the default ephemeral port range is used. You should not attempt to specify a host port in the ephemeral port range, because these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent port 51678. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output, and a container instance may have up to 50 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward this limit).

pmContainerPort :: Lens' PortMapping (Maybe Int) Source

The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see hostPort).

Resource

data Resource Source

Describes the resources available for a container instance.

See: resource smart constructor.

resource :: Resource Source

Creates a value of Resource with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

rStringSetValue :: Lens' Resource [Text] Source

When the stringSetValue type is set, the value of the resource must be a string type.

rIntegerValue :: Lens' Resource (Maybe Int) Source

When the integerValue type is set, the value of the resource must be an integer.

rDoubleValue :: Lens' Resource (Maybe Double) Source

When the doubleValue type is set, the value of the resource must be a double precision floating-point type.

rLongValue :: Lens' Resource (Maybe Integer) Source

When the longValue type is set, the value of the resource must be an extended precision floating-point type.

rName :: Lens' Resource (Maybe Text) Source

The name of the resource, such as CPU, MEMORY, PORTS, or a user-defined resource.

rType :: Lens' Resource (Maybe Text) Source

The type of the resource, such as INTEGER, DOUBLE, LONG, or STRINGSET.

ServiceEvent

serviceEvent :: ServiceEvent Source

Creates a value of ServiceEvent with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

seCreatedAt :: Lens' ServiceEvent (Maybe UTCTime) Source

The Unix time in seconds and milliseconds when the event was triggered.

seId :: Lens' ServiceEvent (Maybe Text) Source

The ID string of the event.

seMessage :: Lens' ServiceEvent (Maybe Text) Source

The event message.

Task

data Task Source

Details on a task in a cluster.

See: task smart constructor.

task :: Task Source

Creates a value of Task with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

tStoppedAt :: Lens' Task (Maybe UTCTime) Source

The Unix time in seconds and milliseconds when the task was stopped (the task transitioned from the RUNNING state to the STOPPED state).

tDesiredStatus :: Lens' Task (Maybe Text) Source

The desired status of the task.

tOverrides :: Lens' Task (Maybe TaskOverride) Source

One or more container overrides.

tClusterARN :: Lens' Task (Maybe Text) Source

The Amazon Resource Name (ARN) of the of the cluster that hosts the task.

tCreatedAt :: Lens' Task (Maybe UTCTime) Source

The Unix time in seconds and milliseconds when the task was created (the task entered the PENDING state).

tTaskARN :: Lens' Task (Maybe Text) Source

The Amazon Resource Name (ARN) of the task.

tContainerInstanceARN :: Lens' Task (Maybe Text) Source

The Amazon Resource Name (ARN) of the container instances that host the task.

tLastStatus :: Lens' Task (Maybe Text) Source

The last known status of the task.

tContainers :: Lens' Task [Container] Source

The containers associated with the task.

tStartedAt :: Lens' Task (Maybe UTCTime) Source

The Unix time in seconds and milliseconds when the task was started (the task transitioned from the PENDING state to the RUNNING state).

tStartedBy :: Lens' Task (Maybe Text) Source

The tag specified when a task is started. If the task is started by an Amazon ECS service, then the startedBy parameter contains the deployment ID of the service that starts it.

tStoppedReason :: Lens' Task (Maybe Text) Source

The reason the task was stopped.

tTaskDefinitionARN :: Lens' Task (Maybe Text) Source

The Amazon Resource Name (ARN) of the of the task definition that creates the task.

TaskDefinition

taskDefinition :: TaskDefinition Source

Creates a value of TaskDefinition with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

tdStatus :: Lens' TaskDefinition (Maybe TaskDefinitionStatus) Source

The status of the task definition.

tdFamily :: Lens' TaskDefinition (Maybe Text) Source

The family of your task definition, used as the definition name.

tdContainerDefinitions :: Lens' TaskDefinition [ContainerDefinition] Source

A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

tdTaskDefinitionARN :: Lens' TaskDefinition (Maybe Text) Source

The full Amazon Resource Name (ARN) of the of the task definition.

tdRevision :: Lens' TaskDefinition (Maybe Int) Source

The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is '1'; each time you register a new revision of a task definition in the same family, the revision value always increases by one (even if you have deregistered previous revisions in this family).

tdVolumes :: Lens' TaskDefinition [Volume] Source

The list of volumes in a task. For more information about volume definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service Developer Guide.

tdRequiresAttributes :: Lens' TaskDefinition [Attribute] Source

The container instance attributes required by your task.

TaskOverride

taskOverride :: TaskOverride Source

Creates a value of TaskOverride with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

toContainerOverrides :: Lens' TaskOverride [ContainerOverride] Source

One or more container overrides sent to a task.

Ulimit

data Ulimit Source

The ulimit settings to pass to the container.

See: ulimit smart constructor.

ulimit Source

Creates a value of Ulimit with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

uName :: Lens' Ulimit UlimitName Source

The 'type' of the ulimit.

uSoftLimit :: Lens' Ulimit Int Source

The soft limit for the ulimit type.

uHardLimit :: Lens' Ulimit Int Source

The hard limit for the ulimit type.

VersionInfo

data VersionInfo Source

The Docker and Amazon ECS container agent version information about a container instance.

See: versionInfo smart constructor.

versionInfo :: VersionInfo Source

Creates a value of VersionInfo with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

viAgentHash :: Lens' VersionInfo (Maybe Text) Source

The Git commit hash for the Amazon ECS container agent build on the amazon-ecs-agent GitHub repository.

viAgentVersion :: Lens' VersionInfo (Maybe Text) Source

The version number of the Amazon ECS container agent.

viDockerVersion :: Lens' VersionInfo (Maybe Text) Source

The Docker version running on the container instance.

Volume

data Volume Source

A data volume used in a task definition.

See: volume smart constructor.

volume :: Volume Source

Creates a value of Volume with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

vName :: Lens' Volume (Maybe Text) Source

The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints.

vHost :: Lens' Volume (Maybe HostVolumeProperties) Source

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.

VolumeFrom

volumeFrom :: VolumeFrom Source

Creates a value of VolumeFrom with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

vfSourceContainer :: Lens' VolumeFrom (Maybe Text) Source

The name of the container to mount volumes from.

vfReadOnly :: Lens' VolumeFrom (Maybe Bool) Source

If this value is true, the container has read-only access to the volume. If this value is false, then the container can write to the volume. The default value is false.