-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon EC2 Container Service SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.ECS</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-ecs
@version 1.4.5


module Network.AWS.ECS.Types

-- | API version <tt>2014-11-13</tt> of the Amazon EC2 Container Service
--   SDK configuration.
ecs :: Service

-- | The specified parameter is invalid. Review the available parameters
--   for the API request.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | These errors are usually caused by a server issue.
_ServerException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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 <tt>UpdateService</tt>
--   and <tt>DeleteService</tt> .
_ClusterContainsServicesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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
--   <tt>DeregisterContainerInstance</tt> .
_ClusterContainsContainerInstancesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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 <tt>CreateService</tt> .
_ServiceNotActiveException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified cluster could not be found. You can view your available
--   clusters with <tt>ListClusters</tt> . Amazon ECS clusters are
--   region-specific.
_ClusterNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_NoUpdateAvailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified service could not be found. You can view your available
--   services with <tt>ListServices</tt> . Amazon ECS services are
--   cluster-specific and region-specific.
_ServiceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_MissingVersionException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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
--   <tt>PENDING</tt> or <tt>STAGING</tt> , the update process can get
--   stuck in that state. However, when the agent reconnects, it resumes
--   where it stopped previously.
_UpdateInProgressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_ClientException :: AsError a => Getting (First ServiceError) a ServiceError
data AgentUpdateStatus
AUSFailed :: AgentUpdateStatus
AUSPending :: AgentUpdateStatus
AUSStaged :: AgentUpdateStatus
AUSStaging :: AgentUpdateStatus
AUSUpdated :: AgentUpdateStatus
AUSUpdating :: AgentUpdateStatus
data DesiredStatus
Pending :: DesiredStatus
Running :: DesiredStatus
Stopped :: DesiredStatus
data LogDriver
AWSlogs :: LogDriver
Fluentd :: LogDriver
Gelf :: LogDriver
JSONFile :: LogDriver
Journald :: LogDriver
Splunk :: LogDriver
Syslog :: LogDriver
data NetworkMode
Bridge :: NetworkMode
Host :: NetworkMode
None :: NetworkMode
data SortOrder
Asc :: SortOrder
Desc :: SortOrder
data TaskDefinitionFamilyStatus
Active :: TaskDefinitionFamilyStatus
All :: TaskDefinitionFamilyStatus
Inactive :: TaskDefinitionFamilyStatus
data TaskDefinitionStatus
TDSActive :: TaskDefinitionStatus
TDSInactive :: TaskDefinitionStatus
data TransportProtocol
TCP :: TransportProtocol
Udp :: TransportProtocol
data UlimitName
CPU :: UlimitName
Core :: UlimitName
Data :: UlimitName
Fsize :: UlimitName
Locks :: UlimitName
Memlock :: UlimitName
Msgqueue :: UlimitName
Nice :: UlimitName
Nofile :: UlimitName
Nproc :: UlimitName
Rss :: UlimitName
Rtprio :: UlimitName
Rttime :: UlimitName
Sigpending :: UlimitName
Stack :: UlimitName

-- | The attributes applicable to a container instance when it is
--   registered.
--   
--   <i>See:</i> <a>attribute</a> smart constructor.
data Attribute

-- | Creates a value of <a>Attribute</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aValue</a> - The value of the container instance attribute (at
--   this time, the value here is <tt>Null</tt> , but this could change in
--   future revisions for expandability).</li>
--   <li><a>aName</a> - The name of the container instance attribute.</li>
--   </ul>
attribute :: Text -> Attribute

-- | The value of the container instance attribute (at this time, the value
--   here is <tt>Null</tt> , but this could change in future revisions for
--   expandability).
aValue :: Lens' Attribute (Maybe Text)

-- | The name of the container instance attribute.
aName :: Lens' Attribute Text

-- | 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.
--   
--   <i>See:</i> <a>cluster</a> smart constructor.
data Cluster

-- | Creates a value of <a>Cluster</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cStatus</a> - The status of the cluster. The valid values are
--   <tt>ACTIVE</tt> or <tt>INACTIVE</tt> . <tt>ACTIVE</tt> indicates that
--   you can register container instances with the cluster and the
--   associated instances can accept tasks.</li>
--   <li><a>cClusterARN</a> - The Amazon Resource Name (ARN) that
--   identifies the cluster. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the cluster, the AWS account ID
--   of the cluster owner, the <tt>cluster</tt> namespace, and then the
--   cluster name. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>012345678910</i> :cluster/<i>test</i> </tt> ..</li>
--   <li><a>cRunningTasksCount</a> - The number of tasks in the cluster
--   that are in the <tt>RUNNING</tt> state.</li>
--   <li><a>cRegisteredContainerInstancesCount</a> - The number of
--   container instances registered into the cluster.</li>
--   <li><a>cPendingTasksCount</a> - The number of tasks in the cluster
--   that are in the <tt>PENDING</tt> state.</li>
--   <li><a>cClusterName</a> - A user-generated string that you use to
--   identify your cluster.</li>
--   <li><a>cActiveServicesCount</a> - The number of services that are
--   running on the cluster in an <tt>ACTIVE</tt> state. You can view these
--   services with <tt>ListServices</tt> .</li>
--   </ul>
cluster :: Cluster

-- | The status of the cluster. The valid values are <tt>ACTIVE</tt> or
--   <tt>INACTIVE</tt> . <tt>ACTIVE</tt> indicates that you can register
--   container instances with the cluster and the associated instances can
--   accept tasks.
cStatus :: Lens' Cluster (Maybe Text)

-- | The Amazon Resource Name (ARN) that identifies the cluster. The ARN
--   contains the <tt>arn:aws:ecs</tt> namespace, followed by the region of
--   the cluster, the AWS account ID of the cluster owner, the
--   <tt>cluster</tt> namespace, and then the cluster name. For example,
--   <tt>arn:aws:ecs:<i>region</i> :<i>012345678910</i>
--   :cluster/<i>test</i> </tt> ..
cClusterARN :: Lens' Cluster (Maybe Text)

-- | The number of tasks in the cluster that are in the <tt>RUNNING</tt>
--   state.
cRunningTasksCount :: Lens' Cluster (Maybe Int)

-- | The number of container instances registered into the cluster.
cRegisteredContainerInstancesCount :: Lens' Cluster (Maybe Int)

-- | The number of tasks in the cluster that are in the <tt>PENDING</tt>
--   state.
cPendingTasksCount :: Lens' Cluster (Maybe Int)

-- | A user-generated string that you use to identify your cluster.
cClusterName :: Lens' Cluster (Maybe Text)

-- | The number of services that are running on the cluster in an
--   <tt>ACTIVE</tt> state. You can view these services with
--   <tt>ListServices</tt> .
cActiveServicesCount :: Lens' Cluster (Maybe Int)

-- | A Docker container that is part of a task.
--   
--   <i>See:</i> <a>container</a> smart constructor.
data Container

-- | Creates a value of <a>Container</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cNetworkBindings</a> - The network bindings associated with the
--   container.</li>
--   <li><a>cContainerARN</a> - The Amazon Resource Name (ARN) of the
--   container.</li>
--   <li><a>cTaskARN</a> - The Amazon Resource Name (ARN) of the task.</li>
--   <li><a>cLastStatus</a> - The last known status of the container.</li>
--   <li><a>cReason</a> - A short (255 max characters) human-readable
--   string to provide additional detail about a running or stopped
--   container.</li>
--   <li><a>cName</a> - The name of the container.</li>
--   <li><a>cExitCode</a> - The exit code returned from the container.</li>
--   </ul>
container :: Container

-- | The network bindings associated with the container.
cNetworkBindings :: Lens' Container [NetworkBinding]

-- | The Amazon Resource Name (ARN) of the container.
cContainerARN :: Lens' Container (Maybe Text)

-- | The Amazon Resource Name (ARN) of the task.
cTaskARN :: Lens' Container (Maybe Text)

-- | The last known status of the container.
cLastStatus :: Lens' Container (Maybe Text)

-- | A short (255 max characters) human-readable string to provide
--   additional detail about a running or stopped container.
cReason :: Lens' Container (Maybe Text)

-- | The name of the container.
cName :: Lens' Container (Maybe Text)

-- | The exit code returned from the container.
cExitCode :: Lens' Container (Maybe Int)

-- | Container definitions are used in task definitions to describe the
--   different containers that are launched as part of a task.
--   
--   <i>See:</i> <a>containerDefinition</a> smart constructor.
data ContainerDefinition

-- | Creates a value of <a>ContainerDefinition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdImage</a> - 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 <tt><i>repository-url</i> /<i>image</i> :<i>tag</i> </tt> . Up to
--   255 letters (uppercase and lowercase), numbers, hyphens, underscores,
--   colons, periods, forward slashes, and number signs are allowed. This
--   parameter maps to <tt>Image</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>IMAGE</tt>
--   parameter of <a>docker run</a> . * Images in official repositories on
--   Docker Hub use a single name (for example, <tt>ubuntu</tt> or
--   <tt>mongo</tt> ). * Images in other repositories on Docker Hub are
--   qualified with an organization name (for example,
--   <tt>amazon/amazon-ecs-agent</tt> ). * Images in other online
--   repositories are qualified further by a domain name (for example,
--   <tt>quay.io<i>assemblyline</i>ubuntu</tt> ).</li>
--   <li><a>cdCommand</a> - The command that is passed to the container.
--   This parameter maps to <tt>Cmd</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>COMMAND</tt>
--   parameter to <a>docker run</a> . For more information, see
--   <a>https://docs.docker.com/engine/reference/builder/#cmd</a> .</li>
--   <li><a>cdHostname</a> - The hostname to use for your container. This
--   parameter maps to <tt>Hostname</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--hostname</tt>
--   option to <a>docker run</a> .</li>
--   <li><a>cdDockerSecurityOptions</a> - A list of strings to provide
--   custom labels for SELinux and AppArmor multi-level security systems.
--   This parameter maps to <tt>SecurityOpt</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--security-opt</tt> option to <a>docker run</a> .</li>
--   <li><a>cdDisableNetworking</a> - When this parameter is true,
--   networking is disabled within the container. This parameter maps to
--   <tt>NetworkDisabled</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> .</li>
--   <li><a>cdVolumesFrom</a> - Data volumes to mount from another
--   container. This parameter maps to <tt>VolumesFrom</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--volumes-from</tt> option to <a>docker run</a> .</li>
--   <li><a>cdEnvironment</a> - The environment variables to pass to a
--   container. This parameter maps to <tt>Env</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--env</tt> option to <a>docker run</a> . <i>Important:</i> We do
--   not recommend using plain text environment variables for sensitive
--   information, such as credential data.</li>
--   <li><a>cdEntryPoint</a> - <i>Important:</i> Early versions of the
--   Amazon ECS container agent do not properly handle <tt>entryPoint</tt>
--   parameters. If you have problems using <tt>entryPoint</tt> , update
--   your container agent or enter your commands and arguments as
--   <tt>command</tt> array items instead. The entry point that is passed
--   to the container. This parameter maps to <tt>Entrypoint</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--entrypoint</tt> option to <a>docker run</a> . For more
--   information, see
--   <a>https://docs.docker.com/engine/reference/builder/#entrypoint</a>
--   .</li>
--   <li><a>cdWorkingDirectory</a> - The working directory in which to run
--   commands inside the container. This parameter maps to
--   <tt>WorkingDir</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--workdir</tt> option to
--   <a>docker run</a> .</li>
--   <li><a>cdUlimits</a> - A list of <tt>ulimits</tt> to set in the
--   container. This parameter maps to <tt>Ulimits</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--ulimit</tt> option to <a>docker run</a> . Valid naming values
--   are displayed in the <a>Ulimit</a> 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: <tt>sudo docker version | grep "Server API version"</tt></li>
--   <li><a>cdPrivileged</a> - When this parameter is true, the container
--   is given elevated privileges on the host container instance (similar
--   to the <tt>root</tt> user). This parameter maps to <tt>Privileged</tt>
--   in the <a>Create a container</a> section of the <a>Docker Remote
--   API</a> and the <tt>--privileged</tt> option to <a>docker run</a>
--   .</li>
--   <li><a>cdPortMappings</a> - 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
--   <tt>PortBindings</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--publish</tt> option to
--   <a>docker run</a> . If the network mode of a task definition is set to
--   <tt>none</tt> , then you cannot specify port mappings. If the network
--   mode of a task definition is set to <tt>host</tt> , then host ports
--   must either be undefined or they must match the container port in the
--   port mapping.</li>
--   <li><a>cdDockerLabels</a> - A key<i>value map of labels to add to the
--   container. This parameter maps to <tt>Labels</tt> in the
--   &lt;https:</i><i>docs.docker.com</i>engine<i>reference</i>api<i>docker_remote_api_v1.23</i>#create-a-container
--   Create a container&gt; section of the <a>Docker Remote API</a> and the
--   <tt>--label</tt> option to <a>docker run</a> . 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: <tt>sudo docker version | grep "Server API version"</tt></li>
--   <li><a>cdExtraHosts</a> - A list of hostnames and IP address mappings
--   to append to the <tt><i>etc</i>hosts</tt> file on the container. This
--   parameter maps to <tt>ExtraHosts</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--add-host</tt>
--   option to <a>docker run</a> .</li>
--   <li><a>cdMemory</a> - The hard limit (in MiB) of memory to present to
--   the container. If your container attempts to exceed the memory
--   specified here, the container is killed. This parameter maps to
--   <tt>Memory</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--memory</tt> option to <a>docker
--   run</a> . You must specify a non-zero integer for one or both of
--   <tt>memory</tt> or <tt>memoryReservation</tt> in container
--   definitions. If you specify both, <tt>memory</tt> must be greater than
--   <tt>memoryReservation</tt> . If you specify <tt>memoryReservation</tt>
--   , then that value is subtracted from the available memory resources
--   for the container instance on which the container is placed;
--   otherwise, the value of <tt>memory</tt> is used. 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.</li>
--   <li><a>cdUser</a> - The user name to use inside the container. This
--   parameter maps to <tt>User</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--user</tt> option
--   to <a>docker run</a> .</li>
--   <li><a>cdDnsSearchDomains</a> - A list of DNS search domains that are
--   presented to the container. This parameter maps to <tt>DnsSearch</tt>
--   in the <a>Create a container</a> section of the <a>Docker Remote
--   API</a> and the <tt>--dns-search</tt> option to <a>docker run</a>
--   .</li>
--   <li><a>cdLogConfiguration</a> - The log configuration specification
--   for the container. This parameter maps to <tt>LogConfig</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--log-driver</tt> option to <a>docker run</a> . By default,
--   containers use the same logging driver that the Docker daemon uses;
--   however the container may use a different logging driver than the
--   Docker daemon by specifying a log driver with this parameter in the
--   container definition. To use a different logging driver for a
--   container, the log system must be configured properly on the container
--   instance (or on a different log server for remote logging options).
--   For more information on the options for different supported log
--   drivers, see <a>Configure logging drivers</a> in the Docker
--   documentation. 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: <tt>sudo docker version | grep
--   "Server API version"</tt></li>
--   <li><a>cdName</a> - The name of a container. If you are linking
--   multiple containers together in a task definition, the <tt>name</tt>
--   of one container can be entered in the <tt>links</tt> of another
--   container to connect the containers. Up to 255 letters (uppercase and
--   lowercase), numbers, hyphens, and underscores are allowed. This
--   parameter maps to <tt>name</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--name</tt> option
--   to <a>docker run</a> .</li>
--   <li><a>cdDnsServers</a> - A list of DNS servers that are presented to
--   the container. This parameter maps to <tt>Dns</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--dns</tt> option to <a>docker run</a> .</li>
--   <li><a>cdMountPoints</a> - The mount points for data volumes in your
--   container. This parameter maps to <tt>Volumes</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--volume</tt> option to <a>docker run</a> .</li>
--   <li><a>cdLinks</a> - The <tt>link</tt> parameter allows containers to
--   communicate with each other without the need for port mappings, using
--   the <tt>name</tt> parameter and optionally, an <tt>alias</tt> for the
--   link. This construct is analogous to <tt>name:alias</tt> in Docker
--   links. Up to 255 letters (uppercase and lowercase), numbers, hyphens,
--   and underscores are allowed for each <tt>name</tt> and <tt>alias</tt>
--   . For more information on linking Docker containers, see
--   <a>https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/</a>
--   . This parameter maps to <tt>Links</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--link</tt> option to <a>docker run</a> . <i>Important:</i>
--   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.</li>
--   <li><a>cdReadonlyRootFilesystem</a> - When this parameter is true, the
--   container is given read-only access to its root file system. This
--   parameter maps to <tt>ReadonlyRootfs</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--read-only</tt> option to <tt>docker run</tt> .</li>
--   <li><a>cdEssential</a> - If the <tt>essential</tt> parameter of a
--   container is marked as <tt>true</tt> , and that container fails or
--   stops for any reason, all other containers that are part of the task
--   are stopped. If the <tt>essential</tt> parameter of a container is
--   marked as <tt>false</tt> , 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. If you have an application that is composed of multiple
--   containers, you should group containers that are used for a common
--   purpose into components, and separate the different components into
--   multiple task definitions. For more information, see <a>Application
--   Architecture</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .</li>
--   <li><a>cdCpu</a> - The number of <tt>cpu</tt> units reserved for the
--   container. A container instance has 1,024 <tt>cpu</tt> 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 <tt>CpuShares</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--cpu-shares</tt> option to <a>docker run</a> . 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 <a>CPU share
--   constraint</a> 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: *
--   <b>Agent versions less than or equal to 1.1.0:</b> 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. * <b>Agent versions greater than or
--   equal to 1.2.0:</b> Null, zero, and CPU values of 1 are passed to
--   Docker as 2.</li>
--   <li><a>cdMemoryReservation</a> - The soft limit (in MiB) of memory to
--   reserve for the container. When system memory is under heavy
--   contention, Docker attempts to keep the container memory to this soft
--   limit; however, your container can consume more memory when it needs
--   to, up to either the hard limit specified with the <tt>memory</tt>
--   parameter (if applicable), or all of the available memory on the
--   container instance, whichever comes first. This parameter maps to
--   <tt>MemoryReservation</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--memory-reservation</tt>
--   option to <a>docker run</a> . You must specify a non-zero integer for
--   one or both of <tt>memory</tt> or <tt>memoryReservation</tt> in
--   container definitions. If you specify both, <tt>memory</tt> must be
--   greater than <tt>memoryReservation</tt> . If you specify
--   <tt>memoryReservation</tt> , then that value is subtracted from the
--   available memory resources for the container instance on which the
--   container is placed; otherwise, the value of <tt>memory</tt> is used.
--   For example, if your container normally uses 128 MiB of memory, but
--   occasionally bursts to 256 MiB of memory for short periods of time,
--   you can set a <tt>memoryReservation</tt> of 128 MiB, and a
--   <tt>memory</tt> hard limit of 300 MiB. This configuration would allow
--   the container to only reserve 128 MiB of memory from the remaining
--   resources on the container instance, but also allow the container to
--   consume more memory resources when needed.</li>
--   </ul>
containerDefinition :: ContainerDefinition

-- | 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
--   <tt><i>repository-url</i> /<i>image</i> :<i>tag</i> </tt> . Up to 255
--   letters (uppercase and lowercase), numbers, hyphens, underscores,
--   colons, periods, forward slashes, and number signs are allowed. This
--   parameter maps to <tt>Image</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>IMAGE</tt>
--   parameter of <a>docker run</a> . * Images in official repositories on
--   Docker Hub use a single name (for example, <tt>ubuntu</tt> or
--   <tt>mongo</tt> ). * Images in other repositories on Docker Hub are
--   qualified with an organization name (for example,
--   <tt>amazon/amazon-ecs-agent</tt> ). * Images in other online
--   repositories are qualified further by a domain name (for example,
--   <tt>quay.io<i>assemblyline</i>ubuntu</tt> ).
cdImage :: Lens' ContainerDefinition (Maybe Text)

-- | The command that is passed to the container. This parameter maps to
--   <tt>Cmd</tt> in the <a>Create a container</a> section of the <a>Docker
--   Remote API</a> and the <tt>COMMAND</tt> parameter to <a>docker run</a>
--   . For more information, see
--   <a>https://docs.docker.com/engine/reference/builder/#cmd</a> .
cdCommand :: Lens' ContainerDefinition [Text]

-- | The hostname to use for your container. This parameter maps to
--   <tt>Hostname</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--hostname</tt> option to
--   <a>docker run</a> .
cdHostname :: Lens' ContainerDefinition (Maybe Text)

-- | A list of strings to provide custom labels for SELinux and AppArmor
--   multi-level security systems. This parameter maps to
--   <tt>SecurityOpt</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--security-opt</tt> option to
--   <a>docker run</a> .
cdDockerSecurityOptions :: Lens' ContainerDefinition [Text]

-- | When this parameter is true, networking is disabled within the
--   container. This parameter maps to <tt>NetworkDisabled</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> .
cdDisableNetworking :: Lens' ContainerDefinition (Maybe Bool)

-- | Data volumes to mount from another container. This parameter maps to
--   <tt>VolumesFrom</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--volumes-from</tt> option to
--   <a>docker run</a> .
cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom]

-- | The environment variables to pass to a container. This parameter maps
--   to <tt>Env</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--env</tt> option to <a>docker
--   run</a> . <i>Important:</i> We do not recommend using plain text
--   environment variables for sensitive information, such as credential
--   data.
cdEnvironment :: Lens' ContainerDefinition [KeyValuePair]

-- | <i>Important:</i> Early versions of the Amazon ECS container agent do
--   not properly handle <tt>entryPoint</tt> parameters. If you have
--   problems using <tt>entryPoint</tt> , update your container agent or
--   enter your commands and arguments as <tt>command</tt> array items
--   instead. The entry point that is passed to the container. This
--   parameter maps to <tt>Entrypoint</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--entrypoint</tt>
--   option to <a>docker run</a> . For more information, see
--   <a>https://docs.docker.com/engine/reference/builder/#entrypoint</a> .
cdEntryPoint :: Lens' ContainerDefinition [Text]

-- | The working directory in which to run commands inside the container.
--   This parameter maps to <tt>WorkingDir</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--workdir</tt> option to <a>docker run</a> .
cdWorkingDirectory :: Lens' ContainerDefinition (Maybe Text)

-- | A list of <tt>ulimits</tt> to set in the container. This parameter
--   maps to <tt>Ulimits</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--ulimit</tt> option to
--   <a>docker run</a> . Valid naming values are displayed in the
--   <a>Ulimit</a> 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: <tt>sudo docker
--   version | grep "Server API version"</tt>
cdUlimits :: Lens' ContainerDefinition [Ulimit]

-- | When this parameter is true, the container is given elevated
--   privileges on the host container instance (similar to the
--   <tt>root</tt> user). This parameter maps to <tt>Privileged</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--privileged</tt> option to <a>docker run</a> .
cdPrivileged :: Lens' ContainerDefinition (Maybe Bool)

-- | 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 <tt>PortBindings</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--publish</tt> option to <a>docker run</a> . If the network
--   mode of a task definition is set to <tt>none</tt> , then you cannot
--   specify port mappings. If the network mode of a task definition is set
--   to <tt>host</tt> , then host ports must either be undefined or they
--   must match the container port in the port mapping.
cdPortMappings :: Lens' ContainerDefinition [PortMapping]

-- | A key<i>value map of labels to add to the container. This parameter
--   maps to <tt>Labels</tt> in the
--   &lt;https:</i><i>docs.docker.com</i>engine<i>reference</i>api<i>docker_remote_api_v1.23</i>#create-a-container
--   Create a container&gt; section of the <a>Docker Remote API</a> and the
--   <tt>--label</tt> option to <a>docker run</a> . 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: <tt>sudo docker version | grep "Server API version"</tt>
cdDockerLabels :: Lens' ContainerDefinition (HashMap Text Text)

-- | A list of hostnames and IP address mappings to append to the
--   <tt><i>etc</i>hosts</tt> file on the container. This parameter maps to
--   <tt>ExtraHosts</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--add-host</tt> option to
--   <a>docker run</a> .
cdExtraHosts :: Lens' ContainerDefinition [HostEntry]

-- | The hard limit (in MiB) of memory to present to the container. If your
--   container attempts to exceed the memory specified here, the container
--   is killed. This parameter maps to <tt>Memory</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--memory</tt> option to <a>docker run</a> . You must specify a
--   non-zero integer for one or both of <tt>memory</tt> or
--   <tt>memoryReservation</tt> in container definitions. If you specify
--   both, <tt>memory</tt> must be greater than <tt>memoryReservation</tt>
--   . If you specify <tt>memoryReservation</tt> , then that value is
--   subtracted from the available memory resources for the container
--   instance on which the container is placed; otherwise, the value of
--   <tt>memory</tt> is used. 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.
cdMemory :: Lens' ContainerDefinition (Maybe Int)

-- | The user name to use inside the container. This parameter maps to
--   <tt>User</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--user</tt> option to <a>docker
--   run</a> .
cdUser :: Lens' ContainerDefinition (Maybe Text)

-- | A list of DNS search domains that are presented to the container. This
--   parameter maps to <tt>DnsSearch</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--dns-search</tt>
--   option to <a>docker run</a> .
cdDnsSearchDomains :: Lens' ContainerDefinition [Text]

-- | The log configuration specification for the container. This parameter
--   maps to <tt>LogConfig</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--log-driver</tt> option to
--   <a>docker run</a> . By default, containers use the same logging driver
--   that the Docker daemon uses; however the container may use a different
--   logging driver than the Docker daemon by specifying a log driver with
--   this parameter in the container definition. To use a different logging
--   driver for a container, the log system must be configured properly on
--   the container instance (or on a different log server for remote
--   logging options). For more information on the options for different
--   supported log drivers, see <a>Configure logging drivers</a> in the
--   Docker documentation. 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: <tt>sudo docker
--   version | grep "Server API version"</tt>
cdLogConfiguration :: Lens' ContainerDefinition (Maybe LogConfiguration)

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

-- | A list of DNS servers that are presented to the container. This
--   parameter maps to <tt>Dns</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--dns</tt> option
--   to <a>docker run</a> .
cdDnsServers :: Lens' ContainerDefinition [Text]

-- | The mount points for data volumes in your container. This parameter
--   maps to <tt>Volumes</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--volume</tt> option to
--   <a>docker run</a> .
cdMountPoints :: Lens' ContainerDefinition [MountPoint]

-- | The <tt>link</tt> parameter allows containers to communicate with each
--   other without the need for port mappings, using the <tt>name</tt>
--   parameter and optionally, an <tt>alias</tt> for the link. This
--   construct is analogous to <tt>name:alias</tt> in Docker links. Up to
--   255 letters (uppercase and lowercase), numbers, hyphens, and
--   underscores are allowed for each <tt>name</tt> and <tt>alias</tt> .
--   For more information on linking Docker containers, see
--   <a>https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/</a>
--   . This parameter maps to <tt>Links</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--link</tt> option to <a>docker run</a> . <i>Important:</i>
--   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.
cdLinks :: Lens' ContainerDefinition [Text]

-- | When this parameter is true, the container is given read-only access
--   to its root file system. This parameter maps to
--   <tt>ReadonlyRootfs</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--read-only</tt> option to
--   <tt>docker run</tt> .
cdReadonlyRootFilesystem :: Lens' ContainerDefinition (Maybe Bool)

-- | If the <tt>essential</tt> parameter of a container is marked as
--   <tt>true</tt> , and that container fails or stops for any reason, all
--   other containers that are part of the task are stopped. If the
--   <tt>essential</tt> parameter of a container is marked as
--   <tt>false</tt> , 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. If you have an application that is composed of multiple
--   containers, you should group containers that are used for a common
--   purpose into components, and separate the different components into
--   multiple task definitions. For more information, see <a>Application
--   Architecture</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .
cdEssential :: Lens' ContainerDefinition (Maybe Bool)

-- | The number of <tt>cpu</tt> units reserved for the container. A
--   container instance has 1,024 <tt>cpu</tt> 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 <tt>CpuShares</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--cpu-shares</tt> option to <a>docker run</a> . 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 <a>CPU share
--   constraint</a> 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: *
--   <b>Agent versions less than or equal to 1.1.0:</b> 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. * <b>Agent versions greater than or
--   equal to 1.2.0:</b> Null, zero, and CPU values of 1 are passed to
--   Docker as 2.
cdCpu :: Lens' ContainerDefinition (Maybe Int)

-- | The soft limit (in MiB) of memory to reserve for the container. When
--   system memory is under heavy contention, Docker attempts to keep the
--   container memory to this soft limit; however, your container can
--   consume more memory when it needs to, up to either the hard limit
--   specified with the <tt>memory</tt> parameter (if applicable), or all
--   of the available memory on the container instance, whichever comes
--   first. This parameter maps to <tt>MemoryReservation</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--memory-reservation</tt> option to <a>docker run</a> . You
--   must specify a non-zero integer for one or both of <tt>memory</tt> or
--   <tt>memoryReservation</tt> in container definitions. If you specify
--   both, <tt>memory</tt> must be greater than <tt>memoryReservation</tt>
--   . If you specify <tt>memoryReservation</tt> , then that value is
--   subtracted from the available memory resources for the container
--   instance on which the container is placed; otherwise, the value of
--   <tt>memory</tt> is used. For example, if your container normally uses
--   128 MiB of memory, but occasionally bursts to 256 MiB of memory for
--   short periods of time, you can set a <tt>memoryReservation</tt> of 128
--   MiB, and a <tt>memory</tt> hard limit of 300 MiB. This configuration
--   would allow the container to only reserve 128 MiB of memory from the
--   remaining resources on the container instance, but also allow the
--   container to consume more memory resources when needed.
cdMemoryReservation :: Lens' ContainerDefinition (Maybe Int)

-- | An EC2 instance that is running the Amazon ECS agent and has been
--   registered with a cluster.
--   
--   <i>See:</i> <a>containerInstance</a> smart constructor.
data ContainerInstance

-- | Creates a value of <a>ContainerInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciStatus</a> - The status of the container instance. The valid
--   values are <tt>ACTIVE</tt> or <tt>INACTIVE</tt> . <tt>ACTIVE</tt>
--   indicates that the container instance can accept tasks.</li>
--   <li><a>ciRunningTasksCount</a> - The number of tasks on the container
--   instance that are in the <tt>RUNNING</tt> status.</li>
--   <li><a>ciRemainingResources</a> - For most resource types, this
--   parameter describes the remaining resources of the container instance
--   that are available for new tasks. For port resource types, this
--   parameter describes the ports that are reserved by the Amazon ECS
--   container agent and any containers that have reserved port mappings;
--   any port that is not specified here is available for new tasks.</li>
--   <li><a>ciEc2InstanceId</a> - The EC2 instance ID of the container
--   instance.</li>
--   <li><a>ciContainerInstanceARN</a> - The Amazon Resource Name (ARN) of
--   the container instance. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the container instance, the AWS
--   account ID of the container instance owner, the
--   <tt>container-instance</tt> namespace, and then the container instance
--   ID. For example, <tt>arn:aws:ecs:<i>region</i> :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .</li>
--   <li><a>ciAgentConnected</a> - This parameter returns <tt>true</tt> if
--   the agent is actually connected to Amazon ECS. Registered instances
--   with an agent that may be unhealthy or stopped return <tt>false</tt> ,
--   and instances without a connected agent cannot accept placement
--   requests.</li>
--   <li><a>ciVersionInfo</a> - The version information for the Amazon ECS
--   container agent and Docker daemon running on the container
--   instance.</li>
--   <li><a>ciAgentUpdateStatus</a> - The status of the most recent agent
--   update. If an update has never been requested, this value is
--   <tt>NULL</tt> .</li>
--   <li><a>ciAttributes</a> - The attributes set for the container
--   instance by the Amazon ECS container agent at instance
--   registration.</li>
--   <li><a>ciVersion</a> - The version counter for the container instance.
--   Every time a container instance experiences a change that triggers a
--   CloudWatch event, the version counter is incremented. If you are
--   replicating your Amazon ECS container instance state with CloudWatch
--   events, you can compare the version of a container instance reported
--   by the Amazon ECS APIs with the version reported in CloudWatch events
--   for the container instance (inside the <tt>detail</tt> object) to
--   verify that the version in your event stream is current.</li>
--   <li><a>ciPendingTasksCount</a> - The number of tasks on the container
--   instance that are in the <tt>PENDING</tt> status.</li>
--   <li><a>ciRegisteredResources</a> - For most resource types, this
--   parameter describes the registered resources on the container instance
--   that are in use by current tasks. For port resource types, this
--   parameter describes the ports that were reserved by the Amazon ECS
--   container agent when it registered the container instance with Amazon
--   ECS.</li>
--   </ul>
containerInstance :: ContainerInstance

-- | The status of the container instance. The valid values are
--   <tt>ACTIVE</tt> or <tt>INACTIVE</tt> . <tt>ACTIVE</tt> indicates that
--   the container instance can accept tasks.
ciStatus :: Lens' ContainerInstance (Maybe Text)

-- | The number of tasks on the container instance that are in the
--   <tt>RUNNING</tt> status.
ciRunningTasksCount :: Lens' ContainerInstance (Maybe Int)

-- | For most resource types, this parameter describes the remaining
--   resources of the container instance that are available for new tasks.
--   For port resource types, this parameter describes the ports that are
--   reserved by the Amazon ECS container agent and any containers that
--   have reserved port mappings; any port that is not specified here is
--   available for new tasks.
ciRemainingResources :: Lens' ContainerInstance [Resource]

-- | The EC2 instance ID of the container instance.
ciEc2InstanceId :: Lens' ContainerInstance (Maybe Text)

-- | The Amazon Resource Name (ARN) of the container instance. The ARN
--   contains the <tt>arn:aws:ecs</tt> namespace, followed by the region of
--   the container instance, the AWS account ID of the container instance
--   owner, the <tt>container-instance</tt> namespace, and then the
--   container instance ID. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .
ciContainerInstanceARN :: Lens' ContainerInstance (Maybe Text)

-- | This parameter returns <tt>true</tt> if the agent is actually
--   connected to Amazon ECS. Registered instances with an agent that may
--   be unhealthy or stopped return <tt>false</tt> , and instances without
--   a connected agent cannot accept placement requests.
ciAgentConnected :: Lens' ContainerInstance (Maybe Bool)

-- | The version information for the Amazon ECS container agent and Docker
--   daemon running on the container instance.
ciVersionInfo :: Lens' ContainerInstance (Maybe VersionInfo)

-- | The status of the most recent agent update. If an update has never
--   been requested, this value is <tt>NULL</tt> .
ciAgentUpdateStatus :: Lens' ContainerInstance (Maybe AgentUpdateStatus)

-- | The attributes set for the container instance by the Amazon ECS
--   container agent at instance registration.
ciAttributes :: Lens' ContainerInstance [Attribute]

-- | The version counter for the container instance. Every time a container
--   instance experiences a change that triggers a CloudWatch event, the
--   version counter is incremented. If you are replicating your Amazon ECS
--   container instance state with CloudWatch events, you can compare the
--   version of a container instance reported by the Amazon ECS APIs with
--   the version reported in CloudWatch events for the container instance
--   (inside the <tt>detail</tt> object) to verify that the version in your
--   event stream is current.
ciVersion :: Lens' ContainerInstance (Maybe Integer)

-- | The number of tasks on the container instance that are in the
--   <tt>PENDING</tt> status.
ciPendingTasksCount :: Lens' ContainerInstance (Maybe Int)

-- | For most resource types, this parameter describes the registered
--   resources on the container instance that are in use by current tasks.
--   For port resource types, this parameter describes the ports that were
--   reserved by the Amazon ECS container agent when it registered the
--   container instance with Amazon ECS.
ciRegisteredResources :: Lens' ContainerInstance [Resource]

-- | The overrides that should be sent to a container.
--   
--   <i>See:</i> <a>containerOverride</a> smart constructor.
data ContainerOverride

-- | Creates a value of <a>ContainerOverride</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coCommand</a> - The command to send to the container that
--   overrides the default command from the Docker image or the task
--   definition.</li>
--   <li><a>coEnvironment</a> - 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.</li>
--   <li><a>coName</a> - The name of the container that receives the
--   override.</li>
--   </ul>
containerOverride :: ContainerOverride

-- | The command to send to the container that overrides the default
--   command from the Docker image or the task definition.
coCommand :: Lens' ContainerOverride [Text]

-- | 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.
coEnvironment :: Lens' ContainerOverride [KeyValuePair]

-- | The name of the container that receives the override.
coName :: Lens' ContainerOverride (Maybe Text)

-- | Details on a service within a cluster
--   
--   <i>See:</i> <a>containerService</a> smart constructor.
data ContainerService

-- | Creates a value of <a>ContainerService</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csRunningCount</a> - The number of tasks in the cluster that
--   are in the <tt>RUNNING</tt> state.</li>
--   <li><a>csStatus</a> - The status of the service. The valid values are
--   <tt>ACTIVE</tt> , <tt>DRAINING</tt> , or <tt>INACTIVE</tt> .</li>
--   <li><a>csClusterARN</a> - The Amazon Resource Name (ARN) of the
--   cluster that hosts the service.</li>
--   <li><a>csCreatedAt</a> - The Unix timestamp for when the service was
--   created.</li>
--   <li><a>csDesiredCount</a> - 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 <tt>CreateService</tt> ,
--   and it can be modified with <tt>UpdateService</tt> .</li>
--   <li><a>csLoadBalancers</a> - A list of Elastic Load Balancing 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.</li>
--   <li><a>csPendingCount</a> - The number of tasks in the cluster that
--   are in the <tt>PENDING</tt> state.</li>
--   <li><a>csEvents</a> - The event stream for your service. A maximum of
--   100 of the latest events are displayed.</li>
--   <li><a>csDeployments</a> - The current state of deployments for the
--   service.</li>
--   <li><a>csServiceName</a> - 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.</li>
--   <li><a>csServiceARN</a> - The Amazon Resource Name (ARN) that
--   identifies the service. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the service, the AWS account ID
--   of the service owner, the <tt>service</tt> namespace, and then the
--   service name. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>012345678910</i> :service/<i>my-service</i> </tt> .</li>
--   <li><a>csTaskDefinition</a> - The task definition to use for tasks in
--   the service. This value is specified when the service is created with
--   <tt>CreateService</tt> , and it can be modified with
--   <tt>UpdateService</tt> .</li>
--   <li><a>csRoleARN</a> - 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 an Elastic Load Balancing load
--   balancer.</li>
--   <li><a>csDeploymentConfiguration</a> - Optional deployment parameters
--   that control how many tasks run during the deployment and the ordering
--   of stopping and starting tasks.</li>
--   </ul>
containerService :: ContainerService

-- | The number of tasks in the cluster that are in the <tt>RUNNING</tt>
--   state.
csRunningCount :: Lens' ContainerService (Maybe Int)

-- | The status of the service. The valid values are <tt>ACTIVE</tt> ,
--   <tt>DRAINING</tt> , or <tt>INACTIVE</tt> .
csStatus :: Lens' ContainerService (Maybe Text)

-- | The Amazon Resource Name (ARN) of the cluster that hosts the service.
csClusterARN :: Lens' ContainerService (Maybe Text)

-- | The Unix timestamp for when the service was created.
csCreatedAt :: Lens' ContainerService (Maybe UTCTime)

-- | 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 <tt>CreateService</tt> , and it can be modified with
--   <tt>UpdateService</tt> .
csDesiredCount :: Lens' ContainerService (Maybe Int)

-- | A list of Elastic Load Balancing 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.
csLoadBalancers :: Lens' ContainerService [LoadBalancer]

-- | The number of tasks in the cluster that are in the <tt>PENDING</tt>
--   state.
csPendingCount :: Lens' ContainerService (Maybe Int)

-- | The event stream for your service. A maximum of 100 of the latest
--   events are displayed.
csEvents :: Lens' ContainerService [ServiceEvent]

-- | The current state of deployments for the service.
csDeployments :: Lens' ContainerService [Deployment]

-- | 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.
csServiceName :: Lens' ContainerService (Maybe Text)

-- | The Amazon Resource Name (ARN) that identifies the service. The ARN
--   contains the <tt>arn:aws:ecs</tt> namespace, followed by the region of
--   the service, the AWS account ID of the service owner, the
--   <tt>service</tt> namespace, and then the service name. For example,
--   <tt>arn:aws:ecs:<i>region</i> :<i>012345678910</i>
--   :service/<i>my-service</i> </tt> .
csServiceARN :: Lens' ContainerService (Maybe Text)

-- | The task definition to use for tasks in the service. This value is
--   specified when the service is created with <tt>CreateService</tt> ,
--   and it can be modified with <tt>UpdateService</tt> .
csTaskDefinition :: Lens' ContainerService (Maybe Text)

-- | 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 an Elastic Load Balancing load balancer.
csRoleARN :: Lens' ContainerService (Maybe Text)

-- | Optional deployment parameters that control how many tasks run during
--   the deployment and the ordering of stopping and starting tasks.
csDeploymentConfiguration :: Lens' ContainerService (Maybe DeploymentConfiguration)

-- | The details of an Amazon ECS service deployment.
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dRunningCount</a> - The number of tasks in the deployment that
--   are in the <tt>RUNNING</tt> status.</li>
--   <li><a>dStatus</a> - The status of the deployment. Valid values are
--   <tt>PRIMARY</tt> (for the most recent deployment), <tt>ACTIVE</tt>
--   (for previous deployments that still have tasks running, but are being
--   replaced with the <tt>PRIMARY</tt> deployment), and <tt>INACTIVE</tt>
--   (for deployments that have been completely replaced).</li>
--   <li><a>dCreatedAt</a> - The Unix timestamp for when the service was
--   created.</li>
--   <li><a>dDesiredCount</a> - The most recent desired count of tasks that
--   was specified for the service to deploy or maintain.</li>
--   <li><a>dPendingCount</a> - The number of tasks in the deployment that
--   are in the <tt>PENDING</tt> status.</li>
--   <li><a>dId</a> - The ID of the deployment.</li>
--   <li><a>dUpdatedAt</a> - The Unix timestamp for when the service was
--   last updated.</li>
--   <li><a>dTaskDefinition</a> - The most recent task definition that was
--   specified for the service to use.</li>
--   </ul>
deployment :: Deployment

-- | The number of tasks in the deployment that are in the <tt>RUNNING</tt>
--   status.
dRunningCount :: Lens' Deployment (Maybe Int)

-- | The status of the deployment. Valid values are <tt>PRIMARY</tt> (for
--   the most recent deployment), <tt>ACTIVE</tt> (for previous deployments
--   that still have tasks running, but are being replaced with the
--   <tt>PRIMARY</tt> deployment), and <tt>INACTIVE</tt> (for deployments
--   that have been completely replaced).
dStatus :: Lens' Deployment (Maybe Text)

-- | The Unix timestamp for when the service was created.
dCreatedAt :: Lens' Deployment (Maybe UTCTime)

-- | The most recent desired count of tasks that was specified for the
--   service to deploy or maintain.
dDesiredCount :: Lens' Deployment (Maybe Int)

-- | The number of tasks in the deployment that are in the <tt>PENDING</tt>
--   status.
dPendingCount :: Lens' Deployment (Maybe Int)

-- | The ID of the deployment.
dId :: Lens' Deployment (Maybe Text)

-- | The Unix timestamp for when the service was last updated.
dUpdatedAt :: Lens' Deployment (Maybe UTCTime)

-- | The most recent task definition that was specified for the service to
--   use.
dTaskDefinition :: Lens' Deployment (Maybe Text)

-- | Optional deployment parameters that control how many tasks run during
--   the deployment and the ordering of stopping and starting tasks.
--   
--   <i>See:</i> <a>deploymentConfiguration</a> smart constructor.
data DeploymentConfiguration

-- | Creates a value of <a>DeploymentConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcMinimumHealthyPercent</a> - The lower limit (as a percentage
--   of the service's <tt>desiredCount</tt> ) of the number of running
--   tasks that must remain in the <tt>RUNNING</tt> state in a service
--   during a deployment. The minimum healthy tasks during a deployment is
--   the <tt>desiredCount</tt> multiplied by the
--   <tt>minimumHealthyPercent</tt> /100, rounded up to the nearest integer
--   value.</li>
--   <li><a>dcMaximumPercent</a> - The upper limit (as a percentage of the
--   service's <tt>desiredCount</tt> ) of the number of tasks that are
--   allowed in the <tt>RUNNING</tt> or <tt>PENDING</tt> state in a service
--   during a deployment. The maximum number of tasks during a deployment
--   is the <tt>desiredCount</tt> multiplied by the <tt>maximumPercent</tt>
--   /100, rounded down to the nearest integer value.</li>
--   </ul>
deploymentConfiguration :: DeploymentConfiguration

-- | The lower limit (as a percentage of the service's
--   <tt>desiredCount</tt> ) of the number of running tasks that must
--   remain in the <tt>RUNNING</tt> state in a service during a deployment.
--   The minimum healthy tasks during a deployment is the
--   <tt>desiredCount</tt> multiplied by the <tt>minimumHealthyPercent</tt>
--   /100, rounded up to the nearest integer value.
dcMinimumHealthyPercent :: Lens' DeploymentConfiguration (Maybe Int)

-- | The upper limit (as a percentage of the service's
--   <tt>desiredCount</tt> ) of the number of tasks that are allowed in the
--   <tt>RUNNING</tt> or <tt>PENDING</tt> state in a service during a
--   deployment. The maximum number of tasks during a deployment is the
--   <tt>desiredCount</tt> multiplied by the <tt>maximumPercent</tt> /100,
--   rounded down to the nearest integer value.
dcMaximumPercent :: Lens' DeploymentConfiguration (Maybe Int)

-- | A failed resource.
--   
--   <i>See:</i> <a>failure</a> smart constructor.
data Failure

-- | Creates a value of <a>Failure</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fArn</a> - The Amazon Resource Name (ARN) of the failed
--   resource.</li>
--   <li><a>fReason</a> - The reason for the failure.</li>
--   </ul>
failure :: Failure

-- | The Amazon Resource Name (ARN) of the failed resource.
fArn :: Lens' Failure (Maybe Text)

-- | The reason for the failure.
fReason :: Lens' Failure (Maybe Text)

-- | Hostnames and IP address entries that are added to the
--   <tt><i>etc</i>hosts</tt> file of a container via the
--   <tt>extraHosts</tt> parameter of its <a>ContainerDefinition</a> .
--   
--   <i>See:</i> <a>hostEntry</a> smart constructor.
data HostEntry

-- | Creates a value of <a>HostEntry</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>heHostname</a> - The hostname to use in the
--   <tt><i>etc</i>hosts</tt> entry.</li>
--   <li><a>heIpAddress</a> - The IP address to use in the
--   <tt><i>etc</i>hosts</tt> entry.</li>
--   </ul>
hostEntry :: Text -> Text -> HostEntry

-- | The hostname to use in the <tt><i>etc</i>hosts</tt> entry.
heHostname :: Lens' HostEntry Text

-- | The IP address to use in the <tt><i>etc</i>hosts</tt> entry.
heIpAddress :: Lens' HostEntry Text

-- | Details on a container instance host volume.
--   
--   <i>See:</i> <a>hostVolumeProperties</a> smart constructor.
data HostVolumeProperties

-- | Creates a value of <a>HostVolumeProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hvpSourcePath</a> - 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
--   <tt>host</tt> parameter contains a <tt>sourcePath</tt> file location,
--   then the data volume persists at the specified location on the host
--   container instance until you delete it manually. If the
--   <tt>sourcePath</tt> 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.</li>
--   </ul>
hostVolumeProperties :: HostVolumeProperties

-- | 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 <tt>host</tt> parameter contains
--   a <tt>sourcePath</tt> file location, then the data volume persists at
--   the specified location on the host container instance until you delete
--   it manually. If the <tt>sourcePath</tt> 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.
hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text)

-- | A key and value pair object.
--   
--   <i>See:</i> <a>keyValuePair</a> smart constructor.
data KeyValuePair

-- | Creates a value of <a>KeyValuePair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kvpValue</a> - The value of the key value pair. For environment
--   variables, this is the value of the environment variable.</li>
--   <li><a>kvpName</a> - The name of the key value pair. For environment
--   variables, this is the name of the environment variable.</li>
--   </ul>
keyValuePair :: KeyValuePair

-- | The value of the key value pair. For environment variables, this is
--   the value of the environment variable.
kvpValue :: Lens' KeyValuePair (Maybe Text)

-- | The name of the key value pair. For environment variables, this is the
--   name of the environment variable.
kvpName :: Lens' KeyValuePair (Maybe Text)

-- | Details on a load balancer that is used with a service.
--   
--   <i>See:</i> <a>loadBalancer</a> smart constructor.
data LoadBalancer

-- | Creates a value of <a>LoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>lbContainerName</a> - The name of the container (as it appears
--   in a container definition) to associate with the load balancer.</li>
--   <li><a>lbTargetGroupARN</a> - The full Amazon Resource Name (ARN) of
--   the Elastic Load Balancing target group associated with a
--   service.</li>
--   <li><a>lbContainerPort</a> - The port on the container to associate
--   with the load balancer. This port must correspond to a
--   <tt>containerPort</tt> in the service's task definition. Your
--   container instances must allow ingress traffic on the
--   <tt>hostPort</tt> of the port mapping.</li>
--   </ul>
loadBalancer :: LoadBalancer

-- | The name of the load balancer.
lbLoadBalancerName :: Lens' LoadBalancer (Maybe Text)

-- | The name of the container (as it appears in a container definition) to
--   associate with the load balancer.
lbContainerName :: Lens' LoadBalancer (Maybe Text)

-- | The full Amazon Resource Name (ARN) of the Elastic Load Balancing
--   target group associated with a service.
lbTargetGroupARN :: Lens' LoadBalancer (Maybe Text)

-- | The port on the container to associate with the load balancer. This
--   port must correspond to a <tt>containerPort</tt> in the service's task
--   definition. Your container instances must allow ingress traffic on the
--   <tt>hostPort</tt> of the port mapping.
lbContainerPort :: Lens' LoadBalancer (Maybe Int)

-- | Log configuration options to send to a custom log driver for the
--   container.
--   
--   <i>See:</i> <a>logConfiguration</a> smart constructor.
data LogConfiguration

-- | Creates a value of <a>LogConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcOptions</a> - 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: <tt>sudo docker version | grep "Server
--   API version"</tt></li>
--   <li><a>lcLogDriver</a> - The log driver to use for the container. The
--   valid values listed for this parameter are log drivers that the Amazon
--   ECS container agent can communicate with by default. 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: <tt>sudo docker version | grep "Server API
--   version"</tt></li>
--   </ul>
logConfiguration :: LogDriver -> LogConfiguration

-- | 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: <tt>sudo docker version | grep "Server API
--   version"</tt>
lcOptions :: Lens' LogConfiguration (HashMap Text Text)

-- | The log driver to use for the container. The valid values listed for
--   this parameter are log drivers that the Amazon ECS container agent can
--   communicate with by default. 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: <tt>sudo docker
--   version | grep "Server API version"</tt>
lcLogDriver :: Lens' LogConfiguration LogDriver

-- | Details on a volume mount point that is used in a container
--   definition.
--   
--   <i>See:</i> <a>mountPoint</a> smart constructor.
data MountPoint

-- | Creates a value of <a>MountPoint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpContainerPath</a> - The path on the container to mount the
--   host volume at.</li>
--   <li><a>mpSourceVolume</a> - The name of the volume to mount.</li>
--   <li><a>mpReadOnly</a> - If this value is <tt>true</tt> , the container
--   has read-only access to the volume. If this value is <tt>false</tt> ,
--   then the container can write to the volume. The default value is
--   <tt>false</tt> .</li>
--   </ul>
mountPoint :: MountPoint

-- | The path on the container to mount the host volume at.
mpContainerPath :: Lens' MountPoint (Maybe Text)

-- | The name of the volume to mount.
mpSourceVolume :: Lens' MountPoint (Maybe Text)

-- | If this value is <tt>true</tt> , the container has read-only access to
--   the volume. If this value is <tt>false</tt> , then the container can
--   write to the volume. The default value is <tt>false</tt> .
mpReadOnly :: Lens' MountPoint (Maybe Bool)

-- | Details on the network bindings between a container and its host
--   container instance. After a task reaches the <tt>RUNNING</tt> status,
--   manual and automatic host and container port assignments are visible
--   in the <tt>networkBindings</tt> section of <tt>DescribeTasks</tt> API
--   responses.
--   
--   <i>See:</i> <a>networkBinding</a> smart constructor.
data NetworkBinding

-- | Creates a value of <a>NetworkBinding</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nbBindIP</a> - The IP address that the container is bound to on
--   the container instance.</li>
--   <li><a>nbProtocol</a> - The protocol used for the network
--   binding.</li>
--   <li><a>nbHostPort</a> - The port number on the host that is used with
--   the network binding.</li>
--   <li><a>nbContainerPort</a> - The port number on the container that is
--   be used with the network binding.</li>
--   </ul>
networkBinding :: NetworkBinding

-- | The IP address that the container is bound to on the container
--   instance.
nbBindIP :: Lens' NetworkBinding (Maybe Text)

-- | The protocol used for the network binding.
nbProtocol :: Lens' NetworkBinding (Maybe TransportProtocol)

-- | The port number on the host that is used with the network binding.
nbHostPort :: Lens' NetworkBinding (Maybe Int)

-- | The port number on the container that is be used with the network
--   binding.
nbContainerPort :: Lens' NetworkBinding (Maybe Int)

-- | 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
--   <tt>RUNNING</tt> status, manual and automatic host and container port
--   assignments are visible in the <tt>networkBindings</tt> section of
--   <tt>DescribeTasks</tt> API responses.
--   
--   <i>See:</i> <a>portMapping</a> smart constructor.
data PortMapping

-- | Creates a value of <a>PortMapping</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmProtocol</a> - The protocol used for the port mapping. Valid
--   values are <tt>tcp</tt> and <tt>udp</tt> . The default is <tt>tcp</tt>
--   .</li>
--   <li><a>pmHostPort</a> - 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 <tt>hostPort</tt>
--   (or set it to <tt>0</tt> ) while specifying a <tt>containerPort</tt>
--   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
--   <tt><i>proc</i>sys<i>net</i>ipv4/ip_local_port_range</tt> ; 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 ports 51678 and 51679. 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
--   <tt>remainingResources</tt> of <tt>DescribeContainerInstances</tt>
--   output, and a container instance may have up to 100 reserved ports at
--   a time, including the default reserved ports (automatically assigned
--   ports do not count toward the 100 reserved ports limit).</li>
--   <li><a>pmContainerPort</a> - 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 <tt>hostPort</tt> ). Port mappings that are
--   automatically assigned in this way do not count toward the 100
--   reserved ports limit of a container instance.</li>
--   </ul>
portMapping :: PortMapping

-- | The protocol used for the port mapping. Valid values are <tt>tcp</tt>
--   and <tt>udp</tt> . The default is <tt>tcp</tt> .
pmProtocol :: Lens' PortMapping (Maybe TransportProtocol)

-- | 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 <tt>hostPort</tt> (or set it to
--   <tt>0</tt> ) while specifying a <tt>containerPort</tt> 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
--   <tt><i>proc</i>sys<i>net</i>ipv4/ip_local_port_range</tt> ; 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 ports 51678 and 51679. 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
--   <tt>remainingResources</tt> of <tt>DescribeContainerInstances</tt>
--   output, and a container instance may have up to 100 reserved ports at
--   a time, including the default reserved ports (automatically assigned
--   ports do not count toward the 100 reserved ports limit).
pmHostPort :: Lens' PortMapping (Maybe Int)

-- | 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
--   <tt>hostPort</tt> ). Port mappings that are automatically assigned in
--   this way do not count toward the 100 reserved ports limit of a
--   container instance.
pmContainerPort :: Lens' PortMapping (Maybe Int)

-- | Describes the resources available for a container instance.
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rStringSetValue</a> - When the <tt>stringSetValue</tt> type is
--   set, the value of the resource must be a string type.</li>
--   <li><a>rIntegerValue</a> - When the <tt>integerValue</tt> type is set,
--   the value of the resource must be an integer.</li>
--   <li><a>rDoubleValue</a> - When the <tt>doubleValue</tt> type is set,
--   the value of the resource must be a double precision floating-point
--   type.</li>
--   <li><a>rLongValue</a> - When the <tt>longValue</tt> type is set, the
--   value of the resource must be an extended precision floating-point
--   type.</li>
--   <li><a>rName</a> - The name of the resource, such as <tt>CPU</tt> ,
--   <tt>MEMORY</tt> , <tt>PORTS</tt> , or a user-defined resource.</li>
--   <li><a>rType</a> - The type of the resource, such as <tt>INTEGER</tt>
--   , <tt>DOUBLE</tt> , <tt>LONG</tt> , or <tt>STRINGSET</tt> .</li>
--   </ul>
resource :: Resource

-- | When the <tt>stringSetValue</tt> type is set, the value of the
--   resource must be a string type.
rStringSetValue :: Lens' Resource [Text]

-- | When the <tt>integerValue</tt> type is set, the value of the resource
--   must be an integer.
rIntegerValue :: Lens' Resource (Maybe Int)

-- | When the <tt>doubleValue</tt> type is set, the value of the resource
--   must be a double precision floating-point type.
rDoubleValue :: Lens' Resource (Maybe Double)

-- | When the <tt>longValue</tt> type is set, the value of the resource
--   must be an extended precision floating-point type.
rLongValue :: Lens' Resource (Maybe Integer)

-- | The name of the resource, such as <tt>CPU</tt> , <tt>MEMORY</tt> ,
--   <tt>PORTS</tt> , or a user-defined resource.
rName :: Lens' Resource (Maybe Text)

-- | The type of the resource, such as <tt>INTEGER</tt> , <tt>DOUBLE</tt> ,
--   <tt>LONG</tt> , or <tt>STRINGSET</tt> .
rType :: Lens' Resource (Maybe Text)

-- | Details on an event associated with a service.
--   
--   <i>See:</i> <a>serviceEvent</a> smart constructor.
data ServiceEvent

-- | Creates a value of <a>ServiceEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seCreatedAt</a> - The Unix timestamp for when the event was
--   triggered.</li>
--   <li><a>seId</a> - The ID string of the event.</li>
--   <li><a>seMessage</a> - The event message.</li>
--   </ul>
serviceEvent :: ServiceEvent

-- | The Unix timestamp for when the event was triggered.
seCreatedAt :: Lens' ServiceEvent (Maybe UTCTime)

-- | The ID string of the event.
seId :: Lens' ServiceEvent (Maybe Text)

-- | The event message.
seMessage :: Lens' ServiceEvent (Maybe Text)

-- | Details on a task in a cluster.
--   
--   <i>See:</i> <a>task</a> smart constructor.
data Task

-- | Creates a value of <a>Task</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tStoppedAt</a> - The Unix timestamp for when the task was
--   stopped (the task transitioned from the <tt>RUNNING</tt> state to the
--   <tt>STOPPED</tt> state).</li>
--   <li><a>tDesiredStatus</a> - The desired status of the task.</li>
--   <li><a>tOverrides</a> - One or more container overrides.</li>
--   <li><a>tClusterARN</a> - The Amazon Resource Name (ARN) of the cluster
--   that hosts the task.</li>
--   <li><a>tCreatedAt</a> - The Unix timestamp for when the task was
--   created (the task entered the <tt>PENDING</tt> state).</li>
--   <li><a>tTaskARN</a> - The Amazon Resource Name (ARN) of the task.</li>
--   <li><a>tContainerInstanceARN</a> - The Amazon Resource Name (ARN) of
--   the container instances that host the task.</li>
--   <li><a>tLastStatus</a> - The last known status of the task.</li>
--   <li><a>tContainers</a> - The containers associated with the task.</li>
--   <li><a>tStartedAt</a> - The Unix timestamp for when the task was
--   started (the task transitioned from the <tt>PENDING</tt> state to the
--   <tt>RUNNING</tt> state).</li>
--   <li><a>tVersion</a> - The version counter for the task. Every time a
--   task experiences a change that triggers a CloudWatch event, the
--   version counter is incremented. If you are replicating your Amazon ECS
--   task state with CloudWatch events, you can compare the version of a
--   task reported by the Amazon ECS APIs with the version reported in
--   CloudWatch events for the task (inside the <tt>detail</tt> object) to
--   verify that the version in your event stream is current.</li>
--   <li><a>tStartedBy</a> - The tag specified when a task is started. If
--   the task is started by an Amazon ECS service, then the
--   <tt>startedBy</tt> parameter contains the deployment ID of the service
--   that starts it.</li>
--   <li><a>tStoppedReason</a> - The reason the task was stopped.</li>
--   <li><a>tTaskDefinitionARN</a> - The Amazon Resource Name (ARN) of the
--   task definition that creates the task.</li>
--   </ul>
task :: Task

-- | The Unix timestamp for when the task was stopped (the task
--   transitioned from the <tt>RUNNING</tt> state to the <tt>STOPPED</tt>
--   state).
tStoppedAt :: Lens' Task (Maybe UTCTime)

-- | The desired status of the task.
tDesiredStatus :: Lens' Task (Maybe Text)

-- | One or more container overrides.
tOverrides :: Lens' Task (Maybe TaskOverride)

-- | The Amazon Resource Name (ARN) of the cluster that hosts the task.
tClusterARN :: Lens' Task (Maybe Text)

-- | The Unix timestamp for when the task was created (the task entered the
--   <tt>PENDING</tt> state).
tCreatedAt :: Lens' Task (Maybe UTCTime)

-- | The Amazon Resource Name (ARN) of the task.
tTaskARN :: Lens' Task (Maybe Text)

-- | The Amazon Resource Name (ARN) of the container instances that host
--   the task.
tContainerInstanceARN :: Lens' Task (Maybe Text)

-- | The last known status of the task.
tLastStatus :: Lens' Task (Maybe Text)

-- | The containers associated with the task.
tContainers :: Lens' Task [Container]

-- | The Unix timestamp for when the task was started (the task
--   transitioned from the <tt>PENDING</tt> state to the <tt>RUNNING</tt>
--   state).
tStartedAt :: Lens' Task (Maybe UTCTime)

-- | The version counter for the task. Every time a task experiences a
--   change that triggers a CloudWatch event, the version counter is
--   incremented. If you are replicating your Amazon ECS task state with
--   CloudWatch events, you can compare the version of a task reported by
--   the Amazon ECS APIs with the version reported in CloudWatch events for
--   the task (inside the <tt>detail</tt> object) to verify that the
--   version in your event stream is current.
tVersion :: Lens' Task (Maybe Integer)

-- | The tag specified when a task is started. If the task is started by an
--   Amazon ECS service, then the <tt>startedBy</tt> parameter contains the
--   deployment ID of the service that starts it.
tStartedBy :: Lens' Task (Maybe Text)

-- | The reason the task was stopped.
tStoppedReason :: Lens' Task (Maybe Text)

-- | The Amazon Resource Name (ARN) of the task definition that creates the
--   task.
tTaskDefinitionARN :: Lens' Task (Maybe Text)

-- | Details of a task definition.
--   
--   <i>See:</i> <a>taskDefinition</a> smart constructor.
data TaskDefinition

-- | Creates a value of <a>TaskDefinition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdStatus</a> - The status of the task definition.</li>
--   <li><a>tdFamily</a> - The family of your task definition, used as the
--   definition name.</li>
--   <li><a>tdContainerDefinitions</a> - 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 <a>Amazon ECS Task Definitions</a> in the <i>Amazon EC2
--   Container Service Developer Guide</i> .</li>
--   <li><a>tdTaskRoleARN</a> - The Amazon Resource Name (ARN) of the IAM
--   role that containers in this task can assume. All containers in this
--   task are granted the permissions that are specified in this role.</li>
--   <li><a>tdNetworkMode</a> - The Docker networking mode to use for the
--   containers in the task. The valid values are <tt>none</tt> ,
--   <tt>bridge</tt> , and <tt>host</tt> . If the network mode is
--   <tt>none</tt> , the containers do not have external connectivity. The
--   default Docker network mode is <tt>bridge</tt> . The <tt>host</tt>
--   network mode offers the highest networking performance for containers
--   because it uses the host network stack instead of the virtualized
--   network stack provided by the <tt>bridge</tt> mode. For more
--   information, see <a>Network settings</a> in the <i>Docker run
--   reference</i> .</li>
--   <li><a>tdTaskDefinitionARN</a> - The full Amazon Resource Name (ARN)
--   of the task definition.</li>
--   <li><a>tdRevision</a> - 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 <tt>1</tt> ; 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).</li>
--   <li><a>tdVolumes</a> - The list of volumes in a task. For more
--   information about volume definition parameters and defaults, see
--   <a>Amazon ECS Task Definitions</a> in the <i>Amazon EC2 Container
--   Service Developer Guide</i> .</li>
--   <li><a>tdRequiresAttributes</a> - The container instance attributes
--   required by your task.</li>
--   </ul>
taskDefinition :: TaskDefinition

-- | The status of the task definition.
tdStatus :: Lens' TaskDefinition (Maybe TaskDefinitionStatus)

-- | The family of your task definition, used as the definition name.
tdFamily :: Lens' TaskDefinition (Maybe Text)

-- | 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 <a>Amazon ECS
--   Task Definitions</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .
tdContainerDefinitions :: Lens' TaskDefinition [ContainerDefinition]

-- | The Amazon Resource Name (ARN) of the IAM role that containers in this
--   task can assume. All containers in this task are granted the
--   permissions that are specified in this role.
tdTaskRoleARN :: Lens' TaskDefinition (Maybe Text)

-- | The Docker networking mode to use for the containers in the task. The
--   valid values are <tt>none</tt> , <tt>bridge</tt> , and <tt>host</tt> .
--   If the network mode is <tt>none</tt> , the containers do not have
--   external connectivity. The default Docker network mode is
--   <tt>bridge</tt> . The <tt>host</tt> network mode offers the highest
--   networking performance for containers because it uses the host network
--   stack instead of the virtualized network stack provided by the
--   <tt>bridge</tt> mode. For more information, see <a>Network
--   settings</a> in the <i>Docker run reference</i> .
tdNetworkMode :: Lens' TaskDefinition (Maybe NetworkMode)

-- | The full Amazon Resource Name (ARN) of the task definition.
tdTaskDefinitionARN :: Lens' TaskDefinition (Maybe Text)

-- | 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 <tt>1</tt> ; 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).
tdRevision :: Lens' TaskDefinition (Maybe Int)

-- | The list of volumes in a task. For more information about volume
--   definition parameters and defaults, see <a>Amazon ECS Task
--   Definitions</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .
tdVolumes :: Lens' TaskDefinition [Volume]

-- | The container instance attributes required by your task.
tdRequiresAttributes :: Lens' TaskDefinition [Attribute]

-- | The overrides associated with a task.
--   
--   <i>See:</i> <a>taskOverride</a> smart constructor.
data TaskOverride

-- | Creates a value of <a>TaskOverride</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>toContainerOverrides</a> - One or more container overrides sent
--   to a task.</li>
--   <li><a>toTaskRoleARN</a> - The Amazon Resource Name (ARN) of the IAM
--   role that containers in this task can assume. All containers in this
--   task are granted the permissions that are specified in this role.</li>
--   </ul>
taskOverride :: TaskOverride

-- | One or more container overrides sent to a task.
toContainerOverrides :: Lens' TaskOverride [ContainerOverride]

-- | The Amazon Resource Name (ARN) of the IAM role that containers in this
--   task can assume. All containers in this task are granted the
--   permissions that are specified in this role.
toTaskRoleARN :: Lens' TaskOverride (Maybe Text)

-- | The <tt>ulimit</tt> settings to pass to the container.
--   
--   <i>See:</i> <a>ulimit</a> smart constructor.
data Ulimit

-- | Creates a value of <a>Ulimit</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uName</a> - The <tt>type</tt> of the <tt>ulimit</tt> .</li>
--   <li><a>uSoftLimit</a> - The soft limit for the ulimit type.</li>
--   <li><a>uHardLimit</a> - The hard limit for the ulimit type.</li>
--   </ul>
ulimit :: UlimitName -> Int -> Int -> Ulimit

-- | The <tt>type</tt> of the <tt>ulimit</tt> .
uName :: Lens' Ulimit UlimitName

-- | The soft limit for the ulimit type.
uSoftLimit :: Lens' Ulimit Int

-- | The hard limit for the ulimit type.
uHardLimit :: Lens' Ulimit Int

-- | The Docker and Amazon ECS container agent version information about a
--   container instance.
--   
--   <i>See:</i> <a>versionInfo</a> smart constructor.
data VersionInfo

-- | Creates a value of <a>VersionInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>viAgentHash</a> - The Git commit hash for the Amazon ECS
--   container agent build on the <a>amazon-ecs-agent</a> GitHub
--   repository.</li>
--   <li><a>viAgentVersion</a> - The version number of the Amazon ECS
--   container agent.</li>
--   <li><a>viDockerVersion</a> - The Docker version running on the
--   container instance.</li>
--   </ul>
versionInfo :: VersionInfo

-- | The Git commit hash for the Amazon ECS container agent build on the
--   <a>amazon-ecs-agent</a> GitHub repository.
viAgentHash :: Lens' VersionInfo (Maybe Text)

-- | The version number of the Amazon ECS container agent.
viAgentVersion :: Lens' VersionInfo (Maybe Text)

-- | The Docker version running on the container instance.
viDockerVersion :: Lens' VersionInfo (Maybe Text)

-- | A data volume used in a task definition.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vName</a> - The name of the volume. Up to 255 letters
--   (uppercase and lowercase), numbers, hyphens, and underscores are
--   allowed. This name is referenced in the <tt>sourceVolume</tt>
--   parameter of container definition <tt>mountPoints</tt> .</li>
--   <li><a>vHost</a> - The contents of the <tt>host</tt> 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.</li>
--   </ul>
volume :: Volume

-- | The name of the volume. Up to 255 letters (uppercase and lowercase),
--   numbers, hyphens, and underscores are allowed. This name is referenced
--   in the <tt>sourceVolume</tt> parameter of container definition
--   <tt>mountPoints</tt> .
vName :: Lens' Volume (Maybe Text)

-- | The contents of the <tt>host</tt> 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.
vHost :: Lens' Volume (Maybe HostVolumeProperties)

-- | Details on a data volume from another container.
--   
--   <i>See:</i> <a>volumeFrom</a> smart constructor.
data VolumeFrom

-- | Creates a value of <a>VolumeFrom</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vfSourceContainer</a> - The name of the container to mount
--   volumes from.</li>
--   <li><a>vfReadOnly</a> - If this value is <tt>true</tt> , the container
--   has read-only access to the volume. If this value is <tt>false</tt> ,
--   then the container can write to the volume. The default value is
--   <tt>false</tt> .</li>
--   </ul>
volumeFrom :: VolumeFrom

-- | The name of the container to mount volumes from.
vfSourceContainer :: Lens' VolumeFrom (Maybe Text)

-- | If this value is <tt>true</tt> , the container has read-only access to
--   the volume. If this value is <tt>false</tt> , then the container can
--   write to the volume. The default value is <tt>false</tt> .
vfReadOnly :: Lens' VolumeFrom (Maybe Bool)


-- | 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.
--   
--   <tt>UpdateContainerAgent</tt> requires the Amazon ECS-optimized AMI or
--   Amazon Linux with the <tt>ecs-init</tt> service installed and running.
--   For help updating the Amazon ECS container agent on other operating
--   systems, see <a>Manually Updating the Amazon ECS Container Agent</a>
--   in the <i>Amazon EC2 Container Service Developer Guide</i> .
module Network.AWS.ECS.UpdateContainerAgent

-- | Creates a value of <a>UpdateContainerAgent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucaCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that your container instance is running on. If
--   you do not specify a cluster, the default cluster is assumed.</li>
--   <li><a>ucaContainerInstance</a> - The container instance ID or full
--   Amazon Resource Name (ARN) entries for the container instance on which
--   you would like to update the Amazon ECS container agent.</li>
--   </ul>
updateContainerAgent :: Text -> UpdateContainerAgent

-- | <i>See:</i> <a>updateContainerAgent</a> smart constructor.
data UpdateContainerAgent

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   your container instance is running on. If you do not specify a
--   cluster, the default cluster is assumed.
ucaCluster :: Lens' UpdateContainerAgent (Maybe Text)

-- | The container instance ID or full Amazon Resource Name (ARN) entries
--   for the container instance on which you would like to update the
--   Amazon ECS container agent.
ucaContainerInstance :: Lens' UpdateContainerAgent Text

-- | Creates a value of <a>UpdateContainerAgentResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucarsContainerInstance</a> - The container instance for which
--   the container agent was updated.</li>
--   <li><a>ucarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateContainerAgentResponse :: Int -> UpdateContainerAgentResponse

-- | <i>See:</i> <a>updateContainerAgentResponse</a> smart constructor.
data UpdateContainerAgentResponse

-- | The container instance for which the container agent was updated.
ucarsContainerInstance :: Lens' UpdateContainerAgentResponse (Maybe ContainerInstance)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ucarsResponseStatus :: Lens' UpdateContainerAgentResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgentResponse
instance Data.Data.Data Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgentResponse
instance GHC.Show.Show Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgentResponse
instance GHC.Read.Read Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgentResponse
instance GHC.Classes.Eq Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgentResponse
instance GHC.Generics.Generic Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Data.Data.Data Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance GHC.Show.Show Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance GHC.Read.Read Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance GHC.Classes.Eq Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Data.Hashable.Class.Hashable Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Control.DeepSeq.NFData Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgent
instance Control.DeepSeq.NFData Network.AWS.ECS.UpdateContainerAgent.UpdateContainerAgentResponse


-- | Modifies the desired count, deployment configuration, or task
--   definition used in a service.
--   
--   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 <tt>desiredCount</tt> parameter.
--   
--   You can use <a>UpdateService</a> to modify your task definition and
--   deploy a new version of your service.
--   
--   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,
--   <tt>minimumHealthyPercent</tt> and <tt>maximumPercent</tt> , to
--   determine the deployment strategy.
--   
--   If the <tt>minimumHealthyPercent</tt> is below 100%, the scheduler can
--   ignore the <tt>desiredCount</tt> temporarily during a deployment. For
--   example, if your service has a <tt>desiredCount</tt> of four tasks, a
--   <tt>minimumHealthyPercent</tt> of 50% allows the scheduler to stop two
--   existing tasks before starting two new tasks. Tasks for services that
--   <i>do not</i> use a load balancer are considered healthy if they are
--   in the <tt>RUNNING</tt> state; tasks for services that <i>do</i> use a
--   load balancer are considered healthy if they are in the
--   <tt>RUNNING</tt> state and the container instance it is hosted on is
--   reported as healthy by the load balancer.
--   
--   The <tt>maximumPercent</tt> parameter represents an upper limit on the
--   number of running tasks during a deployment, which enables you to
--   define the deployment batch size. For example, if your service has a
--   <tt>desiredCount</tt> of four tasks, a <tt>maximumPercent</tt> value
--   of 200% starts four new tasks before stopping the four older tasks
--   (provided that the cluster resources required to do this are
--   available).
--   
--   When <a>UpdateService</a> stops a task during a deployment, the
--   equivalent of <tt>docker stop</tt> is issued to the containers running
--   in the task. This results in a <tt>SIGTERM</tt> and a 30-second
--   timeout, after which <tt>SIGKILL</tt> is sent and the containers are
--   forcibly stopped. If the container handles the <tt>SIGTERM</tt>
--   gracefully and exits within 30 seconds from receiving it, no
--   <tt>SIGKILL</tt> is sent.
--   
--   When the service scheduler launches new tasks, it attempts to balance
--   them across the Availability Zones in your cluster with the following
--   logic:
--   
--   <ul>
--   <li>Determine which of the container instances in your cluster can
--   support your service's task definition (for example, they have the
--   required CPU, memory, ports, and container instance attributes).</li>
--   <li>Sort the valid container instances by the fewest number of running
--   tasks for this service in the same Availability Zone as the instance.
--   For example, if zone A has one running service task and zones B and C
--   each have zero, valid container instances in either zone B or C are
--   considered optimal for placement.</li>
--   <li>Place the new service task on a valid container instance in an
--   optimal Availability Zone (based on the previous steps), favoring
--   container instances with the fewest number of running tasks for this
--   service.</li>
--   </ul>
module Network.AWS.ECS.UpdateService

-- | Creates a value of <a>UpdateService</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that your service is running on. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>usDesiredCount</a> - The number of instantiations of the task
--   to place and keep running in your service.</li>
--   <li><a>usTaskDefinition</a> - The <tt>family</tt> and
--   <tt>revision</tt> (<tt>family:revision</tt> ) or full Amazon Resource
--   Name (ARN) of the task definition to run in your service. If a
--   <tt>revision</tt> is not specified, the latest <tt>ACTIVE</tt>
--   revision is used. If you modify the task definition with
--   <tt>UpdateService</tt> , Amazon ECS spawns a task with the new version
--   of the task definition and then stops an old task after the new
--   version is running.</li>
--   <li><a>usDeploymentConfiguration</a> - Optional deployment parameters
--   that control how many tasks run during the deployment and the ordering
--   of stopping and starting tasks.</li>
--   <li><a>usService</a> - The name of the service to update.</li>
--   </ul>
updateService :: Text -> UpdateService

-- | <i>See:</i> <a>updateService</a> smart constructor.
data UpdateService

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   your service is running on. If you do not specify a cluster, the
--   default cluster is assumed.
usCluster :: Lens' UpdateService (Maybe Text)

-- | The number of instantiations of the task to place and keep running in
--   your service.
usDesiredCount :: Lens' UpdateService (Maybe Int)

-- | The <tt>family</tt> and <tt>revision</tt> (<tt>family:revision</tt> )
--   or full Amazon Resource Name (ARN) of the task definition to run in
--   your service. If a <tt>revision</tt> is not specified, the latest
--   <tt>ACTIVE</tt> revision is used. If you modify the task definition
--   with <tt>UpdateService</tt> , Amazon ECS spawns a task with the new
--   version of the task definition and then stops an old task after the
--   new version is running.
usTaskDefinition :: Lens' UpdateService (Maybe Text)

-- | Optional deployment parameters that control how many tasks run during
--   the deployment and the ordering of stopping and starting tasks.
usDeploymentConfiguration :: Lens' UpdateService (Maybe DeploymentConfiguration)

-- | The name of the service to update.
usService :: Lens' UpdateService Text

-- | Creates a value of <a>UpdateServiceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usrsService</a> - The full description of your service
--   following the update call.</li>
--   <li><a>usrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateServiceResponse :: Int -> UpdateServiceResponse

-- | <i>See:</i> <a>updateServiceResponse</a> smart constructor.
data UpdateServiceResponse

-- | The full description of your service following the update call.
usrsService :: Lens' UpdateServiceResponse (Maybe ContainerService)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
usrsResponseStatus :: Lens' UpdateServiceResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.UpdateService.UpdateServiceResponse
instance Data.Data.Data Network.AWS.ECS.UpdateService.UpdateServiceResponse
instance GHC.Show.Show Network.AWS.ECS.UpdateService.UpdateServiceResponse
instance GHC.Read.Read Network.AWS.ECS.UpdateService.UpdateServiceResponse
instance GHC.Classes.Eq Network.AWS.ECS.UpdateService.UpdateServiceResponse
instance GHC.Generics.Generic Network.AWS.ECS.UpdateService.UpdateService
instance Data.Data.Data Network.AWS.ECS.UpdateService.UpdateService
instance GHC.Show.Show Network.AWS.ECS.UpdateService.UpdateService
instance GHC.Read.Read Network.AWS.ECS.UpdateService.UpdateService
instance GHC.Classes.Eq Network.AWS.ECS.UpdateService.UpdateService
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.UpdateService.UpdateService
instance Data.Hashable.Class.Hashable Network.AWS.ECS.UpdateService.UpdateService
instance Control.DeepSeq.NFData Network.AWS.ECS.UpdateService.UpdateService
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.UpdateService.UpdateService
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.UpdateService.UpdateService
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.UpdateService.UpdateService
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.UpdateService.UpdateService
instance Control.DeepSeq.NFData Network.AWS.ECS.UpdateService.UpdateServiceResponse


-- | Sent to acknowledge that a task changed states.
module Network.AWS.ECS.SubmitTaskStateChange

-- | Creates a value of <a>SubmitTaskStateChange</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stscStatus</a> - The status of the state change request.</li>
--   <li><a>stscCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the task.</li>
--   <li><a>stscReason</a> - The reason for the state change request.</li>
--   <li><a>stscTask</a> - The task ID or full Amazon Resource Name (ARN)
--   of the task in the state change request.</li>
--   </ul>
submitTaskStateChange :: SubmitTaskStateChange

-- | <i>See:</i> <a>submitTaskStateChange</a> smart constructor.
data SubmitTaskStateChange

-- | The status of the state change request.
stscStatus :: Lens' SubmitTaskStateChange (Maybe Text)

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the task.
stscCluster :: Lens' SubmitTaskStateChange (Maybe Text)

-- | The reason for the state change request.
stscReason :: Lens' SubmitTaskStateChange (Maybe Text)

-- | The task ID or full Amazon Resource Name (ARN) of the task in the
--   state change request.
stscTask :: Lens' SubmitTaskStateChange (Maybe Text)

-- | Creates a value of <a>SubmitTaskStateChangeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stscrsAcknowledgment</a> - Acknowledgement of the state
--   change.</li>
--   <li><a>stscrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
submitTaskStateChangeResponse :: Int -> SubmitTaskStateChangeResponse

-- | <i>See:</i> <a>submitTaskStateChangeResponse</a> smart constructor.
data SubmitTaskStateChangeResponse

-- | Acknowledgement of the state change.
stscrsAcknowledgment :: Lens' SubmitTaskStateChangeResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
stscrsResponseStatus :: Lens' SubmitTaskStateChangeResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChangeResponse
instance Data.Data.Data Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChangeResponse
instance GHC.Show.Show Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChangeResponse
instance GHC.Read.Read Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChangeResponse
instance GHC.Classes.Eq Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChangeResponse
instance GHC.Generics.Generic Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Data.Data.Data Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance GHC.Show.Show Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance GHC.Read.Read Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance GHC.Classes.Eq Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Data.Hashable.Class.Hashable Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Control.DeepSeq.NFData Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChange
instance Control.DeepSeq.NFData Network.AWS.ECS.SubmitTaskStateChange.SubmitTaskStateChangeResponse


-- | Sent to acknowledge that a container changed states.
module Network.AWS.ECS.SubmitContainerStateChange

-- | Creates a value of <a>SubmitContainerStateChange</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scscNetworkBindings</a> - The network bindings of the
--   container.</li>
--   <li><a>scscStatus</a> - The status of the state change request.</li>
--   <li><a>scscCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the container.</li>
--   <li><a>scscContainerName</a> - The name of the container.</li>
--   <li><a>scscReason</a> - The reason for the state change request.</li>
--   <li><a>scscExitCode</a> - The exit code returned for the state change
--   request.</li>
--   <li><a>scscTask</a> - The task ID or full Amazon Resource Name (ARN)
--   of the task that hosts the container.</li>
--   </ul>
submitContainerStateChange :: SubmitContainerStateChange

-- | <i>See:</i> <a>submitContainerStateChange</a> smart constructor.
data SubmitContainerStateChange

-- | The network bindings of the container.
scscNetworkBindings :: Lens' SubmitContainerStateChange [NetworkBinding]

-- | The status of the state change request.
scscStatus :: Lens' SubmitContainerStateChange (Maybe Text)

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the container.
scscCluster :: Lens' SubmitContainerStateChange (Maybe Text)

-- | The name of the container.
scscContainerName :: Lens' SubmitContainerStateChange (Maybe Text)

-- | The reason for the state change request.
scscReason :: Lens' SubmitContainerStateChange (Maybe Text)

-- | The exit code returned for the state change request.
scscExitCode :: Lens' SubmitContainerStateChange (Maybe Int)

-- | The task ID or full Amazon Resource Name (ARN) of the task that hosts
--   the container.
scscTask :: Lens' SubmitContainerStateChange (Maybe Text)

-- | Creates a value of <a>SubmitContainerStateChangeResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>scscrsAcknowledgment</a> - Acknowledgement of the state
--   change.</li>
--   <li><a>scscrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
submitContainerStateChangeResponse :: Int -> SubmitContainerStateChangeResponse

-- | <i>See:</i> <a>submitContainerStateChangeResponse</a> smart
--   constructor.
data SubmitContainerStateChangeResponse

-- | Acknowledgement of the state change.
scscrsAcknowledgment :: Lens' SubmitContainerStateChangeResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
scscrsResponseStatus :: Lens' SubmitContainerStateChangeResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChangeResponse
instance Data.Data.Data Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChangeResponse
instance GHC.Show.Show Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChangeResponse
instance GHC.Read.Read Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChangeResponse
instance GHC.Classes.Eq Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChangeResponse
instance GHC.Generics.Generic Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Data.Data.Data Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance GHC.Show.Show Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance GHC.Read.Read Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance GHC.Classes.Eq Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Data.Hashable.Class.Hashable Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Control.DeepSeq.NFData Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChange
instance Control.DeepSeq.NFData Network.AWS.ECS.SubmitContainerStateChange.SubmitContainerStateChangeResponse


-- | Stops a running task.
--   
--   When <a>StopTask</a> is called on a task, the equivalent of <tt>docker
--   stop</tt> is issued to the containers running in the task. This
--   results in a <tt>SIGTERM</tt> and a 30-second timeout, after which
--   <tt>SIGKILL</tt> is sent and the containers are forcibly stopped. If
--   the container handles the <tt>SIGTERM</tt> gracefully and exits within
--   30 seconds from receiving it, no <tt>SIGKILL</tt> is sent.
module Network.AWS.ECS.StopTask

-- | Creates a value of <a>StopTask</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the task to stop. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>stReason</a> - An optional message specified when a task is
--   stopped. For example, if you are using a custom scheduler, you can use
--   this parameter to specify the reason for stopping the task here, and
--   the message will appear in subsequent <tt>DescribeTasks</tt> API
--   operations on this task. Up to 255 characters are allowed in this
--   message.</li>
--   <li><a>stTask</a> - The task ID or full Amazon Resource Name (ARN)
--   entry of the task to stop.</li>
--   </ul>
stopTask :: Text -> StopTask

-- | <i>See:</i> <a>stopTask</a> smart constructor.
data StopTask

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the task to stop. If you do not specify a cluster, the default
--   cluster is assumed.
stCluster :: Lens' StopTask (Maybe Text)

-- | An optional message specified when a task is stopped. For example, if
--   you are using a custom scheduler, you can use this parameter to
--   specify the reason for stopping the task here, and the message will
--   appear in subsequent <tt>DescribeTasks</tt> API operations on this
--   task. Up to 255 characters are allowed in this message.
stReason :: Lens' StopTask (Maybe Text)

-- | The task ID or full Amazon Resource Name (ARN) entry of the task to
--   stop.
stTask :: Lens' StopTask Text

-- | Creates a value of <a>StopTaskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srsTask</a> - The task that was stopped.</li>
--   <li><a>srsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopTaskResponse :: Int -> StopTaskResponse

-- | <i>See:</i> <a>stopTaskResponse</a> smart constructor.
data StopTaskResponse

-- | The task that was stopped.
srsTask :: Lens' StopTaskResponse (Maybe Task)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
srsResponseStatus :: Lens' StopTaskResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.StopTask.StopTaskResponse
instance Data.Data.Data Network.AWS.ECS.StopTask.StopTaskResponse
instance GHC.Show.Show Network.AWS.ECS.StopTask.StopTaskResponse
instance GHC.Read.Read Network.AWS.ECS.StopTask.StopTaskResponse
instance GHC.Classes.Eq Network.AWS.ECS.StopTask.StopTaskResponse
instance GHC.Generics.Generic Network.AWS.ECS.StopTask.StopTask
instance Data.Data.Data Network.AWS.ECS.StopTask.StopTask
instance GHC.Show.Show Network.AWS.ECS.StopTask.StopTask
instance GHC.Read.Read Network.AWS.ECS.StopTask.StopTask
instance GHC.Classes.Eq Network.AWS.ECS.StopTask.StopTask
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.StopTask.StopTask
instance Data.Hashable.Class.Hashable Network.AWS.ECS.StopTask.StopTask
instance Control.DeepSeq.NFData Network.AWS.ECS.StopTask.StopTask
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.StopTask.StopTask
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.StopTask.StopTask
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.StopTask.StopTask
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.StopTask.StopTask
instance Control.DeepSeq.NFData Network.AWS.ECS.StopTask.StopTaskResponse


-- | Starts a new task from the specified task definition on the specified
--   container instance or instances. To use the default Amazon ECS
--   scheduler to place your task, use <tt>RunTask</tt> instead.
--   
--   <i>Important:</i> The list of container instances to start tasks on is
--   limited to 10.
module Network.AWS.ECS.StartTask

-- | Creates a value of <a>StartTask</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sOverrides</a> - A list of container overrides in JSON format
--   that specify the name of a container in the specified task definition
--   and the overrides it should receive. You can override the default
--   command for a container (that is specified in the task definition or
--   Docker image) with a <tt>command</tt> override. You can also override
--   existing environment variables (that are specified in the task
--   definition or Docker image) on a container or add new environment
--   variables to it with an <tt>environment</tt> override.</li>
--   <li><a>sCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster on which to start your task. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>sStartedBy</a> - An optional tag specified when a task is
--   started. For example if you automatically trigger a task to run a
--   batch process job, you could apply a unique identifier for that job to
--   your task with the <tt>startedBy</tt> parameter. You can then identify
--   which tasks belong to that job by filtering the results of a
--   <tt>ListTasks</tt> call with the <tt>startedBy</tt> value. Up to 36
--   letters (uppercase and lowercase), numbers, hyphens, and underscores
--   are allowed. If a task is started by an Amazon ECS service, then the
--   <tt>startedBy</tt> parameter contains the deployment ID of the service
--   that starts it.</li>
--   <li><a>sTaskDefinition</a> - The <tt>family</tt> and <tt>revision</tt>
--   (<tt>family:revision</tt> ) or full Amazon Resource Name (ARN) of the
--   task definition to start. If a <tt>revision</tt> is not specified, the
--   latest <tt>ACTIVE</tt> revision is used.</li>
--   <li><a>sContainerInstances</a> - The container instance IDs or full
--   Amazon Resource Name (ARN) entries for the container instances on
--   which you would like to place your task. <i>Important:</i> The list of
--   container instances to start tasks on is limited to 10.</li>
--   </ul>
startTask :: Text -> StartTask

-- | <i>See:</i> <a>startTask</a> smart constructor.
data StartTask

-- | A list of container overrides in JSON format that specify the name of
--   a container in the specified task definition and the overrides it
--   should receive. You can override the default command for a container
--   (that is specified in the task definition or Docker image) with a
--   <tt>command</tt> override. You can also override existing environment
--   variables (that are specified in the task definition or Docker image)
--   on a container or add new environment variables to it with an
--   <tt>environment</tt> override.
sOverrides :: Lens' StartTask (Maybe TaskOverride)

-- | The short name or full Amazon Resource Name (ARN) of the cluster on
--   which to start your task. If you do not specify a cluster, the default
--   cluster is assumed.
sCluster :: Lens' StartTask (Maybe Text)

-- | An optional tag specified when a task is started. For example if you
--   automatically trigger a task to run a batch process job, you could
--   apply a unique identifier for that job to your task with the
--   <tt>startedBy</tt> parameter. You can then identify which tasks belong
--   to that job by filtering the results of a <tt>ListTasks</tt> call with
--   the <tt>startedBy</tt> value. Up to 36 letters (uppercase and
--   lowercase), numbers, hyphens, and underscores are allowed. If a task
--   is started by an Amazon ECS service, then the <tt>startedBy</tt>
--   parameter contains the deployment ID of the service that starts it.
sStartedBy :: Lens' StartTask (Maybe Text)

-- | The <tt>family</tt> and <tt>revision</tt> (<tt>family:revision</tt> )
--   or full Amazon Resource Name (ARN) of the task definition to start. If
--   a <tt>revision</tt> is not specified, the latest <tt>ACTIVE</tt>
--   revision is used.
sTaskDefinition :: Lens' StartTask Text

-- | The container instance IDs or full Amazon Resource Name (ARN) entries
--   for the container instances on which you would like to place your
--   task. <i>Important:</i> The list of container instances to start tasks
--   on is limited to 10.
sContainerInstances :: Lens' StartTask [Text]

-- | Creates a value of <a>StartTaskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>strsFailures</a> - Any failures associated with the call.</li>
--   <li><a>strsTasks</a> - A full description of the tasks that were
--   started. Each task that was successfully placed on your container
--   instances are described here.</li>
--   <li><a>strsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startTaskResponse :: Int -> StartTaskResponse

-- | <i>See:</i> <a>startTaskResponse</a> smart constructor.
data StartTaskResponse

-- | Any failures associated with the call.
strsFailures :: Lens' StartTaskResponse [Failure]

-- | A full description of the tasks that were started. Each task that was
--   successfully placed on your container instances are described here.
strsTasks :: Lens' StartTaskResponse [Task]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
strsResponseStatus :: Lens' StartTaskResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.StartTask.StartTaskResponse
instance Data.Data.Data Network.AWS.ECS.StartTask.StartTaskResponse
instance GHC.Show.Show Network.AWS.ECS.StartTask.StartTaskResponse
instance GHC.Read.Read Network.AWS.ECS.StartTask.StartTaskResponse
instance GHC.Classes.Eq Network.AWS.ECS.StartTask.StartTaskResponse
instance GHC.Generics.Generic Network.AWS.ECS.StartTask.StartTask
instance Data.Data.Data Network.AWS.ECS.StartTask.StartTask
instance GHC.Show.Show Network.AWS.ECS.StartTask.StartTask
instance GHC.Read.Read Network.AWS.ECS.StartTask.StartTask
instance GHC.Classes.Eq Network.AWS.ECS.StartTask.StartTask
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.StartTask.StartTask
instance Data.Hashable.Class.Hashable Network.AWS.ECS.StartTask.StartTask
instance Control.DeepSeq.NFData Network.AWS.ECS.StartTask.StartTask
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.StartTask.StartTask
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.StartTask.StartTask
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.StartTask.StartTask
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.StartTask.StartTask
instance Control.DeepSeq.NFData Network.AWS.ECS.StartTask.StartTaskResponse


-- | Start a task using random placement and the default Amazon ECS
--   scheduler. To use your own scheduler or place a task on a specific
--   container instance, use <tt>StartTask</tt> instead.
--   
--   <i>Important:</i> The <tt>count</tt> parameter is limited to 10 tasks
--   per call.
module Network.AWS.ECS.RunTask

-- | Creates a value of <a>RunTask</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtOverrides</a> - A list of container overrides in JSON format
--   that specify the name of a container in the specified task definition
--   and the overrides it should receive. You can override the default
--   command for a container (that is specified in the task definition or
--   Docker image) with a <tt>command</tt> override. You can also override
--   existing environment variables (that are specified in the task
--   definition or Docker image) on a container or add new environment
--   variables to it with an <tt>environment</tt> override.</li>
--   <li><a>rtCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster on which to run your task. If you do not specify
--   a cluster, the default cluster is assumed.</li>
--   <li><a>rtCount</a> - The number of instantiations of the specified
--   task to place on your cluster. <i>Important:</i> The <tt>count</tt>
--   parameter is limited to 10 tasks per call.</li>
--   <li><a>rtStartedBy</a> - An optional tag specified when a task is
--   started. For example if you automatically trigger a task to run a
--   batch process job, you could apply a unique identifier for that job to
--   your task with the <tt>startedBy</tt> parameter. You can then identify
--   which tasks belong to that job by filtering the results of a
--   <tt>ListTasks</tt> call with the <tt>startedBy</tt> value. Up to 36
--   letters (uppercase and lowercase), numbers, hyphens, and underscores
--   are allowed. If a task is started by an Amazon ECS service, then the
--   <tt>startedBy</tt> parameter contains the deployment ID of the service
--   that starts it.</li>
--   <li><a>rtTaskDefinition</a> - The <tt>family</tt> and
--   <tt>revision</tt> (<tt>family:revision</tt> ) or full Amazon Resource
--   Name (ARN) of the task definition to run. If a <tt>revision</tt> is
--   not specified, the latest <tt>ACTIVE</tt> revision is used.</li>
--   </ul>
runTask :: Text -> RunTask

-- | <i>See:</i> <a>runTask</a> smart constructor.
data RunTask

-- | A list of container overrides in JSON format that specify the name of
--   a container in the specified task definition and the overrides it
--   should receive. You can override the default command for a container
--   (that is specified in the task definition or Docker image) with a
--   <tt>command</tt> override. You can also override existing environment
--   variables (that are specified in the task definition or Docker image)
--   on a container or add new environment variables to it with an
--   <tt>environment</tt> override.
rtOverrides :: Lens' RunTask (Maybe TaskOverride)

-- | The short name or full Amazon Resource Name (ARN) of the cluster on
--   which to run your task. If you do not specify a cluster, the default
--   cluster is assumed.
rtCluster :: Lens' RunTask (Maybe Text)

-- | The number of instantiations of the specified task to place on your
--   cluster. <i>Important:</i> The <tt>count</tt> parameter is limited to
--   10 tasks per call.
rtCount :: Lens' RunTask (Maybe Int)

-- | An optional tag specified when a task is started. For example if you
--   automatically trigger a task to run a batch process job, you could
--   apply a unique identifier for that job to your task with the
--   <tt>startedBy</tt> parameter. You can then identify which tasks belong
--   to that job by filtering the results of a <tt>ListTasks</tt> call with
--   the <tt>startedBy</tt> value. Up to 36 letters (uppercase and
--   lowercase), numbers, hyphens, and underscores are allowed. If a task
--   is started by an Amazon ECS service, then the <tt>startedBy</tt>
--   parameter contains the deployment ID of the service that starts it.
rtStartedBy :: Lens' RunTask (Maybe Text)

-- | The <tt>family</tt> and <tt>revision</tt> (<tt>family:revision</tt> )
--   or full Amazon Resource Name (ARN) of the task definition to run. If a
--   <tt>revision</tt> is not specified, the latest <tt>ACTIVE</tt>
--   revision is used.
rtTaskDefinition :: Lens' RunTask Text

-- | Creates a value of <a>RunTaskResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtrsFailures</a> - Any failures associated with the call.</li>
--   <li><a>rtrsTasks</a> - A full description of the tasks that were run.
--   Each task that was successfully placed on your cluster are described
--   here.</li>
--   <li><a>rtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
runTaskResponse :: Int -> RunTaskResponse

-- | <i>See:</i> <a>runTaskResponse</a> smart constructor.
data RunTaskResponse

-- | Any failures associated with the call.
rtrsFailures :: Lens' RunTaskResponse [Failure]

-- | A full description of the tasks that were run. Each task that was
--   successfully placed on your cluster are described here.
rtrsTasks :: Lens' RunTaskResponse [Task]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rtrsResponseStatus :: Lens' RunTaskResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.RunTask.RunTaskResponse
instance Data.Data.Data Network.AWS.ECS.RunTask.RunTaskResponse
instance GHC.Show.Show Network.AWS.ECS.RunTask.RunTaskResponse
instance GHC.Read.Read Network.AWS.ECS.RunTask.RunTaskResponse
instance GHC.Classes.Eq Network.AWS.ECS.RunTask.RunTaskResponse
instance GHC.Generics.Generic Network.AWS.ECS.RunTask.RunTask
instance Data.Data.Data Network.AWS.ECS.RunTask.RunTask
instance GHC.Show.Show Network.AWS.ECS.RunTask.RunTask
instance GHC.Read.Read Network.AWS.ECS.RunTask.RunTask
instance GHC.Classes.Eq Network.AWS.ECS.RunTask.RunTask
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.RunTask.RunTask
instance Data.Hashable.Class.Hashable Network.AWS.ECS.RunTask.RunTask
instance Control.DeepSeq.NFData Network.AWS.ECS.RunTask.RunTask
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.RunTask.RunTask
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.RunTask.RunTask
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.RunTask.RunTask
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.RunTask.RunTask
instance Control.DeepSeq.NFData Network.AWS.ECS.RunTask.RunTaskResponse


-- | Registers a new task definition from the supplied <tt>family</tt> and
--   <tt>containerDefinitions</tt> . Optionally, you can add data volumes
--   to your containers with the <tt>volumes</tt> parameter. For more
--   information about task definition parameters and defaults, see
--   <a>Amazon ECS Task Definitions</a> in the <i>Amazon EC2 Container
--   Service Developer Guide</i> .
--   
--   You can specify an IAM role for your task with the
--   <tt>taskRoleArn</tt> 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
--   <a>IAM Roles for Tasks</a> in the <i>Amazon EC2 Container Service
--   Developer Guide</i> .
--   
--   You can specify a Docker networking mode for the containers in your
--   task definition with the <tt>networkMode</tt> parameter. The available
--   network modes correspond to those described in <a>Network settings</a>
--   in the Docker run reference.
module Network.AWS.ECS.RegisterTaskDefinition

-- | Creates a value of <a>RegisterTaskDefinition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtdTaskRoleARN</a> - The short name or full Amazon Resource
--   Name (ARN) of the IAM role that containers in this task can assume.
--   All containers in this task are granted the permissions that are
--   specified in this role. For more information, see <a>IAM Roles for
--   Tasks</a> in the <i>Amazon EC2 Container Service Developer Guide</i>
--   .</li>
--   <li><a>rtdNetworkMode</a> - The Docker networking mode to use for the
--   containers in the task. The valid values are <tt>none</tt> ,
--   <tt>bridge</tt> , and <tt>host</tt> . The default Docker network mode
--   is <tt>bridge</tt> . If the network mode is set to <tt>none</tt> , you
--   cannot specify port mappings in your container definitions, and the
--   task's containers do not have external connectivity. The <tt>host</tt>
--   network mode offers the highest networking performance for containers
--   because they use the host network stack instead of the virtualized
--   network stack provided by the <tt>bridge</tt> mode; however, exposed
--   container ports are mapped directly to the corresponding host port, so
--   you cannot take advantage of dynamic host port mappings or run
--   multiple instantiations of the same task on a single container
--   instance if port mappings are used. For more information, see
--   <a>Network settings</a> in the <i>Docker run reference</i> .</li>
--   <li><a>rtdVolumes</a> - A list of volume definitions in JSON format
--   that containers in your task may use.</li>
--   <li><a>rtdFamily</a> - You must specify a <tt>family</tt> for a task
--   definition, which allows you to track multiple versions of the same
--   task definition. The <tt>family</tt> is used as a name for your task
--   definition. Up to 255 letters (uppercase and lowercase), numbers,
--   hyphens, and underscores are allowed.</li>
--   <li><a>rtdContainerDefinitions</a> - A list of container definitions
--   in JSON format that describe the different containers that make up
--   your task.</li>
--   </ul>
registerTaskDefinition :: Text -> RegisterTaskDefinition

-- | <i>See:</i> <a>registerTaskDefinition</a> smart constructor.
data RegisterTaskDefinition

-- | The short name or full Amazon Resource Name (ARN) of the IAM role that
--   containers in this task can assume. All containers in this task are
--   granted the permissions that are specified in this role. For more
--   information, see <a>IAM Roles for Tasks</a> in the <i>Amazon EC2
--   Container Service Developer Guide</i> .
rtdTaskRoleARN :: Lens' RegisterTaskDefinition (Maybe Text)

-- | The Docker networking mode to use for the containers in the task. The
--   valid values are <tt>none</tt> , <tt>bridge</tt> , and <tt>host</tt> .
--   The default Docker network mode is <tt>bridge</tt> . If the network
--   mode is set to <tt>none</tt> , you cannot specify port mappings in
--   your container definitions, and the task's containers do not have
--   external connectivity. The <tt>host</tt> network mode offers the
--   highest networking performance for containers because they use the
--   host network stack instead of the virtualized network stack provided
--   by the <tt>bridge</tt> mode; however, exposed container ports are
--   mapped directly to the corresponding host port, so you cannot take
--   advantage of dynamic host port mappings or run multiple instantiations
--   of the same task on a single container instance if port mappings are
--   used. For more information, see <a>Network settings</a> in the
--   <i>Docker run reference</i> .
rtdNetworkMode :: Lens' RegisterTaskDefinition (Maybe NetworkMode)

-- | A list of volume definitions in JSON format that containers in your
--   task may use.
rtdVolumes :: Lens' RegisterTaskDefinition [Volume]

-- | You must specify a <tt>family</tt> for a task definition, which allows
--   you to track multiple versions of the same task definition. The
--   <tt>family</tt> is used as a name for your task definition. Up to 255
--   letters (uppercase and lowercase), numbers, hyphens, and underscores
--   are allowed.
rtdFamily :: Lens' RegisterTaskDefinition Text

-- | A list of container definitions in JSON format that describe the
--   different containers that make up your task.
rtdContainerDefinitions :: Lens' RegisterTaskDefinition [ContainerDefinition]

-- | Creates a value of <a>RegisterTaskDefinitionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtdrsTaskDefinition</a> - The full description of the
--   registered task definition.</li>
--   <li><a>rtdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerTaskDefinitionResponse :: Int -> RegisterTaskDefinitionResponse

-- | <i>See:</i> <a>registerTaskDefinitionResponse</a> smart constructor.
data RegisterTaskDefinitionResponse

-- | The full description of the registered task definition.
rtdrsTaskDefinition :: Lens' RegisterTaskDefinitionResponse (Maybe TaskDefinition)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rtdrsResponseStatus :: Lens' RegisterTaskDefinitionResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinitionResponse
instance Data.Data.Data Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinitionResponse
instance GHC.Show.Show Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinitionResponse
instance GHC.Read.Read Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinitionResponse
instance GHC.Classes.Eq Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinitionResponse
instance GHC.Generics.Generic Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Data.Data.Data Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance GHC.Show.Show Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance GHC.Read.Read Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance GHC.Classes.Eq Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Data.Hashable.Class.Hashable Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Control.DeepSeq.NFData Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinition
instance Control.DeepSeq.NFData Network.AWS.ECS.RegisterTaskDefinition.RegisterTaskDefinitionResponse


-- | Registers an EC2 instance into the specified cluster. This instance
--   becomes available to place containers on.
module Network.AWS.ECS.RegisterContainerInstance

-- | Creates a value of <a>RegisterContainerInstance</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rciInstanceIdentityDocumentSignature</a> - The instance
--   identity document signature for the EC2 instance to register. This
--   signature can be found by running the following command from the
--   instance: <tt>curl
--   <a>http://169.254.169.254/latest/dynamic/instance-identity/signature/</a></tt></li>
--   <li><a>rciCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster with which to register your container instance.
--   If you do not specify a cluster, the default cluster is assumed.</li>
--   <li><a>rciInstanceIdentityDocument</a> - The instance identity
--   document for the EC2 instance to register. This document can be found
--   by running the following command from the instance: <tt>curl
--   <a>http://169.254.169.254/latest/dynamic/instance-identity/document/</a></tt></li>
--   <li><a>rciContainerInstanceARN</a> - The Amazon Resource Name (ARN) of
--   the container instance (if it was previously registered).</li>
--   <li><a>rciVersionInfo</a> - The version information for the Amazon ECS
--   container agent and Docker daemon running on the container
--   instance.</li>
--   <li><a>rciAttributes</a> - The container instance attributes that this
--   container instance supports.</li>
--   <li><a>rciTotalResources</a> - The resources available on the
--   instance.</li>
--   </ul>
registerContainerInstance :: RegisterContainerInstance

-- | <i>See:</i> <a>registerContainerInstance</a> smart constructor.
data RegisterContainerInstance

-- | The instance identity document signature for the EC2 instance to
--   register. This signature can be found by running the following command
--   from the instance: <tt>curl
--   <a>http://169.254.169.254/latest/dynamic/instance-identity/signature/</a></tt>
rciInstanceIdentityDocumentSignature :: Lens' RegisterContainerInstance (Maybe Text)

-- | The short name or full Amazon Resource Name (ARN) of the cluster with
--   which to register your container instance. If you do not specify a
--   cluster, the default cluster is assumed.
rciCluster :: Lens' RegisterContainerInstance (Maybe Text)

-- | The instance identity document for the EC2 instance to register. This
--   document can be found by running the following command from the
--   instance: <tt>curl
--   <a>http://169.254.169.254/latest/dynamic/instance-identity/document/</a></tt>
rciInstanceIdentityDocument :: Lens' RegisterContainerInstance (Maybe Text)

-- | The Amazon Resource Name (ARN) of the container instance (if it was
--   previously registered).
rciContainerInstanceARN :: Lens' RegisterContainerInstance (Maybe Text)

-- | The version information for the Amazon ECS container agent and Docker
--   daemon running on the container instance.
rciVersionInfo :: Lens' RegisterContainerInstance (Maybe VersionInfo)

-- | The container instance attributes that this container instance
--   supports.
rciAttributes :: Lens' RegisterContainerInstance [Attribute]

-- | The resources available on the instance.
rciTotalResources :: Lens' RegisterContainerInstance [Resource]

-- | Creates a value of <a>RegisterContainerInstanceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcirsContainerInstance</a> - The container instance that was
--   registered.</li>
--   <li><a>rcirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerContainerInstanceResponse :: Int -> RegisterContainerInstanceResponse

-- | <i>See:</i> <a>registerContainerInstanceResponse</a> smart
--   constructor.
data RegisterContainerInstanceResponse

-- | The container instance that was registered.
rcirsContainerInstance :: Lens' RegisterContainerInstanceResponse (Maybe ContainerInstance)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rcirsResponseStatus :: Lens' RegisterContainerInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstanceResponse
instance Data.Data.Data Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstanceResponse
instance GHC.Show.Show Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstanceResponse
instance GHC.Read.Read Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstanceResponse
instance GHC.Classes.Eq Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstanceResponse
instance GHC.Generics.Generic Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Data.Data.Data Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance GHC.Show.Show Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance GHC.Read.Read Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance GHC.Classes.Eq Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Data.Hashable.Class.Hashable Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Control.DeepSeq.NFData Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstance
instance Control.DeepSeq.NFData Network.AWS.ECS.RegisterContainerInstance.RegisterContainerInstanceResponse


-- | 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 <tt>family</tt> ,
--   <tt>containerInstance</tt> , and <tt>desiredStatus</tt> parameters.
--   
--   Recently-stopped tasks might appear in the returned results.
--   Currently, stopped tasks appear in the returned results for at least
--   one hour.
--   
--   This operation returns paginated results.
module Network.AWS.ECS.ListTasks

-- | Creates a value of <a>ListTasks</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltDesiredStatus</a> - The task desired status with which to
--   filter the <tt>ListTasks</tt> results. Specifying a
--   <tt>desiredStatus</tt> of <tt>STOPPED</tt> limits the results to tasks
--   that ECS has set the desired status to <tt>STOPPED</tt> , which can be
--   useful for debugging tasks that are not starting properly or have died
--   or finished. The default status filter is <tt>RUNNING</tt> , which
--   shows tasks that ECS has set the desired status to <tt>RUNNING</tt>
--   .</li>
--   <li><a>ltCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the tasks to list. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>ltFamily</a> - The name of the family with which to filter the
--   <tt>ListTasks</tt> results. Specifying a <tt>family</tt> limits the
--   results to tasks that belong to that family.</li>
--   <li><a>ltNextToken</a> - The <tt>nextToken</tt> value returned from a
--   previous paginated <tt>ListTasks</tt> request where
--   <tt>maxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>nextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>ltStartedBy</a> - The <tt>startedBy</tt> value with which to
--   filter the task results. Specifying a <tt>startedBy</tt> value limits
--   the results to tasks that were started with that value.</li>
--   <li><a>ltServiceName</a> - The name of the service with which to
--   filter the <tt>ListTasks</tt> results. Specifying a
--   <tt>serviceName</tt> limits the results to tasks that belong to that
--   service.</li>
--   <li><a>ltContainerInstance</a> - The container instance ID or full
--   Amazon Resource Name (ARN) of the container instance with which to
--   filter the <tt>ListTasks</tt> results. Specifying a
--   <tt>containerInstance</tt> limits the results to tasks that belong to
--   that container instance.</li>
--   <li><a>ltMaxResults</a> - The maximum number of task results returned
--   by <tt>ListTasks</tt> in paginated output. When this parameter is
--   used, <tt>ListTasks</tt> only returns <tt>maxResults</tt> results in a
--   single page along with a <tt>nextToken</tt> response element. The
--   remaining results of the initial request can be seen by sending
--   another <tt>ListTasks</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListTasks</tt> returns up to 100
--   results and a <tt>nextToken</tt> value if applicable.</li>
--   </ul>
listTasks :: ListTasks

-- | <i>See:</i> <a>listTasks</a> smart constructor.
data ListTasks

-- | The task desired status with which to filter the <tt>ListTasks</tt>
--   results. Specifying a <tt>desiredStatus</tt> of <tt>STOPPED</tt>
--   limits the results to tasks that ECS has set the desired status to
--   <tt>STOPPED</tt> , which can be useful for debugging tasks that are
--   not starting properly or have died or finished. The default status
--   filter is <tt>RUNNING</tt> , which shows tasks that ECS has set the
--   desired status to <tt>RUNNING</tt> .
ltDesiredStatus :: Lens' ListTasks (Maybe DesiredStatus)

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the tasks to list. If you do not specify a cluster, the default
--   cluster is assumed.
ltCluster :: Lens' ListTasks (Maybe Text)

-- | The name of the family with which to filter the <tt>ListTasks</tt>
--   results. Specifying a <tt>family</tt> limits the results to tasks that
--   belong to that family.
ltFamily :: Lens' ListTasks (Maybe Text)

-- | The <tt>nextToken</tt> value returned from a previous paginated
--   <tt>ListTasks</tt> request where <tt>maxResults</tt> was used and the
--   results exceeded the value of that parameter. Pagination continues
--   from the end of the previous results that returned the
--   <tt>nextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
ltNextToken :: Lens' ListTasks (Maybe Text)

-- | The <tt>startedBy</tt> value with which to filter the task results.
--   Specifying a <tt>startedBy</tt> value limits the results to tasks that
--   were started with that value.
ltStartedBy :: Lens' ListTasks (Maybe Text)

-- | The name of the service with which to filter the <tt>ListTasks</tt>
--   results. Specifying a <tt>serviceName</tt> limits the results to tasks
--   that belong to that service.
ltServiceName :: Lens' ListTasks (Maybe Text)

-- | The container instance ID or full Amazon Resource Name (ARN) of the
--   container instance with which to filter the <tt>ListTasks</tt>
--   results. Specifying a <tt>containerInstance</tt> limits the results to
--   tasks that belong to that container instance.
ltContainerInstance :: Lens' ListTasks (Maybe Text)

-- | The maximum number of task results returned by <tt>ListTasks</tt> in
--   paginated output. When this parameter is used, <tt>ListTasks</tt> only
--   returns <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another <tt>ListTasks</tt>
--   request with the returned <tt>nextToken</tt> value. This value can be
--   between 1 and 100. If this parameter is not used, then
--   <tt>ListTasks</tt> returns up to 100 results and a <tt>nextToken</tt>
--   value if applicable.
ltMaxResults :: Lens' ListTasks (Maybe Int)

-- | Creates a value of <a>ListTasksResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrsNextToken</a> - The <tt>nextToken</tt> value to include in
--   a future <tt>ListTasks</tt> request. When the results of a
--   <tt>ListTasks</tt> request exceed <tt>maxResults</tt> , this value can
--   be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>ltrsTaskARNs</a> - The list of task Amazon Resource Name (ARN)
--   entries for the <tt>ListTasks</tt> request.</li>
--   <li><a>ltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTasksResponse :: Int -> ListTasksResponse

-- | <i>See:</i> <a>listTasksResponse</a> smart constructor.
data ListTasksResponse

-- | The <tt>nextToken</tt> value to include in a future <tt>ListTasks</tt>
--   request. When the results of a <tt>ListTasks</tt> request exceed
--   <tt>maxResults</tt> , this value can be used to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.
ltrsNextToken :: Lens' ListTasksResponse (Maybe Text)

-- | The list of task Amazon Resource Name (ARN) entries for the
--   <tt>ListTasks</tt> request.
ltrsTaskARNs :: Lens' ListTasksResponse [Text]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ltrsResponseStatus :: Lens' ListTasksResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.ListTasks.ListTasksResponse
instance Data.Data.Data Network.AWS.ECS.ListTasks.ListTasksResponse
instance GHC.Show.Show Network.AWS.ECS.ListTasks.ListTasksResponse
instance GHC.Read.Read Network.AWS.ECS.ListTasks.ListTasksResponse
instance GHC.Classes.Eq Network.AWS.ECS.ListTasks.ListTasksResponse
instance GHC.Generics.Generic Network.AWS.ECS.ListTasks.ListTasks
instance Data.Data.Data Network.AWS.ECS.ListTasks.ListTasks
instance GHC.Show.Show Network.AWS.ECS.ListTasks.ListTasks
instance GHC.Read.Read Network.AWS.ECS.ListTasks.ListTasks
instance GHC.Classes.Eq Network.AWS.ECS.ListTasks.ListTasks
instance Network.AWS.Pager.AWSPager Network.AWS.ECS.ListTasks.ListTasks
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListTasks.ListTasks
instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListTasks.ListTasks
instance Control.DeepSeq.NFData Network.AWS.ECS.ListTasks.ListTasks
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListTasks.ListTasks
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListTasks.ListTasks
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListTasks.ListTasks
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListTasks.ListTasks
instance Control.DeepSeq.NFData Network.AWS.ECS.ListTasks.ListTasksResponse


-- | Returns a list of task definitions that are registered to your
--   account. You can filter the results by family name with the
--   <tt>familyPrefix</tt> parameter or by status with the <tt>status</tt>
--   parameter.
--   
--   This operation returns paginated results.
module Network.AWS.ECS.ListTaskDefinitions

-- | Creates a value of <a>ListTaskDefinitions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltdStatus</a> - The task definition status with which to filter
--   the <tt>ListTaskDefinitions</tt> results. By default, only
--   <tt>ACTIVE</tt> task definitions are listed. By setting this parameter
--   to <tt>INACTIVE</tt> , you can view task definitions that are
--   <tt>INACTIVE</tt> as long as an active task or service still
--   references them. If you paginate the resulting output, be sure to keep
--   the <tt>status</tt> value constant in each subsequent request.</li>
--   <li><a>ltdFamilyPrefix</a> - The full family name with which to filter
--   the <tt>ListTaskDefinitions</tt> results. Specifying a
--   <tt>familyPrefix</tt> limits the listed task definitions to task
--   definition revisions that belong to that family.</li>
--   <li><a>ltdNextToken</a> - The <tt>nextToken</tt> value returned from a
--   previous paginated <tt>ListTaskDefinitions</tt> request where
--   <tt>maxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>nextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>ltdSort</a> - The order in which to sort the results. Valid
--   values are <tt>ASC</tt> and <tt>DESC</tt> . By default (<tt>ASC</tt>
--   ), task definitions are listed lexicographically by family name and in
--   ascending numerical order by revision so that the newest task
--   definitions in a family are listed last. Setting this parameter to
--   <tt>DESC</tt> reverses the sort order on family name and revision so
--   that the newest task definitions in a family are listed first.</li>
--   <li><a>ltdMaxResults</a> - The maximum number of task definition
--   results returned by <tt>ListTaskDefinitions</tt> in paginated output.
--   When this parameter is used, <tt>ListTaskDefinitions</tt> only returns
--   <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another
--   <tt>ListTaskDefinitions</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListTaskDefinitions</tt> returns up to
--   100 results and a <tt>nextToken</tt> value if applicable.</li>
--   </ul>
listTaskDefinitions :: ListTaskDefinitions

-- | <i>See:</i> <a>listTaskDefinitions</a> smart constructor.
data ListTaskDefinitions

-- | The task definition status with which to filter the
--   <tt>ListTaskDefinitions</tt> results. By default, only <tt>ACTIVE</tt>
--   task definitions are listed. By setting this parameter to
--   <tt>INACTIVE</tt> , you can view task definitions that are
--   <tt>INACTIVE</tt> as long as an active task or service still
--   references them. If you paginate the resulting output, be sure to keep
--   the <tt>status</tt> value constant in each subsequent request.
ltdStatus :: Lens' ListTaskDefinitions (Maybe TaskDefinitionStatus)

-- | The full family name with which to filter the
--   <tt>ListTaskDefinitions</tt> results. Specifying a
--   <tt>familyPrefix</tt> limits the listed task definitions to task
--   definition revisions that belong to that family.
ltdFamilyPrefix :: Lens' ListTaskDefinitions (Maybe Text)

-- | The <tt>nextToken</tt> value returned from a previous paginated
--   <tt>ListTaskDefinitions</tt> request where <tt>maxResults</tt> was
--   used and the results exceeded the value of that parameter. Pagination
--   continues from the end of the previous results that returned the
--   <tt>nextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
ltdNextToken :: Lens' ListTaskDefinitions (Maybe Text)

-- | The order in which to sort the results. Valid values are <tt>ASC</tt>
--   and <tt>DESC</tt> . By default (<tt>ASC</tt> ), task definitions are
--   listed lexicographically by family name and in ascending numerical
--   order by revision so that the newest task definitions in a family are
--   listed last. Setting this parameter to <tt>DESC</tt> reverses the sort
--   order on family name and revision so that the newest task definitions
--   in a family are listed first.
ltdSort :: Lens' ListTaskDefinitions (Maybe SortOrder)

-- | The maximum number of task definition results returned by
--   <tt>ListTaskDefinitions</tt> in paginated output. When this parameter
--   is used, <tt>ListTaskDefinitions</tt> only returns <tt>maxResults</tt>
--   results in a single page along with a <tt>nextToken</tt> response
--   element. The remaining results of the initial request can be seen by
--   sending another <tt>ListTaskDefinitions</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListTaskDefinitions</tt> returns up to
--   100 results and a <tt>nextToken</tt> value if applicable.
ltdMaxResults :: Lens' ListTaskDefinitions (Maybe Int)

-- | Creates a value of <a>ListTaskDefinitionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltdrsTaskDefinitionARNs</a> - The list of task definition
--   Amazon Resource Name (ARN) entries for the
--   <tt>ListTaskDefinitions</tt> request.</li>
--   <li><a>ltdrsNextToken</a> - The <tt>nextToken</tt> value to include in
--   a future <tt>ListTaskDefinitions</tt> request. When the results of a
--   <tt>ListTaskDefinitions</tt> request exceed <tt>maxResults</tt> , this
--   value can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>ltdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTaskDefinitionsResponse :: Int -> ListTaskDefinitionsResponse

-- | <i>See:</i> <a>listTaskDefinitionsResponse</a> smart constructor.
data ListTaskDefinitionsResponse

-- | The list of task definition Amazon Resource Name (ARN) entries for the
--   <tt>ListTaskDefinitions</tt> request.
ltdrsTaskDefinitionARNs :: Lens' ListTaskDefinitionsResponse [Text]

-- | The <tt>nextToken</tt> value to include in a future
--   <tt>ListTaskDefinitions</tt> request. When the results of a
--   <tt>ListTaskDefinitions</tt> request exceed <tt>maxResults</tt> , this
--   value can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
ltdrsNextToken :: Lens' ListTaskDefinitionsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ltdrsResponseStatus :: Lens' ListTaskDefinitionsResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitionsResponse
instance Data.Data.Data Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitionsResponse
instance GHC.Show.Show Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitionsResponse
instance GHC.Read.Read Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitionsResponse
instance GHC.Classes.Eq Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitionsResponse
instance GHC.Generics.Generic Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Data.Data.Data Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance GHC.Show.Show Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance GHC.Read.Read Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance GHC.Classes.Eq Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Network.AWS.Pager.AWSPager Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Control.DeepSeq.NFData Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitions
instance Control.DeepSeq.NFData Network.AWS.ECS.ListTaskDefinitions.ListTaskDefinitionsResponse


-- | Returns a list of task definition families that are registered to your
--   account (which may include task definition families that no longer
--   have any <tt>ACTIVE</tt> task definition revisions).
--   
--   You can filter out task definition families that do not contain any
--   <tt>ACTIVE</tt> task definition revisions by setting the
--   <tt>status</tt> parameter to <tt>ACTIVE</tt> . You can also filter the
--   results with the <tt>familyPrefix</tt> parameter.
--   
--   This operation returns paginated results.
module Network.AWS.ECS.ListTaskDefinitionFamilies

-- | Creates a value of <a>ListTaskDefinitionFamilies</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltdfStatus</a> - The task definition family status with which
--   to filter the <tt>ListTaskDefinitionFamilies</tt> results. By default,
--   both <tt>ACTIVE</tt> and <tt>INACTIVE</tt> task definition families
--   are listed. If this parameter is set to <tt>ACTIVE</tt> , only task
--   definition families that have an <tt>ACTIVE</tt> task definition
--   revision are returned. If this parameter is set to <tt>INACTIVE</tt> ,
--   only task definition families that do not have any <tt>ACTIVE</tt>
--   task definition revisions are returned. If you paginate the resulting
--   output, be sure to keep the <tt>status</tt> value constant in each
--   subsequent request.</li>
--   <li><a>ltdfFamilyPrefix</a> - The <tt>familyPrefix</tt> is a string
--   that is used to filter the results of
--   <tt>ListTaskDefinitionFamilies</tt> . If you specify a
--   <tt>familyPrefix</tt> , only task definition family names that begin
--   with the <tt>familyPrefix</tt> string are returned.</li>
--   <li><a>ltdfNextToken</a> - The <tt>nextToken</tt> value returned from
--   a previous paginated <tt>ListTaskDefinitionFamilies</tt> request where
--   <tt>maxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>nextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>ltdfMaxResults</a> - The maximum number of task definition
--   family results returned by <tt>ListTaskDefinitionFamilies</tt> in
--   paginated output. When this parameter is used,
--   <tt>ListTaskDefinitions</tt> only returns <tt>maxResults</tt> results
--   in a single page along with a <tt>nextToken</tt> response element. The
--   remaining results of the initial request can be seen by sending
--   another <tt>ListTaskDefinitionFamilies</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListTaskDefinitionFamilies</tt>
--   returns up to 100 results and a <tt>nextToken</tt> value if
--   applicable.</li>
--   </ul>
listTaskDefinitionFamilies :: ListTaskDefinitionFamilies

-- | <i>See:</i> <a>listTaskDefinitionFamilies</a> smart constructor.
data ListTaskDefinitionFamilies

-- | The task definition family status with which to filter the
--   <tt>ListTaskDefinitionFamilies</tt> results. By default, both
--   <tt>ACTIVE</tt> and <tt>INACTIVE</tt> task definition families are
--   listed. If this parameter is set to <tt>ACTIVE</tt> , only task
--   definition families that have an <tt>ACTIVE</tt> task definition
--   revision are returned. If this parameter is set to <tt>INACTIVE</tt> ,
--   only task definition families that do not have any <tt>ACTIVE</tt>
--   task definition revisions are returned. If you paginate the resulting
--   output, be sure to keep the <tt>status</tt> value constant in each
--   subsequent request.
ltdfStatus :: Lens' ListTaskDefinitionFamilies (Maybe TaskDefinitionFamilyStatus)

-- | The <tt>familyPrefix</tt> is a string that is used to filter the
--   results of <tt>ListTaskDefinitionFamilies</tt> . If you specify a
--   <tt>familyPrefix</tt> , only task definition family names that begin
--   with the <tt>familyPrefix</tt> string are returned.
ltdfFamilyPrefix :: Lens' ListTaskDefinitionFamilies (Maybe Text)

-- | The <tt>nextToken</tt> value returned from a previous paginated
--   <tt>ListTaskDefinitionFamilies</tt> request where <tt>maxResults</tt>
--   was used and the results exceeded the value of that parameter.
--   Pagination continues from the end of the previous results that
--   returned the <tt>nextToken</tt> value. This value is <tt>null</tt>
--   when there are no more results to return.
ltdfNextToken :: Lens' ListTaskDefinitionFamilies (Maybe Text)

-- | The maximum number of task definition family results returned by
--   <tt>ListTaskDefinitionFamilies</tt> in paginated output. When this
--   parameter is used, <tt>ListTaskDefinitions</tt> only returns
--   <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another
--   <tt>ListTaskDefinitionFamilies</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListTaskDefinitionFamilies</tt>
--   returns up to 100 results and a <tt>nextToken</tt> value if
--   applicable.
ltdfMaxResults :: Lens' ListTaskDefinitionFamilies (Maybe Int)

-- | Creates a value of <a>ListTaskDefinitionFamiliesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltdfrsFamilies</a> - The list of task definition family names
--   that match the <tt>ListTaskDefinitionFamilies</tt> request.</li>
--   <li><a>ltdfrsNextToken</a> - The <tt>nextToken</tt> value to include
--   in a future <tt>ListTaskDefinitionFamilies</tt> request. When the
--   results of a <tt>ListTaskDefinitionFamilies</tt> request exceed
--   <tt>maxResults</tt> , this value can be used to retrieve the next page
--   of results. This value is <tt>null</tt> when there are no more results
--   to return.</li>
--   <li><a>ltdfrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTaskDefinitionFamiliesResponse :: Int -> ListTaskDefinitionFamiliesResponse

-- | <i>See:</i> <a>listTaskDefinitionFamiliesResponse</a> smart
--   constructor.
data ListTaskDefinitionFamiliesResponse

-- | The list of task definition family names that match the
--   <tt>ListTaskDefinitionFamilies</tt> request.
ltdfrsFamilies :: Lens' ListTaskDefinitionFamiliesResponse [Text]

-- | The <tt>nextToken</tt> value to include in a future
--   <tt>ListTaskDefinitionFamilies</tt> request. When the results of a
--   <tt>ListTaskDefinitionFamilies</tt> request exceed <tt>maxResults</tt>
--   , this value can be used to retrieve the next page of results. This
--   value is <tt>null</tt> when there are no more results to return.
ltdfrsNextToken :: Lens' ListTaskDefinitionFamiliesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ltdfrsResponseStatus :: Lens' ListTaskDefinitionFamiliesResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamiliesResponse
instance Data.Data.Data Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamiliesResponse
instance GHC.Show.Show Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamiliesResponse
instance GHC.Read.Read Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamiliesResponse
instance GHC.Classes.Eq Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamiliesResponse
instance GHC.Generics.Generic Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Data.Data.Data Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance GHC.Show.Show Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance GHC.Read.Read Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance GHC.Classes.Eq Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Network.AWS.Pager.AWSPager Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Control.DeepSeq.NFData Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamilies
instance Control.DeepSeq.NFData Network.AWS.ECS.ListTaskDefinitionFamilies.ListTaskDefinitionFamiliesResponse


-- | Lists the services that are running in a specified cluster.
--   
--   This operation returns paginated results.
module Network.AWS.ECS.ListServices

-- | Creates a value of <a>ListServices</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the services to list. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>lsNextToken</a> - The <tt>nextToken</tt> value returned from a
--   previous paginated <tt>ListServices</tt> request where
--   <tt>maxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>nextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>lsMaxResults</a> - The maximum number of container instance
--   results returned by <tt>ListServices</tt> in paginated output. When
--   this parameter is used, <tt>ListServices</tt> only returns
--   <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another <tt>ListServices</tt>
--   request with the returned <tt>nextToken</tt> value. This value can be
--   between 1 and 10. If this parameter is not used, then
--   <tt>ListServices</tt> returns up to 10 results and a
--   <tt>nextToken</tt> value if applicable.</li>
--   </ul>
listServices :: ListServices

-- | <i>See:</i> <a>listServices</a> smart constructor.
data ListServices

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the services to list. If you do not specify a cluster, the
--   default cluster is assumed.
lsCluster :: Lens' ListServices (Maybe Text)

-- | The <tt>nextToken</tt> value returned from a previous paginated
--   <tt>ListServices</tt> request where <tt>maxResults</tt> was used and
--   the results exceeded the value of that parameter. Pagination continues
--   from the end of the previous results that returned the
--   <tt>nextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
lsNextToken :: Lens' ListServices (Maybe Text)

-- | The maximum number of container instance results returned by
--   <tt>ListServices</tt> in paginated output. When this parameter is
--   used, <tt>ListServices</tt> only returns <tt>maxResults</tt> results
--   in a single page along with a <tt>nextToken</tt> response element. The
--   remaining results of the initial request can be seen by sending
--   another <tt>ListServices</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 10. If this
--   parameter is not used, then <tt>ListServices</tt> returns up to 10
--   results and a <tt>nextToken</tt> value if applicable.
lsMaxResults :: Lens' ListServices (Maybe Int)

-- | Creates a value of <a>ListServicesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsrsServiceARNs</a> - The list of full Amazon Resource Name
--   (ARN) entries for each service associated with the specified
--   cluster.</li>
--   <li><a>lsrsNextToken</a> - The <tt>nextToken</tt> value to include in
--   a future <tt>ListServices</tt> request. When the results of a
--   <tt>ListServices</tt> request exceed <tt>maxResults</tt> , this value
--   can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>lsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listServicesResponse :: Int -> ListServicesResponse

-- | <i>See:</i> <a>listServicesResponse</a> smart constructor.
data ListServicesResponse

-- | The list of full Amazon Resource Name (ARN) entries for each service
--   associated with the specified cluster.
lsrsServiceARNs :: Lens' ListServicesResponse [Text]

-- | The <tt>nextToken</tt> value to include in a future
--   <tt>ListServices</tt> request. When the results of a
--   <tt>ListServices</tt> request exceed <tt>maxResults</tt> , this value
--   can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
lsrsNextToken :: Lens' ListServicesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lsrsResponseStatus :: Lens' ListServicesResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.ListServices.ListServicesResponse
instance Data.Data.Data Network.AWS.ECS.ListServices.ListServicesResponse
instance GHC.Show.Show Network.AWS.ECS.ListServices.ListServicesResponse
instance GHC.Read.Read Network.AWS.ECS.ListServices.ListServicesResponse
instance GHC.Classes.Eq Network.AWS.ECS.ListServices.ListServicesResponse
instance GHC.Generics.Generic Network.AWS.ECS.ListServices.ListServices
instance Data.Data.Data Network.AWS.ECS.ListServices.ListServices
instance GHC.Show.Show Network.AWS.ECS.ListServices.ListServices
instance GHC.Read.Read Network.AWS.ECS.ListServices.ListServices
instance GHC.Classes.Eq Network.AWS.ECS.ListServices.ListServices
instance Network.AWS.Pager.AWSPager Network.AWS.ECS.ListServices.ListServices
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListServices.ListServices
instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListServices.ListServices
instance Control.DeepSeq.NFData Network.AWS.ECS.ListServices.ListServices
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListServices.ListServices
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListServices.ListServices
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListServices.ListServices
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListServices.ListServices
instance Control.DeepSeq.NFData Network.AWS.ECS.ListServices.ListServicesResponse


-- | Returns a list of container instances in a specified cluster.
--   
--   This operation returns paginated results.
module Network.AWS.ECS.ListContainerInstances

-- | Creates a value of <a>ListContainerInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lciCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the container instances to list. If
--   you do not specify a cluster, the default cluster is assumed.</li>
--   <li><a>lciNextToken</a> - The <tt>nextToken</tt> value returned from a
--   previous paginated <tt>ListContainerInstances</tt> request where
--   <tt>maxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>nextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>lciMaxResults</a> - The maximum number of container instance
--   results returned by <tt>ListContainerInstances</tt> in paginated
--   output. When this parameter is used, <tt>ListContainerInstances</tt>
--   only returns <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another
--   <tt>ListContainerInstances</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListContainerInstances</tt> returns up
--   to 100 results and a <tt>nextToken</tt> value if applicable.</li>
--   </ul>
listContainerInstances :: ListContainerInstances

-- | <i>See:</i> <a>listContainerInstances</a> smart constructor.
data ListContainerInstances

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the container instances to list. If you do not specify a
--   cluster, the default cluster is assumed.
lciCluster :: Lens' ListContainerInstances (Maybe Text)

-- | The <tt>nextToken</tt> value returned from a previous paginated
--   <tt>ListContainerInstances</tt> request where <tt>maxResults</tt> was
--   used and the results exceeded the value of that parameter. Pagination
--   continues from the end of the previous results that returned the
--   <tt>nextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
lciNextToken :: Lens' ListContainerInstances (Maybe Text)

-- | The maximum number of container instance results returned by
--   <tt>ListContainerInstances</tt> in paginated output. When this
--   parameter is used, <tt>ListContainerInstances</tt> only returns
--   <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another
--   <tt>ListContainerInstances</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListContainerInstances</tt> returns up
--   to 100 results and a <tt>nextToken</tt> value if applicable.
lciMaxResults :: Lens' ListContainerInstances (Maybe Int)

-- | Creates a value of <a>ListContainerInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcirsContainerInstanceARNs</a> - The list of container
--   instances with full Amazon Resource Name (ARN) entries for each
--   container instance associated with the specified cluster.</li>
--   <li><a>lcirsNextToken</a> - The <tt>nextToken</tt> value to include in
--   a future <tt>ListContainerInstances</tt> request. When the results of
--   a <tt>ListContainerInstances</tt> request exceed <tt>maxResults</tt> ,
--   this value can be used to retrieve the next page of results. This
--   value is <tt>null</tt> when there are no more results to return.</li>
--   <li><a>lcirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listContainerInstancesResponse :: Int -> ListContainerInstancesResponse

-- | <i>See:</i> <a>listContainerInstancesResponse</a> smart constructor.
data ListContainerInstancesResponse

-- | The list of container instances with full Amazon Resource Name (ARN)
--   entries for each container instance associated with the specified
--   cluster.
lcirsContainerInstanceARNs :: Lens' ListContainerInstancesResponse [Text]

-- | The <tt>nextToken</tt> value to include in a future
--   <tt>ListContainerInstances</tt> request. When the results of a
--   <tt>ListContainerInstances</tt> request exceed <tt>maxResults</tt> ,
--   this value can be used to retrieve the next page of results. This
--   value is <tt>null</tt> when there are no more results to return.
lcirsNextToken :: Lens' ListContainerInstancesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lcirsResponseStatus :: Lens' ListContainerInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.ListContainerInstances.ListContainerInstancesResponse
instance Data.Data.Data Network.AWS.ECS.ListContainerInstances.ListContainerInstancesResponse
instance GHC.Show.Show Network.AWS.ECS.ListContainerInstances.ListContainerInstancesResponse
instance GHC.Read.Read Network.AWS.ECS.ListContainerInstances.ListContainerInstancesResponse
instance GHC.Classes.Eq Network.AWS.ECS.ListContainerInstances.ListContainerInstancesResponse
instance GHC.Generics.Generic Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Data.Data.Data Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance GHC.Show.Show Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance GHC.Read.Read Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance GHC.Classes.Eq Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Network.AWS.Pager.AWSPager Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Control.DeepSeq.NFData Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListContainerInstances.ListContainerInstances
instance Control.DeepSeq.NFData Network.AWS.ECS.ListContainerInstances.ListContainerInstancesResponse


-- | Returns a list of existing clusters.
--   
--   This operation returns paginated results.
module Network.AWS.ECS.ListClusters

-- | Creates a value of <a>ListClusters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcNextToken</a> - The <tt>nextToken</tt> value returned from a
--   previous paginated <tt>ListClusters</tt> request where
--   <tt>maxResults</tt> was used and the results exceeded the value of
--   that parameter. Pagination continues from the end of the previous
--   results that returned the <tt>nextToken</tt> value. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>lcMaxResults</a> - The maximum number of cluster results
--   returned by <tt>ListClusters</tt> in paginated output. When this
--   parameter is used, <tt>ListClusters</tt> only returns
--   <tt>maxResults</tt> results in a single page along with a
--   <tt>nextToken</tt> response element. The remaining results of the
--   initial request can be seen by sending another <tt>ListClusters</tt>
--   request with the returned <tt>nextToken</tt> value. This value can be
--   between 1 and 100. If this parameter is not used, then
--   <tt>ListClusters</tt> returns up to 100 results and a
--   <tt>nextToken</tt> value if applicable.</li>
--   </ul>
listClusters :: ListClusters

-- | <i>See:</i> <a>listClusters</a> smart constructor.
data ListClusters

-- | The <tt>nextToken</tt> value returned from a previous paginated
--   <tt>ListClusters</tt> request where <tt>maxResults</tt> was used and
--   the results exceeded the value of that parameter. Pagination continues
--   from the end of the previous results that returned the
--   <tt>nextToken</tt> value. This value is <tt>null</tt> when there are
--   no more results to return.
lcNextToken :: Lens' ListClusters (Maybe Text)

-- | The maximum number of cluster results returned by
--   <tt>ListClusters</tt> in paginated output. When this parameter is
--   used, <tt>ListClusters</tt> only returns <tt>maxResults</tt> results
--   in a single page along with a <tt>nextToken</tt> response element. The
--   remaining results of the initial request can be seen by sending
--   another <tt>ListClusters</tt> request with the returned
--   <tt>nextToken</tt> value. This value can be between 1 and 100. If this
--   parameter is not used, then <tt>ListClusters</tt> returns up to 100
--   results and a <tt>nextToken</tt> value if applicable.
lcMaxResults :: Lens' ListClusters (Maybe Int)

-- | Creates a value of <a>ListClustersResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcrsClusterARNs</a> - The list of full Amazon Resource Name
--   (ARN) entries for each cluster associated with your account.</li>
--   <li><a>lcrsNextToken</a> - The <tt>nextToken</tt> value to include in
--   a future <tt>ListClusters</tt> request. When the results of a
--   <tt>ListClusters</tt> request exceed <tt>maxResults</tt> , this value
--   can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.</li>
--   <li><a>lcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listClustersResponse :: Int -> ListClustersResponse

-- | <i>See:</i> <a>listClustersResponse</a> smart constructor.
data ListClustersResponse

-- | The list of full Amazon Resource Name (ARN) entries for each cluster
--   associated with your account.
lcrsClusterARNs :: Lens' ListClustersResponse [Text]

-- | The <tt>nextToken</tt> value to include in a future
--   <tt>ListClusters</tt> request. When the results of a
--   <tt>ListClusters</tt> request exceed <tt>maxResults</tt> , this value
--   can be used to retrieve the next page of results. This value is
--   <tt>null</tt> when there are no more results to return.
lcrsNextToken :: Lens' ListClustersResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lcrsResponseStatus :: Lens' ListClustersResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.ListClusters.ListClustersResponse
instance Data.Data.Data Network.AWS.ECS.ListClusters.ListClustersResponse
instance GHC.Show.Show Network.AWS.ECS.ListClusters.ListClustersResponse
instance GHC.Read.Read Network.AWS.ECS.ListClusters.ListClustersResponse
instance GHC.Classes.Eq Network.AWS.ECS.ListClusters.ListClustersResponse
instance GHC.Generics.Generic Network.AWS.ECS.ListClusters.ListClusters
instance Data.Data.Data Network.AWS.ECS.ListClusters.ListClusters
instance GHC.Show.Show Network.AWS.ECS.ListClusters.ListClusters
instance GHC.Read.Read Network.AWS.ECS.ListClusters.ListClusters
instance GHC.Classes.Eq Network.AWS.ECS.ListClusters.ListClusters
instance Network.AWS.Pager.AWSPager Network.AWS.ECS.ListClusters.ListClusters
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListClusters.ListClusters
instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListClusters.ListClusters
instance Control.DeepSeq.NFData Network.AWS.ECS.ListClusters.ListClusters
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListClusters.ListClusters
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListClusters.ListClusters
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListClusters.ListClusters
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListClusters.ListClusters
instance Control.DeepSeq.NFData Network.AWS.ECS.ListClusters.ListClustersResponse


-- | Returns an endpoint for the Amazon EC2 Container Service agent to poll
--   for updates.
module Network.AWS.ECS.DiscoverPollEndpoint

-- | Creates a value of <a>DiscoverPollEndpoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpeCluster</a> - The cluster that the container instance
--   belongs to.</li>
--   <li><a>dpeContainerInstance</a> - The container instance ID or full
--   Amazon Resource Name (ARN) of the container instance. The ARN contains
--   the <tt>arn:aws:ecs</tt> namespace, followed by the region of the
--   container instance, the AWS account ID of the container instance
--   owner, the <tt>container-instance</tt> namespace, and then the
--   container instance ID. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .</li>
--   </ul>
discoverPollEndpoint :: DiscoverPollEndpoint

-- | <i>See:</i> <a>discoverPollEndpoint</a> smart constructor.
data DiscoverPollEndpoint

-- | The cluster that the container instance belongs to.
dpeCluster :: Lens' DiscoverPollEndpoint (Maybe Text)

-- | The container instance ID or full Amazon Resource Name (ARN) of the
--   container instance. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the container instance, the AWS
--   account ID of the container instance owner, the
--   <tt>container-instance</tt> namespace, and then the container instance
--   ID. For example, <tt>arn:aws:ecs:<i>region</i> :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .
dpeContainerInstance :: Lens' DiscoverPollEndpoint (Maybe Text)

-- | Creates a value of <a>DiscoverPollEndpointResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpersTelemetryEndpoint</a> - The telemetry endpoint for the
--   Amazon ECS agent.</li>
--   <li><a>dpersEndpoint</a> - The endpoint for the Amazon ECS agent to
--   poll.</li>
--   <li><a>dpersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
discoverPollEndpointResponse :: Int -> DiscoverPollEndpointResponse

-- | <i>See:</i> <a>discoverPollEndpointResponse</a> smart constructor.
data DiscoverPollEndpointResponse

-- | The telemetry endpoint for the Amazon ECS agent.
dpersTelemetryEndpoint :: Lens' DiscoverPollEndpointResponse (Maybe Text)

-- | The endpoint for the Amazon ECS agent to poll.
dpersEndpoint :: Lens' DiscoverPollEndpointResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dpersResponseStatus :: Lens' DiscoverPollEndpointResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpointResponse
instance Data.Data.Data Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpointResponse
instance GHC.Show.Show Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpointResponse
instance GHC.Read.Read Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpointResponse
instance GHC.Classes.Eq Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpointResponse
instance GHC.Generics.Generic Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Data.Data.Data Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance GHC.Show.Show Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance GHC.Read.Read Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance GHC.Classes.Eq Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Control.DeepSeq.NFData Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpoint
instance Control.DeepSeq.NFData Network.AWS.ECS.DiscoverPollEndpoint.DiscoverPollEndpointResponse


-- | Describes a specified task or tasks.
module Network.AWS.ECS.DescribeTasks

-- | Creates a value of <a>DescribeTasks</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the task to describe. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>dtTasks</a> - A space-separated list of task IDs or full Amazon
--   Resource Name (ARN) entries.</li>
--   </ul>
describeTasks :: DescribeTasks

-- | <i>See:</i> <a>describeTasks</a> smart constructor.
data DescribeTasks

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the task to describe. If you do not specify a cluster, the
--   default cluster is assumed.
dtCluster :: Lens' DescribeTasks (Maybe Text)

-- | A space-separated list of task IDs or full Amazon Resource Name (ARN)
--   entries.
dtTasks :: Lens' DescribeTasks [Text]

-- | Creates a value of <a>DescribeTasksResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtrsFailures</a> - Any failures associated with the call.</li>
--   <li><a>dtrsTasks</a> - The list of tasks.</li>
--   <li><a>dtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTasksResponse :: Int -> DescribeTasksResponse

-- | <i>See:</i> <a>describeTasksResponse</a> smart constructor.
data DescribeTasksResponse

-- | Any failures associated with the call.
dtrsFailures :: Lens' DescribeTasksResponse [Failure]

-- | The list of tasks.
dtrsTasks :: Lens' DescribeTasksResponse [Task]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dtrsResponseStatus :: Lens' DescribeTasksResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DescribeTasks.DescribeTasksResponse
instance Data.Data.Data Network.AWS.ECS.DescribeTasks.DescribeTasksResponse
instance GHC.Show.Show Network.AWS.ECS.DescribeTasks.DescribeTasksResponse
instance GHC.Read.Read Network.AWS.ECS.DescribeTasks.DescribeTasksResponse
instance GHC.Classes.Eq Network.AWS.ECS.DescribeTasks.DescribeTasksResponse
instance GHC.Generics.Generic Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Data.Data.Data Network.AWS.ECS.DescribeTasks.DescribeTasks
instance GHC.Show.Show Network.AWS.ECS.DescribeTasks.DescribeTasks
instance GHC.Read.Read Network.AWS.ECS.DescribeTasks.DescribeTasks
instance GHC.Classes.Eq Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DescribeTasks.DescribeTasks
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeTasks.DescribeTasksResponse


-- | Describes a task definition. You can specify a <tt>family</tt> and
--   <tt>revision</tt> to find information about a specific task
--   definition, or you can simply specify the family to find the latest
--   <tt>ACTIVE</tt> revision in that family.
module Network.AWS.ECS.DescribeTaskDefinition

-- | Creates a value of <a>DescribeTaskDefinition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtdTaskDefinition</a> - The <tt>family</tt> for the latest
--   <tt>ACTIVE</tt> revision, <tt>family</tt> and <tt>revision</tt>
--   (<tt>family:revision</tt> ) for a specific revision in the family, or
--   full Amazon Resource Name (ARN) of the task definition to
--   describe.</li>
--   </ul>
describeTaskDefinition :: Text -> DescribeTaskDefinition

-- | <i>See:</i> <a>describeTaskDefinition</a> smart constructor.
data DescribeTaskDefinition

-- | The <tt>family</tt> for the latest <tt>ACTIVE</tt> revision,
--   <tt>family</tt> and <tt>revision</tt> (<tt>family:revision</tt> ) for
--   a specific revision in the family, or full Amazon Resource Name (ARN)
--   of the task definition to describe.
dtdTaskDefinition :: Lens' DescribeTaskDefinition Text

-- | Creates a value of <a>DescribeTaskDefinitionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>desrsTaskDefinition</a> - The full task definition
--   description.</li>
--   <li><a>desrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTaskDefinitionResponse :: Int -> DescribeTaskDefinitionResponse

-- | <i>See:</i> <a>describeTaskDefinitionResponse</a> smart constructor.
data DescribeTaskDefinitionResponse

-- | The full task definition description.
desrsTaskDefinition :: Lens' DescribeTaskDefinitionResponse (Maybe TaskDefinition)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
desrsResponseStatus :: Lens' DescribeTaskDefinitionResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinitionResponse
instance Data.Data.Data Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinitionResponse
instance GHC.Show.Show Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinitionResponse
instance GHC.Read.Read Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinitionResponse
instance GHC.Classes.Eq Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinitionResponse
instance GHC.Generics.Generic Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Data.Data.Data Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance GHC.Show.Show Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance GHC.Read.Read Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance GHC.Classes.Eq Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinition
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeTaskDefinition.DescribeTaskDefinitionResponse


-- | Describes the specified services running in your cluster.
module Network.AWS.ECS.DescribeServices

-- | Creates a value of <a>DescribeServices</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dCluster</a> - The name of the cluster that hosts the service
--   to describe. If you do not specify a cluster, the default cluster is
--   assumed.</li>
--   <li><a>dServices</a> - A list of services to describe. You may specify
--   up to 10 services to describe in a single operation.</li>
--   </ul>
describeServices :: DescribeServices

-- | <i>See:</i> <a>describeServices</a> smart constructor.
data DescribeServices

-- | The name of the cluster that hosts the service to describe. If you do
--   not specify a cluster, the default cluster is assumed.
dCluster :: Lens' DescribeServices (Maybe Text)

-- | A list of services to describe. You may specify up to 10 services to
--   describe in a single operation.
dServices :: Lens' DescribeServices [Text]

-- | Creates a value of <a>DescribeServicesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dssrsFailures</a> - Any failures associated with the call.</li>
--   <li><a>dssrsServices</a> - The list of services described.</li>
--   <li><a>dssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeServicesResponse :: Int -> DescribeServicesResponse

-- | <i>See:</i> <a>describeServicesResponse</a> smart constructor.
data DescribeServicesResponse

-- | Any failures associated with the call.
dssrsFailures :: Lens' DescribeServicesResponse [Failure]

-- | The list of services described.
dssrsServices :: Lens' DescribeServicesResponse [ContainerService]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dssrsResponseStatus :: Lens' DescribeServicesResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DescribeServices.DescribeServicesResponse
instance Data.Data.Data Network.AWS.ECS.DescribeServices.DescribeServicesResponse
instance GHC.Show.Show Network.AWS.ECS.DescribeServices.DescribeServicesResponse
instance GHC.Read.Read Network.AWS.ECS.DescribeServices.DescribeServicesResponse
instance GHC.Classes.Eq Network.AWS.ECS.DescribeServices.DescribeServicesResponse
instance GHC.Generics.Generic Network.AWS.ECS.DescribeServices.DescribeServices
instance Data.Data.Data Network.AWS.ECS.DescribeServices.DescribeServices
instance GHC.Show.Show Network.AWS.ECS.DescribeServices.DescribeServices
instance GHC.Read.Read Network.AWS.ECS.DescribeServices.DescribeServices
instance GHC.Classes.Eq Network.AWS.ECS.DescribeServices.DescribeServices
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DescribeServices.DescribeServices
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DescribeServices.DescribeServices
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeServices.DescribeServices
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DescribeServices.DescribeServices
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DescribeServices.DescribeServices
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DescribeServices.DescribeServices
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DescribeServices.DescribeServices
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeServices.DescribeServicesResponse


module Network.AWS.ECS.Waiters

-- | Polls <a>DescribeServices</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
servicesInactive :: Wait DescribeServices

-- | Polls <a>DescribeTasks</a> every 6 seconds until a successful state is
--   reached. An error is returned after 100 failed checks.
tasksRunning :: Wait DescribeTasks

-- | Polls <a>DescribeTasks</a> every 6 seconds until a successful state is
--   reached. An error is returned after 100 failed checks.
tasksStopped :: Wait DescribeTasks


-- | Describes Amazon EC2 Container Service container instances. Returns
--   metadata about registered and remaining resources on each container
--   instance requested.
module Network.AWS.ECS.DescribeContainerInstances

-- | Creates a value of <a>DescribeContainerInstances</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dciCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the container instances to describe.
--   If you do not specify a cluster, the default cluster is assumed.</li>
--   <li><a>dciContainerInstances</a> - A space-separated list of container
--   instance IDs or full Amazon Resource Name (ARN) entries.</li>
--   </ul>
describeContainerInstances :: DescribeContainerInstances

-- | <i>See:</i> <a>describeContainerInstances</a> smart constructor.
data DescribeContainerInstances

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the container instances to describe. If you do not specify a
--   cluster, the default cluster is assumed.
dciCluster :: Lens' DescribeContainerInstances (Maybe Text)

-- | A space-separated list of container instance IDs or full Amazon
--   Resource Name (ARN) entries.
dciContainerInstances :: Lens' DescribeContainerInstances [Text]

-- | Creates a value of <a>DescribeContainerInstancesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcisrsFailures</a> - Any failures associated with the
--   call.</li>
--   <li><a>dcisrsContainerInstances</a> - The list of container
--   instances.</li>
--   <li><a>dcisrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeContainerInstancesResponse :: Int -> DescribeContainerInstancesResponse

-- | <i>See:</i> <a>describeContainerInstancesResponse</a> smart
--   constructor.
data DescribeContainerInstancesResponse

-- | Any failures associated with the call.
dcisrsFailures :: Lens' DescribeContainerInstancesResponse [Failure]

-- | The list of container instances.
dcisrsContainerInstances :: Lens' DescribeContainerInstancesResponse [ContainerInstance]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcisrsResponseStatus :: Lens' DescribeContainerInstancesResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstancesResponse
instance Data.Data.Data Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstancesResponse
instance GHC.Show.Show Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstancesResponse
instance GHC.Read.Read Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstancesResponse
instance GHC.Classes.Eq Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstancesResponse
instance GHC.Generics.Generic Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Data.Data.Data Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance GHC.Show.Show Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance GHC.Read.Read Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance GHC.Classes.Eq Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstances
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeContainerInstances.DescribeContainerInstancesResponse


-- | Describes one or more of your clusters.
module Network.AWS.ECS.DescribeClusters

-- | Creates a value of <a>DescribeClusters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcClusters</a> - A space-separated list of up to 100 cluster
--   names or full cluster Amazon Resource Name (ARN) entries. If you do
--   not specify a cluster, the default cluster is assumed.</li>
--   </ul>
describeClusters :: DescribeClusters

-- | <i>See:</i> <a>describeClusters</a> smart constructor.
data DescribeClusters

-- | A space-separated list of up to 100 cluster names or full cluster
--   Amazon Resource Name (ARN) entries. If you do not specify a cluster,
--   the default cluster is assumed.
dcClusters :: Lens' DescribeClusters [Text]

-- | Creates a value of <a>DescribeClustersResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcrsFailures</a> - Any failures associated with the call.</li>
--   <li><a>dcrsClusters</a> - The list of clusters.</li>
--   <li><a>dcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeClustersResponse :: Int -> DescribeClustersResponse

-- | <i>See:</i> <a>describeClustersResponse</a> smart constructor.
data DescribeClustersResponse

-- | Any failures associated with the call.
dcrsFailures :: Lens' DescribeClustersResponse [Failure]

-- | The list of clusters.
dcrsClusters :: Lens' DescribeClustersResponse [Cluster]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcrsResponseStatus :: Lens' DescribeClustersResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DescribeClusters.DescribeClustersResponse
instance Data.Data.Data Network.AWS.ECS.DescribeClusters.DescribeClustersResponse
instance GHC.Show.Show Network.AWS.ECS.DescribeClusters.DescribeClustersResponse
instance GHC.Read.Read Network.AWS.ECS.DescribeClusters.DescribeClustersResponse
instance GHC.Classes.Eq Network.AWS.ECS.DescribeClusters.DescribeClustersResponse
instance GHC.Generics.Generic Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Data.Data.Data Network.AWS.ECS.DescribeClusters.DescribeClusters
instance GHC.Show.Show Network.AWS.ECS.DescribeClusters.DescribeClusters
instance GHC.Read.Read Network.AWS.ECS.DescribeClusters.DescribeClusters
instance GHC.Classes.Eq Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DescribeClusters.DescribeClusters
instance Control.DeepSeq.NFData Network.AWS.ECS.DescribeClusters.DescribeClustersResponse


-- | Deregisters the specified task definition by family and revision. Upon
--   deregistration, the task definition is marked as <tt>INACTIVE</tt> .
--   Existing tasks and services that reference an <tt>INACTIVE</tt> task
--   definition continue to run without disruption. Existing services that
--   reference an <tt>INACTIVE</tt> task definition can still scale up or
--   down by modifying the service's desired count.
--   
--   You cannot use an <tt>INACTIVE</tt> task definition to run new tasks
--   or create new services, and you cannot update an existing service to
--   reference an <tt>INACTIVE</tt> task definition (although there may be
--   up to a 10 minute window following deregistration where these
--   restrictions have not yet taken effect).
module Network.AWS.ECS.DeregisterTaskDefinition

-- | Creates a value of <a>DeregisterTaskDefinition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>derTaskDefinition</a> - The <tt>family</tt> and
--   <tt>revision</tt> (<tt>family:revision</tt> ) or full Amazon Resource
--   Name (ARN) of the task definition to deregister. You must specify a
--   <tt>revision</tt> .</li>
--   </ul>
deregisterTaskDefinition :: Text -> DeregisterTaskDefinition

-- | <i>See:</i> <a>deregisterTaskDefinition</a> smart constructor.
data DeregisterTaskDefinition

-- | The <tt>family</tt> and <tt>revision</tt> (<tt>family:revision</tt> )
--   or full Amazon Resource Name (ARN) of the task definition to
--   deregister. You must specify a <tt>revision</tt> .
derTaskDefinition :: Lens' DeregisterTaskDefinition Text

-- | Creates a value of <a>DeregisterTaskDefinitionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtdrsTaskDefinition</a> - The full description of the
--   deregistered task.</li>
--   <li><a>dtdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deregisterTaskDefinitionResponse :: Int -> DeregisterTaskDefinitionResponse

-- | <i>See:</i> <a>deregisterTaskDefinitionResponse</a> smart constructor.
data DeregisterTaskDefinitionResponse

-- | The full description of the deregistered task.
dtdrsTaskDefinition :: Lens' DeregisterTaskDefinitionResponse (Maybe TaskDefinition)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dtdrsResponseStatus :: Lens' DeregisterTaskDefinitionResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinitionResponse
instance Data.Data.Data Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinitionResponse
instance GHC.Show.Show Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinitionResponse
instance GHC.Read.Read Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinitionResponse
instance GHC.Classes.Eq Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinitionResponse
instance GHC.Generics.Generic Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Data.Data.Data Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance GHC.Show.Show Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance GHC.Read.Read Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance GHC.Classes.Eq Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Control.DeepSeq.NFData Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinition
instance Control.DeepSeq.NFData Network.AWS.ECS.DeregisterTaskDefinition.DeregisterTaskDefinitionResponse


-- | 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 to avoid 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.
module Network.AWS.ECS.DeregisterContainerInstance

-- | Creates a value of <a>DeregisterContainerInstance</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>derCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster that hosts the container instance to deregister.
--   If you do not specify a cluster, the default cluster is assumed.</li>
--   <li><a>derForce</a> - Forces the deregistration of the container
--   instance. If you have tasks running on the container instance when you
--   deregister it with the <tt>force</tt> option, these tasks remain
--   running until you terminate the instance or the tasks stop through
--   some other means, but they are orphaned (no longer monitored or
--   accounted for by Amazon ECS). If an orphaned task on your container
--   instance is part of an Amazon ECS service, then the service scheduler
--   starts another copy of that task, on a different container instance if
--   possible. Any containers in orphaned service tasks that are registered
--   with a Classic load balancer or an Application load balancer target
--   group are deregistered, and they will begin connection draining
--   according to the settings on the load balancer or target group.</li>
--   <li><a>derContainerInstance</a> - The container instance ID or full
--   Amazon Resource Name (ARN) of the container instance to deregister.
--   The ARN contains the <tt>arn:aws:ecs</tt> namespace, followed by the
--   region of the container instance, the AWS account ID of the container
--   instance owner, the <tt>container-instance</tt> namespace, and then
--   the container instance ID. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .</li>
--   </ul>
deregisterContainerInstance :: Text -> DeregisterContainerInstance

-- | <i>See:</i> <a>deregisterContainerInstance</a> smart constructor.
data DeregisterContainerInstance

-- | The short name or full Amazon Resource Name (ARN) of the cluster that
--   hosts the container instance to deregister. If you do not specify a
--   cluster, the default cluster is assumed.
derCluster :: Lens' DeregisterContainerInstance (Maybe Text)

-- | Forces the deregistration of the container instance. If you have tasks
--   running on the container instance when you deregister it with the
--   <tt>force</tt> option, these tasks remain running until you terminate
--   the instance or the tasks stop through some other means, but they are
--   orphaned (no longer monitored or accounted for by Amazon ECS). If an
--   orphaned task on your container instance is part of an Amazon ECS
--   service, then the service scheduler starts another copy of that task,
--   on a different container instance if possible. Any containers in
--   orphaned service tasks that are registered with a Classic load
--   balancer or an Application load balancer target group are
--   deregistered, and they will begin connection draining according to the
--   settings on the load balancer or target group.
derForce :: Lens' DeregisterContainerInstance (Maybe Bool)

-- | The container instance ID or full Amazon Resource Name (ARN) of the
--   container instance to deregister. The ARN contains the
--   <tt>arn:aws:ecs</tt> namespace, followed by the region of the
--   container instance, the AWS account ID of the container instance
--   owner, the <tt>container-instance</tt> namespace, and then the
--   container instance ID. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .
derContainerInstance :: Lens' DeregisterContainerInstance Text

-- | Creates a value of <a>DeregisterContainerInstanceResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcirsContainerInstance</a> - The container instance that was
--   deregistered.</li>
--   <li><a>dcirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deregisterContainerInstanceResponse :: Int -> DeregisterContainerInstanceResponse

-- | <i>See:</i> <a>deregisterContainerInstanceResponse</a> smart
--   constructor.
data DeregisterContainerInstanceResponse

-- | The container instance that was deregistered.
dcirsContainerInstance :: Lens' DeregisterContainerInstanceResponse (Maybe ContainerInstance)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcirsResponseStatus :: Lens' DeregisterContainerInstanceResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstanceResponse
instance Data.Data.Data Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstanceResponse
instance GHC.Show.Show Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstanceResponse
instance GHC.Read.Read Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstanceResponse
instance GHC.Classes.Eq Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstanceResponse
instance GHC.Generics.Generic Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Data.Data.Data Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance GHC.Show.Show Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance GHC.Read.Read Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance GHC.Classes.Eq Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Control.DeepSeq.NFData Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstance
instance Control.DeepSeq.NFData Network.AWS.ECS.DeregisterContainerInstance.DeregisterContainerInstanceResponse


-- | 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 <tt>UpdateService</tt> .
module Network.AWS.ECS.DeleteService

-- | Creates a value of <a>DeleteService</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsCluster</a> - The name of the cluster that hosts the service
--   to delete. If you do not specify a cluster, the default cluster is
--   assumed.</li>
--   <li><a>dsService</a> - The name of the service to delete.</li>
--   </ul>
deleteService :: Text -> DeleteService

-- | <i>See:</i> <a>deleteService</a> smart constructor.
data DeleteService

-- | The name of the cluster that hosts the service to delete. If you do
--   not specify a cluster, the default cluster is assumed.
dsCluster :: Lens' DeleteService (Maybe Text)

-- | The name of the service to delete.
dsService :: Lens' DeleteService Text

-- | Creates a value of <a>DeleteServiceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrsService</a> - The full description of the deleted
--   service.</li>
--   <li><a>dsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteServiceResponse :: Int -> DeleteServiceResponse

-- | <i>See:</i> <a>deleteServiceResponse</a> smart constructor.
data DeleteServiceResponse

-- | The full description of the deleted service.
dsrsService :: Lens' DeleteServiceResponse (Maybe ContainerService)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsrsResponseStatus :: Lens' DeleteServiceResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DeleteService.DeleteServiceResponse
instance Data.Data.Data Network.AWS.ECS.DeleteService.DeleteServiceResponse
instance GHC.Show.Show Network.AWS.ECS.DeleteService.DeleteServiceResponse
instance GHC.Read.Read Network.AWS.ECS.DeleteService.DeleteServiceResponse
instance GHC.Classes.Eq Network.AWS.ECS.DeleteService.DeleteServiceResponse
instance GHC.Generics.Generic Network.AWS.ECS.DeleteService.DeleteService
instance Data.Data.Data Network.AWS.ECS.DeleteService.DeleteService
instance GHC.Show.Show Network.AWS.ECS.DeleteService.DeleteService
instance GHC.Read.Read Network.AWS.ECS.DeleteService.DeleteService
instance GHC.Classes.Eq Network.AWS.ECS.DeleteService.DeleteService
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DeleteService.DeleteService
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DeleteService.DeleteService
instance Control.DeepSeq.NFData Network.AWS.ECS.DeleteService.DeleteService
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DeleteService.DeleteService
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DeleteService.DeleteService
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DeleteService.DeleteService
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DeleteService.DeleteService
instance Control.DeepSeq.NFData Network.AWS.ECS.DeleteService.DeleteServiceResponse


-- | 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 <tt>ListContainerInstances</tt>
--   and deregister them with <tt>DeregisterContainerInstance</tt> .
module Network.AWS.ECS.DeleteCluster

-- | Creates a value of <a>DeleteCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster to delete.</li>
--   </ul>
deleteCluster :: Text -> DeleteCluster

-- | <i>See:</i> <a>deleteCluster</a> smart constructor.
data DeleteCluster

-- | The short name or full Amazon Resource Name (ARN) of the cluster to
--   delete.
dcCluster :: Lens' DeleteCluster Text

-- | Creates a value of <a>DeleteClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsCluster</a> - The full description of the deleted
--   cluster.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteClusterResponse :: Int -> DeleteClusterResponse

-- | <i>See:</i> <a>deleteClusterResponse</a> smart constructor.
data DeleteClusterResponse

-- | The full description of the deleted cluster.
drsCluster :: Lens' DeleteClusterResponse (Maybe Cluster)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DeleteClusterResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.DeleteCluster.DeleteClusterResponse
instance Data.Data.Data Network.AWS.ECS.DeleteCluster.DeleteClusterResponse
instance GHC.Show.Show Network.AWS.ECS.DeleteCluster.DeleteClusterResponse
instance GHC.Read.Read Network.AWS.ECS.DeleteCluster.DeleteClusterResponse
instance GHC.Classes.Eq Network.AWS.ECS.DeleteCluster.DeleteClusterResponse
instance GHC.Generics.Generic Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Data.Data.Data Network.AWS.ECS.DeleteCluster.DeleteCluster
instance GHC.Show.Show Network.AWS.ECS.DeleteCluster.DeleteCluster
instance GHC.Read.Read Network.AWS.ECS.DeleteCluster.DeleteCluster
instance GHC.Classes.Eq Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Data.Hashable.Class.Hashable Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Control.DeepSeq.NFData Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DeleteCluster.DeleteCluster
instance Control.DeepSeq.NFData Network.AWS.ECS.DeleteCluster.DeleteClusterResponse


-- | Runs and maintains a desired number of tasks from a specified task
--   definition. If the number of tasks running in a service drops below
--   <tt>desiredCount</tt> , Amazon ECS spawns another copy of the task in
--   the specified cluster. To update an existing service, see
--   <tt>UpdateService</tt> .
--   
--   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 <a>Service Load Balancing</a>
--   in the <i>Amazon EC2 Container Service Developer Guide</i> .
--   
--   You can optionally specify a deployment configuration for your
--   service. During a deployment (which is triggered by changing the task
--   definition or the desired count of a service with an
--   <tt>UpdateService</tt> operation), the service scheduler uses the
--   <tt>minimumHealthyPercent</tt> and <tt>maximumPercent</tt> parameters
--   to determine the deployment strategy.
--   
--   The <tt>minimumHealthyPercent</tt> represents a lower limit on the
--   number of your service's tasks that must remain in the
--   <tt>RUNNING</tt> state during a deployment, as a percentage of the
--   <tt>desiredCount</tt> (rounded up to the nearest integer). This
--   parameter enables you to deploy without using additional cluster
--   capacity. For example, if your service has a <tt>desiredCount</tt> of
--   four tasks and a <tt>minimumHealthyPercent</tt> of 50%, the scheduler
--   may stop two existing tasks to free up cluster capacity before
--   starting two new tasks. Tasks for services that <i>do not</i> use a
--   load balancer are considered healthy if they are in the
--   <tt>RUNNING</tt> state; tasks for services that <i>do</i> use a load
--   balancer are considered healthy if they are in the <tt>RUNNING</tt>
--   state and the container instance it is hosted on is reported as
--   healthy by the load balancer. The default value for
--   <tt>minimumHealthyPercent</tt> is 50% in the console and 100% for the
--   AWS CLI, the AWS SDKs, and the APIs.
--   
--   The <tt>maximumPercent</tt> parameter represents an upper limit on the
--   number of your service's tasks that are allowed in the
--   <tt>RUNNING</tt> or <tt>PENDING</tt> state during a deployment, as a
--   percentage of the <tt>desiredCount</tt> (rounded down to the nearest
--   integer). This parameter enables you to define the deployment batch
--   size. For example, if your service has a <tt>desiredCount</tt> of four
--   tasks and a <tt>maximumPercent</tt> 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 <tt>maximumPercent</tt> is 200%.
--   
--   When the service scheduler launches new tasks, it attempts to balance
--   them across the Availability Zones in your cluster with the following
--   logic:
--   
--   <ul>
--   <li>Determine which of the container instances in your cluster can
--   support your service's task definition (for example, they have the
--   required CPU, memory, ports, and container instance attributes).</li>
--   <li>Sort the valid container instances by the fewest number of running
--   tasks for this service in the same Availability Zone as the instance.
--   For example, if zone A has one running service task and zones B and C
--   each have zero, valid container instances in either zone B or C are
--   considered optimal for placement.</li>
--   <li>Place the new service task on a valid container instance in an
--   optimal Availability Zone (based on the previous steps), favoring
--   container instances with the fewest number of running tasks for this
--   service.</li>
--   </ul>
module Network.AWS.ECS.CreateService

-- | Creates a value of <a>CreateService</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cCluster</a> - The short name or full Amazon Resource Name
--   (ARN) of the cluster on which to run your service. If you do not
--   specify a cluster, the default cluster is assumed.</li>
--   <li><a>cClientToken</a> - Unique, case-sensitive identifier you
--   provide to ensure the idempotency of the request. Up to 32 ASCII
--   characters are allowed.</li>
--   <li><a>cLoadBalancers</a> - A load balancer object representing the
--   load balancer to use with your service. Currently, you are limited to
--   one load balancer per service. After you create a service, the load
--   balancer name, container name, and container port specified in the
--   service definition are immutable. For Elastic Load Balancing Classic
--   load balancers, this object must contain the load balancer name, the
--   container name (as it appears in a container definition), and the
--   container port to access from the load balancer. When a task from this
--   service is placed on a container instance, the container instance is
--   registered with the load balancer specified here. For Elastic Load
--   Balancing Application load balancers, this object must contain the
--   load balancer target group ARN, the container name (as it appears in a
--   container definition), and the container port to access from the load
--   balancer. When a task from this service is placed on a container
--   instance, the container instance and port combination is registered as
--   a target in the target group specified here.</li>
--   <li><a>cRole</a> - The name or full Amazon Resource Name (ARN) of the
--   IAM role that allows Amazon ECS to make calls to your load balancer on
--   your behalf. This parameter is required if you are using a load
--   balancer with your service. If you specify the <tt>role</tt>
--   parameter, you must also specify a load balancer object with the
--   <tt>loadBalancers</tt> parameter. If your specified role has a path
--   other than <tt>/</tt> , then you must either specify the full role ARN
--   (this is recommended) or prefix the role name with the path. For
--   example, if a role with the name <tt>bar</tt> has a path of
--   <tt><i>foo</i></tt> then you would specify <tt><i>foo</i>bar</tt> as
--   the role name. For more information, see <a>Friendly Names and
--   Paths</a> in the <i>IAM User Guide</i> .</li>
--   <li><a>cDeploymentConfiguration</a> - Optional deployment parameters
--   that control how many tasks run during the deployment and the ordering
--   of stopping and starting tasks.</li>
--   <li><a>cServiceName</a> - 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.</li>
--   <li><a>cTaskDefinition</a> - The <tt>family</tt> and <tt>revision</tt>
--   (<tt>family:revision</tt> ) or full Amazon Resource Name (ARN) of the
--   task definition to run in your service. If a <tt>revision</tt> is not
--   specified, the latest <tt>ACTIVE</tt> revision is used.</li>
--   <li><a>cDesiredCount</a> - The number of instantiations of the
--   specified task definition to place and keep running on your
--   cluster.</li>
--   </ul>
createService :: Text -> Text -> Int -> CreateService

-- | <i>See:</i> <a>createService</a> smart constructor.
data CreateService

-- | The short name or full Amazon Resource Name (ARN) of the cluster on
--   which to run your service. If you do not specify a cluster, the
--   default cluster is assumed.
cCluster :: Lens' CreateService (Maybe Text)

-- | Unique, case-sensitive identifier you provide to ensure the
--   idempotency of the request. Up to 32 ASCII characters are allowed.
cClientToken :: Lens' CreateService (Maybe Text)

-- | A load balancer object representing the load balancer to use with your
--   service. Currently, you are limited to one load balancer per service.
--   After you create a service, the load balancer name, container name,
--   and container port specified in the service definition are immutable.
--   For Elastic Load Balancing Classic load balancers, this object must
--   contain the load balancer name, the container name (as it appears in a
--   container definition), and the container port to access from the load
--   balancer. When a task from this service is placed on a container
--   instance, the container instance is registered with the load balancer
--   specified here. For Elastic Load Balancing Application load balancers,
--   this object must contain the load balancer target group ARN, the
--   container name (as it appears in a container definition), and the
--   container port to access from the load balancer. When a task from this
--   service is placed on a container instance, the container instance and
--   port combination is registered as a target in the target group
--   specified here.
cLoadBalancers :: Lens' CreateService [LoadBalancer]

-- | The name or full Amazon Resource Name (ARN) of the IAM role that
--   allows Amazon ECS to make calls to your load balancer on your behalf.
--   This parameter is required if you are using a load balancer with your
--   service. If you specify the <tt>role</tt> parameter, you must also
--   specify a load balancer object with the <tt>loadBalancers</tt>
--   parameter. If your specified role has a path other than <tt>/</tt> ,
--   then you must either specify the full role ARN (this is recommended)
--   or prefix the role name with the path. For example, if a role with the
--   name <tt>bar</tt> has a path of <tt><i>foo</i></tt> then you would
--   specify <tt><i>foo</i>bar</tt> as the role name. For more information,
--   see <a>Friendly Names and Paths</a> in the <i>IAM User Guide</i> .
cRole :: Lens' CreateService (Maybe Text)

-- | Optional deployment parameters that control how many tasks run during
--   the deployment and the ordering of stopping and starting tasks.
cDeploymentConfiguration :: Lens' CreateService (Maybe DeploymentConfiguration)

-- | 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.
cServiceName :: Lens' CreateService Text

-- | The <tt>family</tt> and <tt>revision</tt> (<tt>family:revision</tt> )
--   or full Amazon Resource Name (ARN) of the task definition to run in
--   your service. If a <tt>revision</tt> is not specified, the latest
--   <tt>ACTIVE</tt> revision is used.
cTaskDefinition :: Lens' CreateService Text

-- | The number of instantiations of the specified task definition to place
--   and keep running on your cluster.
cDesiredCount :: Lens' CreateService Int

-- | Creates a value of <a>CreateServiceResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsService</a> - The full description of your service
--   following the create call.</li>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createServiceResponse :: Int -> CreateServiceResponse

-- | <i>See:</i> <a>createServiceResponse</a> smart constructor.
data CreateServiceResponse

-- | The full description of your service following the create call.
csrsService :: Lens' CreateServiceResponse (Maybe ContainerService)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csrsResponseStatus :: Lens' CreateServiceResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.CreateService.CreateServiceResponse
instance Data.Data.Data Network.AWS.ECS.CreateService.CreateServiceResponse
instance GHC.Show.Show Network.AWS.ECS.CreateService.CreateServiceResponse
instance GHC.Read.Read Network.AWS.ECS.CreateService.CreateServiceResponse
instance GHC.Classes.Eq Network.AWS.ECS.CreateService.CreateServiceResponse
instance GHC.Generics.Generic Network.AWS.ECS.CreateService.CreateService
instance Data.Data.Data Network.AWS.ECS.CreateService.CreateService
instance GHC.Show.Show Network.AWS.ECS.CreateService.CreateService
instance GHC.Read.Read Network.AWS.ECS.CreateService.CreateService
instance GHC.Classes.Eq Network.AWS.ECS.CreateService.CreateService
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.CreateService.CreateService
instance Data.Hashable.Class.Hashable Network.AWS.ECS.CreateService.CreateService
instance Control.DeepSeq.NFData Network.AWS.ECS.CreateService.CreateService
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.CreateService.CreateService
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.CreateService.CreateService
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.CreateService.CreateService
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.CreateService.CreateService
instance Control.DeepSeq.NFData Network.AWS.ECS.CreateService.CreateServiceResponse


-- | Creates a new Amazon ECS cluster. By default, your account receives a
--   <tt>default</tt> cluster when you launch your first container
--   instance. However, you can create your own cluster with a unique name
--   with the <tt>CreateCluster</tt> action.
module Network.AWS.ECS.CreateCluster

-- | Creates a value of <a>CreateCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccClusterName</a> - The name of your cluster. If you do not
--   specify a name for your cluster, you create a cluster named
--   <tt>default</tt> . Up to 255 letters (uppercase and lowercase),
--   numbers, hyphens, and underscores are allowed.</li>
--   </ul>
createCluster :: CreateCluster

-- | <i>See:</i> <a>createCluster</a> smart constructor.
data CreateCluster

-- | The name of your cluster. If you do not specify a name for your
--   cluster, you create a cluster named <tt>default</tt> . Up to 255
--   letters (uppercase and lowercase), numbers, hyphens, and underscores
--   are allowed.
ccClusterName :: Lens' CreateCluster (Maybe Text)

-- | Creates a value of <a>CreateClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccrsCluster</a> - The full description of your new
--   cluster.</li>
--   <li><a>ccrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createClusterResponse :: Int -> CreateClusterResponse

-- | <i>See:</i> <a>createClusterResponse</a> smart constructor.
data CreateClusterResponse

-- | The full description of your new cluster.
ccrsCluster :: Lens' CreateClusterResponse (Maybe Cluster)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ccrsResponseStatus :: Lens' CreateClusterResponse Int
instance GHC.Generics.Generic Network.AWS.ECS.CreateCluster.CreateClusterResponse
instance Data.Data.Data Network.AWS.ECS.CreateCluster.CreateClusterResponse
instance GHC.Show.Show Network.AWS.ECS.CreateCluster.CreateClusterResponse
instance GHC.Read.Read Network.AWS.ECS.CreateCluster.CreateClusterResponse
instance GHC.Classes.Eq Network.AWS.ECS.CreateCluster.CreateClusterResponse
instance GHC.Generics.Generic Network.AWS.ECS.CreateCluster.CreateCluster
instance Data.Data.Data Network.AWS.ECS.CreateCluster.CreateCluster
instance GHC.Show.Show Network.AWS.ECS.CreateCluster.CreateCluster
instance GHC.Read.Read Network.AWS.ECS.CreateCluster.CreateCluster
instance GHC.Classes.Eq Network.AWS.ECS.CreateCluster.CreateCluster
instance Network.AWS.Types.AWSRequest Network.AWS.ECS.CreateCluster.CreateCluster
instance Data.Hashable.Class.Hashable Network.AWS.ECS.CreateCluster.CreateCluster
instance Control.DeepSeq.NFData Network.AWS.ECS.CreateCluster.CreateCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.CreateCluster.CreateCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.CreateCluster.CreateCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.CreateCluster.CreateCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.CreateCluster.CreateCluster
instance Control.DeepSeq.NFData Network.AWS.ECS.CreateCluster.CreateClusterResponse


-- | 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.
module Network.AWS.ECS

-- | API version <tt>2014-11-13</tt> of the Amazon EC2 Container Service
--   SDK configuration.
ecs :: Service

-- | The specified parameter is invalid. Review the available parameters
--   for the API request.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | These errors are usually caused by a server issue.
_ServerException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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 <tt>UpdateService</tt>
--   and <tt>DeleteService</tt> .
_ClusterContainsServicesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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
--   <tt>DeregisterContainerInstance</tt> .
_ClusterContainsContainerInstancesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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 <tt>CreateService</tt> .
_ServiceNotActiveException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified cluster could not be found. You can view your available
--   clusters with <tt>ListClusters</tt> . Amazon ECS clusters are
--   region-specific.
_ClusterNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_NoUpdateAvailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified service could not be found. You can view your available
--   services with <tt>ListServices</tt> . Amazon ECS services are
--   cluster-specific and region-specific.
_ServiceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_MissingVersionException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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
--   <tt>PENDING</tt> or <tt>STAGING</tt> , the update process can get
--   stuck in that state. However, when the agent reconnects, it resumes
--   where it stopped previously.
_UpdateInProgressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | 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.
_ClientException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Polls <a>DescribeServices</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
servicesInactive :: Wait DescribeServices

-- | Polls <a>DescribeTasks</a> every 6 seconds until a successful state is
--   reached. An error is returned after 100 failed checks.
tasksRunning :: Wait DescribeTasks

-- | Polls <a>DescribeTasks</a> every 6 seconds until a successful state is
--   reached. An error is returned after 100 failed checks.
tasksStopped :: Wait DescribeTasks
data AgentUpdateStatus
AUSFailed :: AgentUpdateStatus
AUSPending :: AgentUpdateStatus
AUSStaged :: AgentUpdateStatus
AUSStaging :: AgentUpdateStatus
AUSUpdated :: AgentUpdateStatus
AUSUpdating :: AgentUpdateStatus
data DesiredStatus
Pending :: DesiredStatus
Running :: DesiredStatus
Stopped :: DesiredStatus
data LogDriver
AWSlogs :: LogDriver
Fluentd :: LogDriver
Gelf :: LogDriver
JSONFile :: LogDriver
Journald :: LogDriver
Splunk :: LogDriver
Syslog :: LogDriver
data NetworkMode
Bridge :: NetworkMode
Host :: NetworkMode
None :: NetworkMode
data SortOrder
Asc :: SortOrder
Desc :: SortOrder
data TaskDefinitionFamilyStatus
Active :: TaskDefinitionFamilyStatus
All :: TaskDefinitionFamilyStatus
Inactive :: TaskDefinitionFamilyStatus
data TaskDefinitionStatus
TDSActive :: TaskDefinitionStatus
TDSInactive :: TaskDefinitionStatus
data TransportProtocol
TCP :: TransportProtocol
Udp :: TransportProtocol
data UlimitName
CPU :: UlimitName
Core :: UlimitName
Data :: UlimitName
Fsize :: UlimitName
Locks :: UlimitName
Memlock :: UlimitName
Msgqueue :: UlimitName
Nice :: UlimitName
Nofile :: UlimitName
Nproc :: UlimitName
Rss :: UlimitName
Rtprio :: UlimitName
Rttime :: UlimitName
Sigpending :: UlimitName
Stack :: UlimitName

-- | The attributes applicable to a container instance when it is
--   registered.
--   
--   <i>See:</i> <a>attribute</a> smart constructor.
data Attribute

-- | Creates a value of <a>Attribute</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aValue</a> - The value of the container instance attribute (at
--   this time, the value here is <tt>Null</tt> , but this could change in
--   future revisions for expandability).</li>
--   <li><a>aName</a> - The name of the container instance attribute.</li>
--   </ul>
attribute :: Text -> Attribute

-- | The value of the container instance attribute (at this time, the value
--   here is <tt>Null</tt> , but this could change in future revisions for
--   expandability).
aValue :: Lens' Attribute (Maybe Text)

-- | The name of the container instance attribute.
aName :: Lens' Attribute Text

-- | 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.
--   
--   <i>See:</i> <a>cluster</a> smart constructor.
data Cluster

-- | Creates a value of <a>Cluster</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cStatus</a> - The status of the cluster. The valid values are
--   <tt>ACTIVE</tt> or <tt>INACTIVE</tt> . <tt>ACTIVE</tt> indicates that
--   you can register container instances with the cluster and the
--   associated instances can accept tasks.</li>
--   <li><a>cClusterARN</a> - The Amazon Resource Name (ARN) that
--   identifies the cluster. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the cluster, the AWS account ID
--   of the cluster owner, the <tt>cluster</tt> namespace, and then the
--   cluster name. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>012345678910</i> :cluster/<i>test</i> </tt> ..</li>
--   <li><a>cRunningTasksCount</a> - The number of tasks in the cluster
--   that are in the <tt>RUNNING</tt> state.</li>
--   <li><a>cRegisteredContainerInstancesCount</a> - The number of
--   container instances registered into the cluster.</li>
--   <li><a>cPendingTasksCount</a> - The number of tasks in the cluster
--   that are in the <tt>PENDING</tt> state.</li>
--   <li><a>cClusterName</a> - A user-generated string that you use to
--   identify your cluster.</li>
--   <li><a>cActiveServicesCount</a> - The number of services that are
--   running on the cluster in an <tt>ACTIVE</tt> state. You can view these
--   services with <tt>ListServices</tt> .</li>
--   </ul>
cluster :: Cluster

-- | The status of the cluster. The valid values are <tt>ACTIVE</tt> or
--   <tt>INACTIVE</tt> . <tt>ACTIVE</tt> indicates that you can register
--   container instances with the cluster and the associated instances can
--   accept tasks.
cStatus :: Lens' Cluster (Maybe Text)

-- | The Amazon Resource Name (ARN) that identifies the cluster. The ARN
--   contains the <tt>arn:aws:ecs</tt> namespace, followed by the region of
--   the cluster, the AWS account ID of the cluster owner, the
--   <tt>cluster</tt> namespace, and then the cluster name. For example,
--   <tt>arn:aws:ecs:<i>region</i> :<i>012345678910</i>
--   :cluster/<i>test</i> </tt> ..
cClusterARN :: Lens' Cluster (Maybe Text)

-- | The number of tasks in the cluster that are in the <tt>RUNNING</tt>
--   state.
cRunningTasksCount :: Lens' Cluster (Maybe Int)

-- | The number of container instances registered into the cluster.
cRegisteredContainerInstancesCount :: Lens' Cluster (Maybe Int)

-- | The number of tasks in the cluster that are in the <tt>PENDING</tt>
--   state.
cPendingTasksCount :: Lens' Cluster (Maybe Int)

-- | A user-generated string that you use to identify your cluster.
cClusterName :: Lens' Cluster (Maybe Text)

-- | The number of services that are running on the cluster in an
--   <tt>ACTIVE</tt> state. You can view these services with
--   <tt>ListServices</tt> .
cActiveServicesCount :: Lens' Cluster (Maybe Int)

-- | A Docker container that is part of a task.
--   
--   <i>See:</i> <a>container</a> smart constructor.
data Container

-- | Creates a value of <a>Container</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cNetworkBindings</a> - The network bindings associated with the
--   container.</li>
--   <li><a>cContainerARN</a> - The Amazon Resource Name (ARN) of the
--   container.</li>
--   <li><a>cTaskARN</a> - The Amazon Resource Name (ARN) of the task.</li>
--   <li><a>cLastStatus</a> - The last known status of the container.</li>
--   <li><a>cReason</a> - A short (255 max characters) human-readable
--   string to provide additional detail about a running or stopped
--   container.</li>
--   <li><a>cName</a> - The name of the container.</li>
--   <li><a>cExitCode</a> - The exit code returned from the container.</li>
--   </ul>
container :: Container

-- | The network bindings associated with the container.
cNetworkBindings :: Lens' Container [NetworkBinding]

-- | The Amazon Resource Name (ARN) of the container.
cContainerARN :: Lens' Container (Maybe Text)

-- | The Amazon Resource Name (ARN) of the task.
cTaskARN :: Lens' Container (Maybe Text)

-- | The last known status of the container.
cLastStatus :: Lens' Container (Maybe Text)

-- | A short (255 max characters) human-readable string to provide
--   additional detail about a running or stopped container.
cReason :: Lens' Container (Maybe Text)

-- | The name of the container.
cName :: Lens' Container (Maybe Text)

-- | The exit code returned from the container.
cExitCode :: Lens' Container (Maybe Int)

-- | Container definitions are used in task definitions to describe the
--   different containers that are launched as part of a task.
--   
--   <i>See:</i> <a>containerDefinition</a> smart constructor.
data ContainerDefinition

-- | Creates a value of <a>ContainerDefinition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdImage</a> - 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 <tt><i>repository-url</i> /<i>image</i> :<i>tag</i> </tt> . Up to
--   255 letters (uppercase and lowercase), numbers, hyphens, underscores,
--   colons, periods, forward slashes, and number signs are allowed. This
--   parameter maps to <tt>Image</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>IMAGE</tt>
--   parameter of <a>docker run</a> . * Images in official repositories on
--   Docker Hub use a single name (for example, <tt>ubuntu</tt> or
--   <tt>mongo</tt> ). * Images in other repositories on Docker Hub are
--   qualified with an organization name (for example,
--   <tt>amazon/amazon-ecs-agent</tt> ). * Images in other online
--   repositories are qualified further by a domain name (for example,
--   <tt>quay.io<i>assemblyline</i>ubuntu</tt> ).</li>
--   <li><a>cdCommand</a> - The command that is passed to the container.
--   This parameter maps to <tt>Cmd</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>COMMAND</tt>
--   parameter to <a>docker run</a> . For more information, see
--   <a>https://docs.docker.com/engine/reference/builder/#cmd</a> .</li>
--   <li><a>cdHostname</a> - The hostname to use for your container. This
--   parameter maps to <tt>Hostname</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--hostname</tt>
--   option to <a>docker run</a> .</li>
--   <li><a>cdDockerSecurityOptions</a> - A list of strings to provide
--   custom labels for SELinux and AppArmor multi-level security systems.
--   This parameter maps to <tt>SecurityOpt</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--security-opt</tt> option to <a>docker run</a> .</li>
--   <li><a>cdDisableNetworking</a> - When this parameter is true,
--   networking is disabled within the container. This parameter maps to
--   <tt>NetworkDisabled</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> .</li>
--   <li><a>cdVolumesFrom</a> - Data volumes to mount from another
--   container. This parameter maps to <tt>VolumesFrom</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--volumes-from</tt> option to <a>docker run</a> .</li>
--   <li><a>cdEnvironment</a> - The environment variables to pass to a
--   container. This parameter maps to <tt>Env</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--env</tt> option to <a>docker run</a> . <i>Important:</i> We do
--   not recommend using plain text environment variables for sensitive
--   information, such as credential data.</li>
--   <li><a>cdEntryPoint</a> - <i>Important:</i> Early versions of the
--   Amazon ECS container agent do not properly handle <tt>entryPoint</tt>
--   parameters. If you have problems using <tt>entryPoint</tt> , update
--   your container agent or enter your commands and arguments as
--   <tt>command</tt> array items instead. The entry point that is passed
--   to the container. This parameter maps to <tt>Entrypoint</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--entrypoint</tt> option to <a>docker run</a> . For more
--   information, see
--   <a>https://docs.docker.com/engine/reference/builder/#entrypoint</a>
--   .</li>
--   <li><a>cdWorkingDirectory</a> - The working directory in which to run
--   commands inside the container. This parameter maps to
--   <tt>WorkingDir</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--workdir</tt> option to
--   <a>docker run</a> .</li>
--   <li><a>cdUlimits</a> - A list of <tt>ulimits</tt> to set in the
--   container. This parameter maps to <tt>Ulimits</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--ulimit</tt> option to <a>docker run</a> . Valid naming values
--   are displayed in the <a>Ulimit</a> 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: <tt>sudo docker version | grep "Server API version"</tt></li>
--   <li><a>cdPrivileged</a> - When this parameter is true, the container
--   is given elevated privileges on the host container instance (similar
--   to the <tt>root</tt> user). This parameter maps to <tt>Privileged</tt>
--   in the <a>Create a container</a> section of the <a>Docker Remote
--   API</a> and the <tt>--privileged</tt> option to <a>docker run</a>
--   .</li>
--   <li><a>cdPortMappings</a> - 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
--   <tt>PortBindings</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--publish</tt> option to
--   <a>docker run</a> . If the network mode of a task definition is set to
--   <tt>none</tt> , then you cannot specify port mappings. If the network
--   mode of a task definition is set to <tt>host</tt> , then host ports
--   must either be undefined or they must match the container port in the
--   port mapping.</li>
--   <li><a>cdDockerLabels</a> - A key<i>value map of labels to add to the
--   container. This parameter maps to <tt>Labels</tt> in the
--   &lt;https:</i><i>docs.docker.com</i>engine<i>reference</i>api<i>docker_remote_api_v1.23</i>#create-a-container
--   Create a container&gt; section of the <a>Docker Remote API</a> and the
--   <tt>--label</tt> option to <a>docker run</a> . 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: <tt>sudo docker version | grep "Server API version"</tt></li>
--   <li><a>cdExtraHosts</a> - A list of hostnames and IP address mappings
--   to append to the <tt><i>etc</i>hosts</tt> file on the container. This
--   parameter maps to <tt>ExtraHosts</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--add-host</tt>
--   option to <a>docker run</a> .</li>
--   <li><a>cdMemory</a> - The hard limit (in MiB) of memory to present to
--   the container. If your container attempts to exceed the memory
--   specified here, the container is killed. This parameter maps to
--   <tt>Memory</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--memory</tt> option to <a>docker
--   run</a> . You must specify a non-zero integer for one or both of
--   <tt>memory</tt> or <tt>memoryReservation</tt> in container
--   definitions. If you specify both, <tt>memory</tt> must be greater than
--   <tt>memoryReservation</tt> . If you specify <tt>memoryReservation</tt>
--   , then that value is subtracted from the available memory resources
--   for the container instance on which the container is placed;
--   otherwise, the value of <tt>memory</tt> is used. 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.</li>
--   <li><a>cdUser</a> - The user name to use inside the container. This
--   parameter maps to <tt>User</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--user</tt> option
--   to <a>docker run</a> .</li>
--   <li><a>cdDnsSearchDomains</a> - A list of DNS search domains that are
--   presented to the container. This parameter maps to <tt>DnsSearch</tt>
--   in the <a>Create a container</a> section of the <a>Docker Remote
--   API</a> and the <tt>--dns-search</tt> option to <a>docker run</a>
--   .</li>
--   <li><a>cdLogConfiguration</a> - The log configuration specification
--   for the container. This parameter maps to <tt>LogConfig</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--log-driver</tt> option to <a>docker run</a> . By default,
--   containers use the same logging driver that the Docker daemon uses;
--   however the container may use a different logging driver than the
--   Docker daemon by specifying a log driver with this parameter in the
--   container definition. To use a different logging driver for a
--   container, the log system must be configured properly on the container
--   instance (or on a different log server for remote logging options).
--   For more information on the options for different supported log
--   drivers, see <a>Configure logging drivers</a> in the Docker
--   documentation. 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: <tt>sudo docker version | grep
--   "Server API version"</tt></li>
--   <li><a>cdName</a> - The name of a container. If you are linking
--   multiple containers together in a task definition, the <tt>name</tt>
--   of one container can be entered in the <tt>links</tt> of another
--   container to connect the containers. Up to 255 letters (uppercase and
--   lowercase), numbers, hyphens, and underscores are allowed. This
--   parameter maps to <tt>name</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--name</tt> option
--   to <a>docker run</a> .</li>
--   <li><a>cdDnsServers</a> - A list of DNS servers that are presented to
--   the container. This parameter maps to <tt>Dns</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--dns</tt> option to <a>docker run</a> .</li>
--   <li><a>cdMountPoints</a> - The mount points for data volumes in your
--   container. This parameter maps to <tt>Volumes</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--volume</tt> option to <a>docker run</a> .</li>
--   <li><a>cdLinks</a> - The <tt>link</tt> parameter allows containers to
--   communicate with each other without the need for port mappings, using
--   the <tt>name</tt> parameter and optionally, an <tt>alias</tt> for the
--   link. This construct is analogous to <tt>name:alias</tt> in Docker
--   links. Up to 255 letters (uppercase and lowercase), numbers, hyphens,
--   and underscores are allowed for each <tt>name</tt> and <tt>alias</tt>
--   . For more information on linking Docker containers, see
--   <a>https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/</a>
--   . This parameter maps to <tt>Links</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--link</tt> option to <a>docker run</a> . <i>Important:</i>
--   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.</li>
--   <li><a>cdReadonlyRootFilesystem</a> - When this parameter is true, the
--   container is given read-only access to its root file system. This
--   parameter maps to <tt>ReadonlyRootfs</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--read-only</tt> option to <tt>docker run</tt> .</li>
--   <li><a>cdEssential</a> - If the <tt>essential</tt> parameter of a
--   container is marked as <tt>true</tt> , and that container fails or
--   stops for any reason, all other containers that are part of the task
--   are stopped. If the <tt>essential</tt> parameter of a container is
--   marked as <tt>false</tt> , 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. If you have an application that is composed of multiple
--   containers, you should group containers that are used for a common
--   purpose into components, and separate the different components into
--   multiple task definitions. For more information, see <a>Application
--   Architecture</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .</li>
--   <li><a>cdCpu</a> - The number of <tt>cpu</tt> units reserved for the
--   container. A container instance has 1,024 <tt>cpu</tt> 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 <tt>CpuShares</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--cpu-shares</tt> option to <a>docker run</a> . 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 <a>CPU share
--   constraint</a> 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: *
--   <b>Agent versions less than or equal to 1.1.0:</b> 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. * <b>Agent versions greater than or
--   equal to 1.2.0:</b> Null, zero, and CPU values of 1 are passed to
--   Docker as 2.</li>
--   <li><a>cdMemoryReservation</a> - The soft limit (in MiB) of memory to
--   reserve for the container. When system memory is under heavy
--   contention, Docker attempts to keep the container memory to this soft
--   limit; however, your container can consume more memory when it needs
--   to, up to either the hard limit specified with the <tt>memory</tt>
--   parameter (if applicable), or all of the available memory on the
--   container instance, whichever comes first. This parameter maps to
--   <tt>MemoryReservation</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--memory-reservation</tt>
--   option to <a>docker run</a> . You must specify a non-zero integer for
--   one or both of <tt>memory</tt> or <tt>memoryReservation</tt> in
--   container definitions. If you specify both, <tt>memory</tt> must be
--   greater than <tt>memoryReservation</tt> . If you specify
--   <tt>memoryReservation</tt> , then that value is subtracted from the
--   available memory resources for the container instance on which the
--   container is placed; otherwise, the value of <tt>memory</tt> is used.
--   For example, if your container normally uses 128 MiB of memory, but
--   occasionally bursts to 256 MiB of memory for short periods of time,
--   you can set a <tt>memoryReservation</tt> of 128 MiB, and a
--   <tt>memory</tt> hard limit of 300 MiB. This configuration would allow
--   the container to only reserve 128 MiB of memory from the remaining
--   resources on the container instance, but also allow the container to
--   consume more memory resources when needed.</li>
--   </ul>
containerDefinition :: ContainerDefinition

-- | 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
--   <tt><i>repository-url</i> /<i>image</i> :<i>tag</i> </tt> . Up to 255
--   letters (uppercase and lowercase), numbers, hyphens, underscores,
--   colons, periods, forward slashes, and number signs are allowed. This
--   parameter maps to <tt>Image</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>IMAGE</tt>
--   parameter of <a>docker run</a> . * Images in official repositories on
--   Docker Hub use a single name (for example, <tt>ubuntu</tt> or
--   <tt>mongo</tt> ). * Images in other repositories on Docker Hub are
--   qualified with an organization name (for example,
--   <tt>amazon/amazon-ecs-agent</tt> ). * Images in other online
--   repositories are qualified further by a domain name (for example,
--   <tt>quay.io<i>assemblyline</i>ubuntu</tt> ).
cdImage :: Lens' ContainerDefinition (Maybe Text)

-- | The command that is passed to the container. This parameter maps to
--   <tt>Cmd</tt> in the <a>Create a container</a> section of the <a>Docker
--   Remote API</a> and the <tt>COMMAND</tt> parameter to <a>docker run</a>
--   . For more information, see
--   <a>https://docs.docker.com/engine/reference/builder/#cmd</a> .
cdCommand :: Lens' ContainerDefinition [Text]

-- | The hostname to use for your container. This parameter maps to
--   <tt>Hostname</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--hostname</tt> option to
--   <a>docker run</a> .
cdHostname :: Lens' ContainerDefinition (Maybe Text)

-- | A list of strings to provide custom labels for SELinux and AppArmor
--   multi-level security systems. This parameter maps to
--   <tt>SecurityOpt</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--security-opt</tt> option to
--   <a>docker run</a> .
cdDockerSecurityOptions :: Lens' ContainerDefinition [Text]

-- | When this parameter is true, networking is disabled within the
--   container. This parameter maps to <tt>NetworkDisabled</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> .
cdDisableNetworking :: Lens' ContainerDefinition (Maybe Bool)

-- | Data volumes to mount from another container. This parameter maps to
--   <tt>VolumesFrom</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--volumes-from</tt> option to
--   <a>docker run</a> .
cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom]

-- | The environment variables to pass to a container. This parameter maps
--   to <tt>Env</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--env</tt> option to <a>docker
--   run</a> . <i>Important:</i> We do not recommend using plain text
--   environment variables for sensitive information, such as credential
--   data.
cdEnvironment :: Lens' ContainerDefinition [KeyValuePair]

-- | <i>Important:</i> Early versions of the Amazon ECS container agent do
--   not properly handle <tt>entryPoint</tt> parameters. If you have
--   problems using <tt>entryPoint</tt> , update your container agent or
--   enter your commands and arguments as <tt>command</tt> array items
--   instead. The entry point that is passed to the container. This
--   parameter maps to <tt>Entrypoint</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--entrypoint</tt>
--   option to <a>docker run</a> . For more information, see
--   <a>https://docs.docker.com/engine/reference/builder/#entrypoint</a> .
cdEntryPoint :: Lens' ContainerDefinition [Text]

-- | The working directory in which to run commands inside the container.
--   This parameter maps to <tt>WorkingDir</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--workdir</tt> option to <a>docker run</a> .
cdWorkingDirectory :: Lens' ContainerDefinition (Maybe Text)

-- | A list of <tt>ulimits</tt> to set in the container. This parameter
--   maps to <tt>Ulimits</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--ulimit</tt> option to
--   <a>docker run</a> . Valid naming values are displayed in the
--   <a>Ulimit</a> 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: <tt>sudo docker
--   version | grep "Server API version"</tt>
cdUlimits :: Lens' ContainerDefinition [Ulimit]

-- | When this parameter is true, the container is given elevated
--   privileges on the host container instance (similar to the
--   <tt>root</tt> user). This parameter maps to <tt>Privileged</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--privileged</tt> option to <a>docker run</a> .
cdPrivileged :: Lens' ContainerDefinition (Maybe Bool)

-- | 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 <tt>PortBindings</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--publish</tt> option to <a>docker run</a> . If the network
--   mode of a task definition is set to <tt>none</tt> , then you cannot
--   specify port mappings. If the network mode of a task definition is set
--   to <tt>host</tt> , then host ports must either be undefined or they
--   must match the container port in the port mapping.
cdPortMappings :: Lens' ContainerDefinition [PortMapping]

-- | A key<i>value map of labels to add to the container. This parameter
--   maps to <tt>Labels</tt> in the
--   &lt;https:</i><i>docs.docker.com</i>engine<i>reference</i>api<i>docker_remote_api_v1.23</i>#create-a-container
--   Create a container&gt; section of the <a>Docker Remote API</a> and the
--   <tt>--label</tt> option to <a>docker run</a> . 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: <tt>sudo docker version | grep "Server API version"</tt>
cdDockerLabels :: Lens' ContainerDefinition (HashMap Text Text)

-- | A list of hostnames and IP address mappings to append to the
--   <tt><i>etc</i>hosts</tt> file on the container. This parameter maps to
--   <tt>ExtraHosts</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--add-host</tt> option to
--   <a>docker run</a> .
cdExtraHosts :: Lens' ContainerDefinition [HostEntry]

-- | The hard limit (in MiB) of memory to present to the container. If your
--   container attempts to exceed the memory specified here, the container
--   is killed. This parameter maps to <tt>Memory</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--memory</tt> option to <a>docker run</a> . You must specify a
--   non-zero integer for one or both of <tt>memory</tt> or
--   <tt>memoryReservation</tt> in container definitions. If you specify
--   both, <tt>memory</tt> must be greater than <tt>memoryReservation</tt>
--   . If you specify <tt>memoryReservation</tt> , then that value is
--   subtracted from the available memory resources for the container
--   instance on which the container is placed; otherwise, the value of
--   <tt>memory</tt> is used. 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.
cdMemory :: Lens' ContainerDefinition (Maybe Int)

-- | The user name to use inside the container. This parameter maps to
--   <tt>User</tt> in the <a>Create a container</a> section of the
--   <a>Docker Remote API</a> and the <tt>--user</tt> option to <a>docker
--   run</a> .
cdUser :: Lens' ContainerDefinition (Maybe Text)

-- | A list of DNS search domains that are presented to the container. This
--   parameter maps to <tt>DnsSearch</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--dns-search</tt>
--   option to <a>docker run</a> .
cdDnsSearchDomains :: Lens' ContainerDefinition [Text]

-- | The log configuration specification for the container. This parameter
--   maps to <tt>LogConfig</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--log-driver</tt> option to
--   <a>docker run</a> . By default, containers use the same logging driver
--   that the Docker daemon uses; however the container may use a different
--   logging driver than the Docker daemon by specifying a log driver with
--   this parameter in the container definition. To use a different logging
--   driver for a container, the log system must be configured properly on
--   the container instance (or on a different log server for remote
--   logging options). For more information on the options for different
--   supported log drivers, see <a>Configure logging drivers</a> in the
--   Docker documentation. 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: <tt>sudo docker
--   version | grep "Server API version"</tt>
cdLogConfiguration :: Lens' ContainerDefinition (Maybe LogConfiguration)

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

-- | A list of DNS servers that are presented to the container. This
--   parameter maps to <tt>Dns</tt> in the <a>Create a container</a>
--   section of the <a>Docker Remote API</a> and the <tt>--dns</tt> option
--   to <a>docker run</a> .
cdDnsServers :: Lens' ContainerDefinition [Text]

-- | The mount points for data volumes in your container. This parameter
--   maps to <tt>Volumes</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--volume</tt> option to
--   <a>docker run</a> .
cdMountPoints :: Lens' ContainerDefinition [MountPoint]

-- | The <tt>link</tt> parameter allows containers to communicate with each
--   other without the need for port mappings, using the <tt>name</tt>
--   parameter and optionally, an <tt>alias</tt> for the link. This
--   construct is analogous to <tt>name:alias</tt> in Docker links. Up to
--   255 letters (uppercase and lowercase), numbers, hyphens, and
--   underscores are allowed for each <tt>name</tt> and <tt>alias</tt> .
--   For more information on linking Docker containers, see
--   <a>https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/</a>
--   . This parameter maps to <tt>Links</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--link</tt> option to <a>docker run</a> . <i>Important:</i>
--   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.
cdLinks :: Lens' ContainerDefinition [Text]

-- | When this parameter is true, the container is given read-only access
--   to its root file system. This parameter maps to
--   <tt>ReadonlyRootfs</tt> in the <a>Create a container</a> section of
--   the <a>Docker Remote API</a> and the <tt>--read-only</tt> option to
--   <tt>docker run</tt> .
cdReadonlyRootFilesystem :: Lens' ContainerDefinition (Maybe Bool)

-- | If the <tt>essential</tt> parameter of a container is marked as
--   <tt>true</tt> , and that container fails or stops for any reason, all
--   other containers that are part of the task are stopped. If the
--   <tt>essential</tt> parameter of a container is marked as
--   <tt>false</tt> , 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. If you have an application that is composed of multiple
--   containers, you should group containers that are used for a common
--   purpose into components, and separate the different components into
--   multiple task definitions. For more information, see <a>Application
--   Architecture</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .
cdEssential :: Lens' ContainerDefinition (Maybe Bool)

-- | The number of <tt>cpu</tt> units reserved for the container. A
--   container instance has 1,024 <tt>cpu</tt> 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 <tt>CpuShares</tt> in the <a>Create a
--   container</a> section of the <a>Docker Remote API</a> and the
--   <tt>--cpu-shares</tt> option to <a>docker run</a> . 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 <a>CPU share
--   constraint</a> 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: *
--   <b>Agent versions less than or equal to 1.1.0:</b> 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. * <b>Agent versions greater than or
--   equal to 1.2.0:</b> Null, zero, and CPU values of 1 are passed to
--   Docker as 2.
cdCpu :: Lens' ContainerDefinition (Maybe Int)

-- | The soft limit (in MiB) of memory to reserve for the container. When
--   system memory is under heavy contention, Docker attempts to keep the
--   container memory to this soft limit; however, your container can
--   consume more memory when it needs to, up to either the hard limit
--   specified with the <tt>memory</tt> parameter (if applicable), or all
--   of the available memory on the container instance, whichever comes
--   first. This parameter maps to <tt>MemoryReservation</tt> in the
--   <a>Create a container</a> section of the <a>Docker Remote API</a> and
--   the <tt>--memory-reservation</tt> option to <a>docker run</a> . You
--   must specify a non-zero integer for one or both of <tt>memory</tt> or
--   <tt>memoryReservation</tt> in container definitions. If you specify
--   both, <tt>memory</tt> must be greater than <tt>memoryReservation</tt>
--   . If you specify <tt>memoryReservation</tt> , then that value is
--   subtracted from the available memory resources for the container
--   instance on which the container is placed; otherwise, the value of
--   <tt>memory</tt> is used. For example, if your container normally uses
--   128 MiB of memory, but occasionally bursts to 256 MiB of memory for
--   short periods of time, you can set a <tt>memoryReservation</tt> of 128
--   MiB, and a <tt>memory</tt> hard limit of 300 MiB. This configuration
--   would allow the container to only reserve 128 MiB of memory from the
--   remaining resources on the container instance, but also allow the
--   container to consume more memory resources when needed.
cdMemoryReservation :: Lens' ContainerDefinition (Maybe Int)

-- | An EC2 instance that is running the Amazon ECS agent and has been
--   registered with a cluster.
--   
--   <i>See:</i> <a>containerInstance</a> smart constructor.
data ContainerInstance

-- | Creates a value of <a>ContainerInstance</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ciStatus</a> - The status of the container instance. The valid
--   values are <tt>ACTIVE</tt> or <tt>INACTIVE</tt> . <tt>ACTIVE</tt>
--   indicates that the container instance can accept tasks.</li>
--   <li><a>ciRunningTasksCount</a> - The number of tasks on the container
--   instance that are in the <tt>RUNNING</tt> status.</li>
--   <li><a>ciRemainingResources</a> - For most resource types, this
--   parameter describes the remaining resources of the container instance
--   that are available for new tasks. For port resource types, this
--   parameter describes the ports that are reserved by the Amazon ECS
--   container agent and any containers that have reserved port mappings;
--   any port that is not specified here is available for new tasks.</li>
--   <li><a>ciEc2InstanceId</a> - The EC2 instance ID of the container
--   instance.</li>
--   <li><a>ciContainerInstanceARN</a> - The Amazon Resource Name (ARN) of
--   the container instance. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the container instance, the AWS
--   account ID of the container instance owner, the
--   <tt>container-instance</tt> namespace, and then the container instance
--   ID. For example, <tt>arn:aws:ecs:<i>region</i> :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .</li>
--   <li><a>ciAgentConnected</a> - This parameter returns <tt>true</tt> if
--   the agent is actually connected to Amazon ECS. Registered instances
--   with an agent that may be unhealthy or stopped return <tt>false</tt> ,
--   and instances without a connected agent cannot accept placement
--   requests.</li>
--   <li><a>ciVersionInfo</a> - The version information for the Amazon ECS
--   container agent and Docker daemon running on the container
--   instance.</li>
--   <li><a>ciAgentUpdateStatus</a> - The status of the most recent agent
--   update. If an update has never been requested, this value is
--   <tt>NULL</tt> .</li>
--   <li><a>ciAttributes</a> - The attributes set for the container
--   instance by the Amazon ECS container agent at instance
--   registration.</li>
--   <li><a>ciVersion</a> - The version counter for the container instance.
--   Every time a container instance experiences a change that triggers a
--   CloudWatch event, the version counter is incremented. If you are
--   replicating your Amazon ECS container instance state with CloudWatch
--   events, you can compare the version of a container instance reported
--   by the Amazon ECS APIs with the version reported in CloudWatch events
--   for the container instance (inside the <tt>detail</tt> object) to
--   verify that the version in your event stream is current.</li>
--   <li><a>ciPendingTasksCount</a> - The number of tasks on the container
--   instance that are in the <tt>PENDING</tt> status.</li>
--   <li><a>ciRegisteredResources</a> - For most resource types, this
--   parameter describes the registered resources on the container instance
--   that are in use by current tasks. For port resource types, this
--   parameter describes the ports that were reserved by the Amazon ECS
--   container agent when it registered the container instance with Amazon
--   ECS.</li>
--   </ul>
containerInstance :: ContainerInstance

-- | The status of the container instance. The valid values are
--   <tt>ACTIVE</tt> or <tt>INACTIVE</tt> . <tt>ACTIVE</tt> indicates that
--   the container instance can accept tasks.
ciStatus :: Lens' ContainerInstance (Maybe Text)

-- | The number of tasks on the container instance that are in the
--   <tt>RUNNING</tt> status.
ciRunningTasksCount :: Lens' ContainerInstance (Maybe Int)

-- | For most resource types, this parameter describes the remaining
--   resources of the container instance that are available for new tasks.
--   For port resource types, this parameter describes the ports that are
--   reserved by the Amazon ECS container agent and any containers that
--   have reserved port mappings; any port that is not specified here is
--   available for new tasks.
ciRemainingResources :: Lens' ContainerInstance [Resource]

-- | The EC2 instance ID of the container instance.
ciEc2InstanceId :: Lens' ContainerInstance (Maybe Text)

-- | The Amazon Resource Name (ARN) of the container instance. The ARN
--   contains the <tt>arn:aws:ecs</tt> namespace, followed by the region of
--   the container instance, the AWS account ID of the container instance
--   owner, the <tt>container-instance</tt> namespace, and then the
--   container instance ID. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>aws_account_id</i>
--   :container-instance/<i>container_instance_ID</i> </tt> .
ciContainerInstanceARN :: Lens' ContainerInstance (Maybe Text)

-- | This parameter returns <tt>true</tt> if the agent is actually
--   connected to Amazon ECS. Registered instances with an agent that may
--   be unhealthy or stopped return <tt>false</tt> , and instances without
--   a connected agent cannot accept placement requests.
ciAgentConnected :: Lens' ContainerInstance (Maybe Bool)

-- | The version information for the Amazon ECS container agent and Docker
--   daemon running on the container instance.
ciVersionInfo :: Lens' ContainerInstance (Maybe VersionInfo)

-- | The status of the most recent agent update. If an update has never
--   been requested, this value is <tt>NULL</tt> .
ciAgentUpdateStatus :: Lens' ContainerInstance (Maybe AgentUpdateStatus)

-- | The attributes set for the container instance by the Amazon ECS
--   container agent at instance registration.
ciAttributes :: Lens' ContainerInstance [Attribute]

-- | The version counter for the container instance. Every time a container
--   instance experiences a change that triggers a CloudWatch event, the
--   version counter is incremented. If you are replicating your Amazon ECS
--   container instance state with CloudWatch events, you can compare the
--   version of a container instance reported by the Amazon ECS APIs with
--   the version reported in CloudWatch events for the container instance
--   (inside the <tt>detail</tt> object) to verify that the version in your
--   event stream is current.
ciVersion :: Lens' ContainerInstance (Maybe Integer)

-- | The number of tasks on the container instance that are in the
--   <tt>PENDING</tt> status.
ciPendingTasksCount :: Lens' ContainerInstance (Maybe Int)

-- | For most resource types, this parameter describes the registered
--   resources on the container instance that are in use by current tasks.
--   For port resource types, this parameter describes the ports that were
--   reserved by the Amazon ECS container agent when it registered the
--   container instance with Amazon ECS.
ciRegisteredResources :: Lens' ContainerInstance [Resource]

-- | The overrides that should be sent to a container.
--   
--   <i>See:</i> <a>containerOverride</a> smart constructor.
data ContainerOverride

-- | Creates a value of <a>ContainerOverride</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>coCommand</a> - The command to send to the container that
--   overrides the default command from the Docker image or the task
--   definition.</li>
--   <li><a>coEnvironment</a> - 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.</li>
--   <li><a>coName</a> - The name of the container that receives the
--   override.</li>
--   </ul>
containerOverride :: ContainerOverride

-- | The command to send to the container that overrides the default
--   command from the Docker image or the task definition.
coCommand :: Lens' ContainerOverride [Text]

-- | 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.
coEnvironment :: Lens' ContainerOverride [KeyValuePair]

-- | The name of the container that receives the override.
coName :: Lens' ContainerOverride (Maybe Text)

-- | Details on a service within a cluster
--   
--   <i>See:</i> <a>containerService</a> smart constructor.
data ContainerService

-- | Creates a value of <a>ContainerService</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csRunningCount</a> - The number of tasks in the cluster that
--   are in the <tt>RUNNING</tt> state.</li>
--   <li><a>csStatus</a> - The status of the service. The valid values are
--   <tt>ACTIVE</tt> , <tt>DRAINING</tt> , or <tt>INACTIVE</tt> .</li>
--   <li><a>csClusterARN</a> - The Amazon Resource Name (ARN) of the
--   cluster that hosts the service.</li>
--   <li><a>csCreatedAt</a> - The Unix timestamp for when the service was
--   created.</li>
--   <li><a>csDesiredCount</a> - 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 <tt>CreateService</tt> ,
--   and it can be modified with <tt>UpdateService</tt> .</li>
--   <li><a>csLoadBalancers</a> - A list of Elastic Load Balancing 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.</li>
--   <li><a>csPendingCount</a> - The number of tasks in the cluster that
--   are in the <tt>PENDING</tt> state.</li>
--   <li><a>csEvents</a> - The event stream for your service. A maximum of
--   100 of the latest events are displayed.</li>
--   <li><a>csDeployments</a> - The current state of deployments for the
--   service.</li>
--   <li><a>csServiceName</a> - 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.</li>
--   <li><a>csServiceARN</a> - The Amazon Resource Name (ARN) that
--   identifies the service. The ARN contains the <tt>arn:aws:ecs</tt>
--   namespace, followed by the region of the service, the AWS account ID
--   of the service owner, the <tt>service</tt> namespace, and then the
--   service name. For example, <tt>arn:aws:ecs:<i>region</i>
--   :<i>012345678910</i> :service/<i>my-service</i> </tt> .</li>
--   <li><a>csTaskDefinition</a> - The task definition to use for tasks in
--   the service. This value is specified when the service is created with
--   <tt>CreateService</tt> , and it can be modified with
--   <tt>UpdateService</tt> .</li>
--   <li><a>csRoleARN</a> - 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 an Elastic Load Balancing load
--   balancer.</li>
--   <li><a>csDeploymentConfiguration</a> - Optional deployment parameters
--   that control how many tasks run during the deployment and the ordering
--   of stopping and starting tasks.</li>
--   </ul>
containerService :: ContainerService

-- | The number of tasks in the cluster that are in the <tt>RUNNING</tt>
--   state.
csRunningCount :: Lens' ContainerService (Maybe Int)

-- | The status of the service. The valid values are <tt>ACTIVE</tt> ,
--   <tt>DRAINING</tt> , or <tt>INACTIVE</tt> .
csStatus :: Lens' ContainerService (Maybe Text)

-- | The Amazon Resource Name (ARN) of the cluster that hosts the service.
csClusterARN :: Lens' ContainerService (Maybe Text)

-- | The Unix timestamp for when the service was created.
csCreatedAt :: Lens' ContainerService (Maybe UTCTime)

-- | 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 <tt>CreateService</tt> , and it can be modified with
--   <tt>UpdateService</tt> .
csDesiredCount :: Lens' ContainerService (Maybe Int)

-- | A list of Elastic Load Balancing 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.
csLoadBalancers :: Lens' ContainerService [LoadBalancer]

-- | The number of tasks in the cluster that are in the <tt>PENDING</tt>
--   state.
csPendingCount :: Lens' ContainerService (Maybe Int)

-- | The event stream for your service. A maximum of 100 of the latest
--   events are displayed.
csEvents :: Lens' ContainerService [ServiceEvent]

-- | The current state of deployments for the service.
csDeployments :: Lens' ContainerService [Deployment]

-- | 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.
csServiceName :: Lens' ContainerService (Maybe Text)

-- | The Amazon Resource Name (ARN) that identifies the service. The ARN
--   contains the <tt>arn:aws:ecs</tt> namespace, followed by the region of
--   the service, the AWS account ID of the service owner, the
--   <tt>service</tt> namespace, and then the service name. For example,
--   <tt>arn:aws:ecs:<i>region</i> :<i>012345678910</i>
--   :service/<i>my-service</i> </tt> .
csServiceARN :: Lens' ContainerService (Maybe Text)

-- | The task definition to use for tasks in the service. This value is
--   specified when the service is created with <tt>CreateService</tt> ,
--   and it can be modified with <tt>UpdateService</tt> .
csTaskDefinition :: Lens' ContainerService (Maybe Text)

-- | 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 an Elastic Load Balancing load balancer.
csRoleARN :: Lens' ContainerService (Maybe Text)

-- | Optional deployment parameters that control how many tasks run during
--   the deployment and the ordering of stopping and starting tasks.
csDeploymentConfiguration :: Lens' ContainerService (Maybe DeploymentConfiguration)

-- | The details of an Amazon ECS service deployment.
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dRunningCount</a> - The number of tasks in the deployment that
--   are in the <tt>RUNNING</tt> status.</li>
--   <li><a>dStatus</a> - The status of the deployment. Valid values are
--   <tt>PRIMARY</tt> (for the most recent deployment), <tt>ACTIVE</tt>
--   (for previous deployments that still have tasks running, but are being
--   replaced with the <tt>PRIMARY</tt> deployment), and <tt>INACTIVE</tt>
--   (for deployments that have been completely replaced).</li>
--   <li><a>dCreatedAt</a> - The Unix timestamp for when the service was
--   created.</li>
--   <li><a>dDesiredCount</a> - The most recent desired count of tasks that
--   was specified for the service to deploy or maintain.</li>
--   <li><a>dPendingCount</a> - The number of tasks in the deployment that
--   are in the <tt>PENDING</tt> status.</li>
--   <li><a>dId</a> - The ID of the deployment.</li>
--   <li><a>dUpdatedAt</a> - The Unix timestamp for when the service was
--   last updated.</li>
--   <li><a>dTaskDefinition</a> - The most recent task definition that was
--   specified for the service to use.</li>
--   </ul>
deployment :: Deployment

-- | The number of tasks in the deployment that are in the <tt>RUNNING</tt>
--   status.
dRunningCount :: Lens' Deployment (Maybe Int)

-- | The status of the deployment. Valid values are <tt>PRIMARY</tt> (for
--   the most recent deployment), <tt>ACTIVE</tt> (for previous deployments
--   that still have tasks running, but are being replaced with the
--   <tt>PRIMARY</tt> deployment), and <tt>INACTIVE</tt> (for deployments
--   that have been completely replaced).
dStatus :: Lens' Deployment (Maybe Text)

-- | The Unix timestamp for when the service was created.
dCreatedAt :: Lens' Deployment (Maybe UTCTime)

-- | The most recent desired count of tasks that was specified for the
--   service to deploy or maintain.
dDesiredCount :: Lens' Deployment (Maybe Int)

-- | The number of tasks in the deployment that are in the <tt>PENDING</tt>
--   status.
dPendingCount :: Lens' Deployment (Maybe Int)

-- | The ID of the deployment.
dId :: Lens' Deployment (Maybe Text)

-- | The Unix timestamp for when the service was last updated.
dUpdatedAt :: Lens' Deployment (Maybe UTCTime)

-- | The most recent task definition that was specified for the service to
--   use.
dTaskDefinition :: Lens' Deployment (Maybe Text)

-- | Optional deployment parameters that control how many tasks run during
--   the deployment and the ordering of stopping and starting tasks.
--   
--   <i>See:</i> <a>deploymentConfiguration</a> smart constructor.
data DeploymentConfiguration

-- | Creates a value of <a>DeploymentConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcMinimumHealthyPercent</a> - The lower limit (as a percentage
--   of the service's <tt>desiredCount</tt> ) of the number of running
--   tasks that must remain in the <tt>RUNNING</tt> state in a service
--   during a deployment. The minimum healthy tasks during a deployment is
--   the <tt>desiredCount</tt> multiplied by the
--   <tt>minimumHealthyPercent</tt> /100, rounded up to the nearest integer
--   value.</li>
--   <li><a>dcMaximumPercent</a> - The upper limit (as a percentage of the
--   service's <tt>desiredCount</tt> ) of the number of tasks that are
--   allowed in the <tt>RUNNING</tt> or <tt>PENDING</tt> state in a service
--   during a deployment. The maximum number of tasks during a deployment
--   is the <tt>desiredCount</tt> multiplied by the <tt>maximumPercent</tt>
--   /100, rounded down to the nearest integer value.</li>
--   </ul>
deploymentConfiguration :: DeploymentConfiguration

-- | The lower limit (as a percentage of the service's
--   <tt>desiredCount</tt> ) of the number of running tasks that must
--   remain in the <tt>RUNNING</tt> state in a service during a deployment.
--   The minimum healthy tasks during a deployment is the
--   <tt>desiredCount</tt> multiplied by the <tt>minimumHealthyPercent</tt>
--   /100, rounded up to the nearest integer value.
dcMinimumHealthyPercent :: Lens' DeploymentConfiguration (Maybe Int)

-- | The upper limit (as a percentage of the service's
--   <tt>desiredCount</tt> ) of the number of tasks that are allowed in the
--   <tt>RUNNING</tt> or <tt>PENDING</tt> state in a service during a
--   deployment. The maximum number of tasks during a deployment is the
--   <tt>desiredCount</tt> multiplied by the <tt>maximumPercent</tt> /100,
--   rounded down to the nearest integer value.
dcMaximumPercent :: Lens' DeploymentConfiguration (Maybe Int)

-- | A failed resource.
--   
--   <i>See:</i> <a>failure</a> smart constructor.
data Failure

-- | Creates a value of <a>Failure</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fArn</a> - The Amazon Resource Name (ARN) of the failed
--   resource.</li>
--   <li><a>fReason</a> - The reason for the failure.</li>
--   </ul>
failure :: Failure

-- | The Amazon Resource Name (ARN) of the failed resource.
fArn :: Lens' Failure (Maybe Text)

-- | The reason for the failure.
fReason :: Lens' Failure (Maybe Text)

-- | Hostnames and IP address entries that are added to the
--   <tt><i>etc</i>hosts</tt> file of a container via the
--   <tt>extraHosts</tt> parameter of its <a>ContainerDefinition</a> .
--   
--   <i>See:</i> <a>hostEntry</a> smart constructor.
data HostEntry

-- | Creates a value of <a>HostEntry</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>heHostname</a> - The hostname to use in the
--   <tt><i>etc</i>hosts</tt> entry.</li>
--   <li><a>heIpAddress</a> - The IP address to use in the
--   <tt><i>etc</i>hosts</tt> entry.</li>
--   </ul>
hostEntry :: Text -> Text -> HostEntry

-- | The hostname to use in the <tt><i>etc</i>hosts</tt> entry.
heHostname :: Lens' HostEntry Text

-- | The IP address to use in the <tt><i>etc</i>hosts</tt> entry.
heIpAddress :: Lens' HostEntry Text

-- | Details on a container instance host volume.
--   
--   <i>See:</i> <a>hostVolumeProperties</a> smart constructor.
data HostVolumeProperties

-- | Creates a value of <a>HostVolumeProperties</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hvpSourcePath</a> - 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
--   <tt>host</tt> parameter contains a <tt>sourcePath</tt> file location,
--   then the data volume persists at the specified location on the host
--   container instance until you delete it manually. If the
--   <tt>sourcePath</tt> 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.</li>
--   </ul>
hostVolumeProperties :: HostVolumeProperties

-- | 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 <tt>host</tt> parameter contains
--   a <tt>sourcePath</tt> file location, then the data volume persists at
--   the specified location on the host container instance until you delete
--   it manually. If the <tt>sourcePath</tt> 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.
hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text)

-- | A key and value pair object.
--   
--   <i>See:</i> <a>keyValuePair</a> smart constructor.
data KeyValuePair

-- | Creates a value of <a>KeyValuePair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kvpValue</a> - The value of the key value pair. For environment
--   variables, this is the value of the environment variable.</li>
--   <li><a>kvpName</a> - The name of the key value pair. For environment
--   variables, this is the name of the environment variable.</li>
--   </ul>
keyValuePair :: KeyValuePair

-- | The value of the key value pair. For environment variables, this is
--   the value of the environment variable.
kvpValue :: Lens' KeyValuePair (Maybe Text)

-- | The name of the key value pair. For environment variables, this is the
--   name of the environment variable.
kvpName :: Lens' KeyValuePair (Maybe Text)

-- | Details on a load balancer that is used with a service.
--   
--   <i>See:</i> <a>loadBalancer</a> smart constructor.
data LoadBalancer

-- | Creates a value of <a>LoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>lbContainerName</a> - The name of the container (as it appears
--   in a container definition) to associate with the load balancer.</li>
--   <li><a>lbTargetGroupARN</a> - The full Amazon Resource Name (ARN) of
--   the Elastic Load Balancing target group associated with a
--   service.</li>
--   <li><a>lbContainerPort</a> - The port on the container to associate
--   with the load balancer. This port must correspond to a
--   <tt>containerPort</tt> in the service's task definition. Your
--   container instances must allow ingress traffic on the
--   <tt>hostPort</tt> of the port mapping.</li>
--   </ul>
loadBalancer :: LoadBalancer

-- | The name of the load balancer.
lbLoadBalancerName :: Lens' LoadBalancer (Maybe Text)

-- | The name of the container (as it appears in a container definition) to
--   associate with the load balancer.
lbContainerName :: Lens' LoadBalancer (Maybe Text)

-- | The full Amazon Resource Name (ARN) of the Elastic Load Balancing
--   target group associated with a service.
lbTargetGroupARN :: Lens' LoadBalancer (Maybe Text)

-- | The port on the container to associate with the load balancer. This
--   port must correspond to a <tt>containerPort</tt> in the service's task
--   definition. Your container instances must allow ingress traffic on the
--   <tt>hostPort</tt> of the port mapping.
lbContainerPort :: Lens' LoadBalancer (Maybe Int)

-- | Log configuration options to send to a custom log driver for the
--   container.
--   
--   <i>See:</i> <a>logConfiguration</a> smart constructor.
data LogConfiguration

-- | Creates a value of <a>LogConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcOptions</a> - 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: <tt>sudo docker version | grep "Server
--   API version"</tt></li>
--   <li><a>lcLogDriver</a> - The log driver to use for the container. The
--   valid values listed for this parameter are log drivers that the Amazon
--   ECS container agent can communicate with by default. 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: <tt>sudo docker version | grep "Server API
--   version"</tt></li>
--   </ul>
logConfiguration :: LogDriver -> LogConfiguration

-- | 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: <tt>sudo docker version | grep "Server API
--   version"</tt>
lcOptions :: Lens' LogConfiguration (HashMap Text Text)

-- | The log driver to use for the container. The valid values listed for
--   this parameter are log drivers that the Amazon ECS container agent can
--   communicate with by default. 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: <tt>sudo docker
--   version | grep "Server API version"</tt>
lcLogDriver :: Lens' LogConfiguration LogDriver

-- | Details on a volume mount point that is used in a container
--   definition.
--   
--   <i>See:</i> <a>mountPoint</a> smart constructor.
data MountPoint

-- | Creates a value of <a>MountPoint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mpContainerPath</a> - The path on the container to mount the
--   host volume at.</li>
--   <li><a>mpSourceVolume</a> - The name of the volume to mount.</li>
--   <li><a>mpReadOnly</a> - If this value is <tt>true</tt> , the container
--   has read-only access to the volume. If this value is <tt>false</tt> ,
--   then the container can write to the volume. The default value is
--   <tt>false</tt> .</li>
--   </ul>
mountPoint :: MountPoint

-- | The path on the container to mount the host volume at.
mpContainerPath :: Lens' MountPoint (Maybe Text)

-- | The name of the volume to mount.
mpSourceVolume :: Lens' MountPoint (Maybe Text)

-- | If this value is <tt>true</tt> , the container has read-only access to
--   the volume. If this value is <tt>false</tt> , then the container can
--   write to the volume. The default value is <tt>false</tt> .
mpReadOnly :: Lens' MountPoint (Maybe Bool)

-- | Details on the network bindings between a container and its host
--   container instance. After a task reaches the <tt>RUNNING</tt> status,
--   manual and automatic host and container port assignments are visible
--   in the <tt>networkBindings</tt> section of <tt>DescribeTasks</tt> API
--   responses.
--   
--   <i>See:</i> <a>networkBinding</a> smart constructor.
data NetworkBinding

-- | Creates a value of <a>NetworkBinding</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nbBindIP</a> - The IP address that the container is bound to on
--   the container instance.</li>
--   <li><a>nbProtocol</a> - The protocol used for the network
--   binding.</li>
--   <li><a>nbHostPort</a> - The port number on the host that is used with
--   the network binding.</li>
--   <li><a>nbContainerPort</a> - The port number on the container that is
--   be used with the network binding.</li>
--   </ul>
networkBinding :: NetworkBinding

-- | The IP address that the container is bound to on the container
--   instance.
nbBindIP :: Lens' NetworkBinding (Maybe Text)

-- | The protocol used for the network binding.
nbProtocol :: Lens' NetworkBinding (Maybe TransportProtocol)

-- | The port number on the host that is used with the network binding.
nbHostPort :: Lens' NetworkBinding (Maybe Int)

-- | The port number on the container that is be used with the network
--   binding.
nbContainerPort :: Lens' NetworkBinding (Maybe Int)

-- | 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
--   <tt>RUNNING</tt> status, manual and automatic host and container port
--   assignments are visible in the <tt>networkBindings</tt> section of
--   <tt>DescribeTasks</tt> API responses.
--   
--   <i>See:</i> <a>portMapping</a> smart constructor.
data PortMapping

-- | Creates a value of <a>PortMapping</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmProtocol</a> - The protocol used for the port mapping. Valid
--   values are <tt>tcp</tt> and <tt>udp</tt> . The default is <tt>tcp</tt>
--   .</li>
--   <li><a>pmHostPort</a> - 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 <tt>hostPort</tt>
--   (or set it to <tt>0</tt> ) while specifying a <tt>containerPort</tt>
--   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
--   <tt><i>proc</i>sys<i>net</i>ipv4/ip_local_port_range</tt> ; 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 ports 51678 and 51679. 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
--   <tt>remainingResources</tt> of <tt>DescribeContainerInstances</tt>
--   output, and a container instance may have up to 100 reserved ports at
--   a time, including the default reserved ports (automatically assigned
--   ports do not count toward the 100 reserved ports limit).</li>
--   <li><a>pmContainerPort</a> - 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 <tt>hostPort</tt> ). Port mappings that are
--   automatically assigned in this way do not count toward the 100
--   reserved ports limit of a container instance.</li>
--   </ul>
portMapping :: PortMapping

-- | The protocol used for the port mapping. Valid values are <tt>tcp</tt>
--   and <tt>udp</tt> . The default is <tt>tcp</tt> .
pmProtocol :: Lens' PortMapping (Maybe TransportProtocol)

-- | 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 <tt>hostPort</tt> (or set it to
--   <tt>0</tt> ) while specifying a <tt>containerPort</tt> 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
--   <tt><i>proc</i>sys<i>net</i>ipv4/ip_local_port_range</tt> ; 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 ports 51678 and 51679. 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
--   <tt>remainingResources</tt> of <tt>DescribeContainerInstances</tt>
--   output, and a container instance may have up to 100 reserved ports at
--   a time, including the default reserved ports (automatically assigned
--   ports do not count toward the 100 reserved ports limit).
pmHostPort :: Lens' PortMapping (Maybe Int)

-- | 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
--   <tt>hostPort</tt> ). Port mappings that are automatically assigned in
--   this way do not count toward the 100 reserved ports limit of a
--   container instance.
pmContainerPort :: Lens' PortMapping (Maybe Int)

-- | Describes the resources available for a container instance.
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rStringSetValue</a> - When the <tt>stringSetValue</tt> type is
--   set, the value of the resource must be a string type.</li>
--   <li><a>rIntegerValue</a> - When the <tt>integerValue</tt> type is set,
--   the value of the resource must be an integer.</li>
--   <li><a>rDoubleValue</a> - When the <tt>doubleValue</tt> type is set,
--   the value of the resource must be a double precision floating-point
--   type.</li>
--   <li><a>rLongValue</a> - When the <tt>longValue</tt> type is set, the
--   value of the resource must be an extended precision floating-point
--   type.</li>
--   <li><a>rName</a> - The name of the resource, such as <tt>CPU</tt> ,
--   <tt>MEMORY</tt> , <tt>PORTS</tt> , or a user-defined resource.</li>
--   <li><a>rType</a> - The type of the resource, such as <tt>INTEGER</tt>
--   , <tt>DOUBLE</tt> , <tt>LONG</tt> , or <tt>STRINGSET</tt> .</li>
--   </ul>
resource :: Resource

-- | When the <tt>stringSetValue</tt> type is set, the value of the
--   resource must be a string type.
rStringSetValue :: Lens' Resource [Text]

-- | When the <tt>integerValue</tt> type is set, the value of the resource
--   must be an integer.
rIntegerValue :: Lens' Resource (Maybe Int)

-- | When the <tt>doubleValue</tt> type is set, the value of the resource
--   must be a double precision floating-point type.
rDoubleValue :: Lens' Resource (Maybe Double)

-- | When the <tt>longValue</tt> type is set, the value of the resource
--   must be an extended precision floating-point type.
rLongValue :: Lens' Resource (Maybe Integer)

-- | The name of the resource, such as <tt>CPU</tt> , <tt>MEMORY</tt> ,
--   <tt>PORTS</tt> , or a user-defined resource.
rName :: Lens' Resource (Maybe Text)

-- | The type of the resource, such as <tt>INTEGER</tt> , <tt>DOUBLE</tt> ,
--   <tt>LONG</tt> , or <tt>STRINGSET</tt> .
rType :: Lens' Resource (Maybe Text)

-- | Details on an event associated with a service.
--   
--   <i>See:</i> <a>serviceEvent</a> smart constructor.
data ServiceEvent

-- | Creates a value of <a>ServiceEvent</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seCreatedAt</a> - The Unix timestamp for when the event was
--   triggered.</li>
--   <li><a>seId</a> - The ID string of the event.</li>
--   <li><a>seMessage</a> - The event message.</li>
--   </ul>
serviceEvent :: ServiceEvent

-- | The Unix timestamp for when the event was triggered.
seCreatedAt :: Lens' ServiceEvent (Maybe UTCTime)

-- | The ID string of the event.
seId :: Lens' ServiceEvent (Maybe Text)

-- | The event message.
seMessage :: Lens' ServiceEvent (Maybe Text)

-- | Details on a task in a cluster.
--   
--   <i>See:</i> <a>task</a> smart constructor.
data Task

-- | Creates a value of <a>Task</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tStoppedAt</a> - The Unix timestamp for when the task was
--   stopped (the task transitioned from the <tt>RUNNING</tt> state to the
--   <tt>STOPPED</tt> state).</li>
--   <li><a>tDesiredStatus</a> - The desired status of the task.</li>
--   <li><a>tOverrides</a> - One or more container overrides.</li>
--   <li><a>tClusterARN</a> - The Amazon Resource Name (ARN) of the cluster
--   that hosts the task.</li>
--   <li><a>tCreatedAt</a> - The Unix timestamp for when the task was
--   created (the task entered the <tt>PENDING</tt> state).</li>
--   <li><a>tTaskARN</a> - The Amazon Resource Name (ARN) of the task.</li>
--   <li><a>tContainerInstanceARN</a> - The Amazon Resource Name (ARN) of
--   the container instances that host the task.</li>
--   <li><a>tLastStatus</a> - The last known status of the task.</li>
--   <li><a>tContainers</a> - The containers associated with the task.</li>
--   <li><a>tStartedAt</a> - The Unix timestamp for when the task was
--   started (the task transitioned from the <tt>PENDING</tt> state to the
--   <tt>RUNNING</tt> state).</li>
--   <li><a>tVersion</a> - The version counter for the task. Every time a
--   task experiences a change that triggers a CloudWatch event, the
--   version counter is incremented. If you are replicating your Amazon ECS
--   task state with CloudWatch events, you can compare the version of a
--   task reported by the Amazon ECS APIs with the version reported in
--   CloudWatch events for the task (inside the <tt>detail</tt> object) to
--   verify that the version in your event stream is current.</li>
--   <li><a>tStartedBy</a> - The tag specified when a task is started. If
--   the task is started by an Amazon ECS service, then the
--   <tt>startedBy</tt> parameter contains the deployment ID of the service
--   that starts it.</li>
--   <li><a>tStoppedReason</a> - The reason the task was stopped.</li>
--   <li><a>tTaskDefinitionARN</a> - The Amazon Resource Name (ARN) of the
--   task definition that creates the task.</li>
--   </ul>
task :: Task

-- | The Unix timestamp for when the task was stopped (the task
--   transitioned from the <tt>RUNNING</tt> state to the <tt>STOPPED</tt>
--   state).
tStoppedAt :: Lens' Task (Maybe UTCTime)

-- | The desired status of the task.
tDesiredStatus :: Lens' Task (Maybe Text)

-- | One or more container overrides.
tOverrides :: Lens' Task (Maybe TaskOverride)

-- | The Amazon Resource Name (ARN) of the cluster that hosts the task.
tClusterARN :: Lens' Task (Maybe Text)

-- | The Unix timestamp for when the task was created (the task entered the
--   <tt>PENDING</tt> state).
tCreatedAt :: Lens' Task (Maybe UTCTime)

-- | The Amazon Resource Name (ARN) of the task.
tTaskARN :: Lens' Task (Maybe Text)

-- | The Amazon Resource Name (ARN) of the container instances that host
--   the task.
tContainerInstanceARN :: Lens' Task (Maybe Text)

-- | The last known status of the task.
tLastStatus :: Lens' Task (Maybe Text)

-- | The containers associated with the task.
tContainers :: Lens' Task [Container]

-- | The Unix timestamp for when the task was started (the task
--   transitioned from the <tt>PENDING</tt> state to the <tt>RUNNING</tt>
--   state).
tStartedAt :: Lens' Task (Maybe UTCTime)

-- | The version counter for the task. Every time a task experiences a
--   change that triggers a CloudWatch event, the version counter is
--   incremented. If you are replicating your Amazon ECS task state with
--   CloudWatch events, you can compare the version of a task reported by
--   the Amazon ECS APIs with the version reported in CloudWatch events for
--   the task (inside the <tt>detail</tt> object) to verify that the
--   version in your event stream is current.
tVersion :: Lens' Task (Maybe Integer)

-- | The tag specified when a task is started. If the task is started by an
--   Amazon ECS service, then the <tt>startedBy</tt> parameter contains the
--   deployment ID of the service that starts it.
tStartedBy :: Lens' Task (Maybe Text)

-- | The reason the task was stopped.
tStoppedReason :: Lens' Task (Maybe Text)

-- | The Amazon Resource Name (ARN) of the task definition that creates the
--   task.
tTaskDefinitionARN :: Lens' Task (Maybe Text)

-- | Details of a task definition.
--   
--   <i>See:</i> <a>taskDefinition</a> smart constructor.
data TaskDefinition

-- | Creates a value of <a>TaskDefinition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdStatus</a> - The status of the task definition.</li>
--   <li><a>tdFamily</a> - The family of your task definition, used as the
--   definition name.</li>
--   <li><a>tdContainerDefinitions</a> - 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 <a>Amazon ECS Task Definitions</a> in the <i>Amazon EC2
--   Container Service Developer Guide</i> .</li>
--   <li><a>tdTaskRoleARN</a> - The Amazon Resource Name (ARN) of the IAM
--   role that containers in this task can assume. All containers in this
--   task are granted the permissions that are specified in this role.</li>
--   <li><a>tdNetworkMode</a> - The Docker networking mode to use for the
--   containers in the task. The valid values are <tt>none</tt> ,
--   <tt>bridge</tt> , and <tt>host</tt> . If the network mode is
--   <tt>none</tt> , the containers do not have external connectivity. The
--   default Docker network mode is <tt>bridge</tt> . The <tt>host</tt>
--   network mode offers the highest networking performance for containers
--   because it uses the host network stack instead of the virtualized
--   network stack provided by the <tt>bridge</tt> mode. For more
--   information, see <a>Network settings</a> in the <i>Docker run
--   reference</i> .</li>
--   <li><a>tdTaskDefinitionARN</a> - The full Amazon Resource Name (ARN)
--   of the task definition.</li>
--   <li><a>tdRevision</a> - 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 <tt>1</tt> ; 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).</li>
--   <li><a>tdVolumes</a> - The list of volumes in a task. For more
--   information about volume definition parameters and defaults, see
--   <a>Amazon ECS Task Definitions</a> in the <i>Amazon EC2 Container
--   Service Developer Guide</i> .</li>
--   <li><a>tdRequiresAttributes</a> - The container instance attributes
--   required by your task.</li>
--   </ul>
taskDefinition :: TaskDefinition

-- | The status of the task definition.
tdStatus :: Lens' TaskDefinition (Maybe TaskDefinitionStatus)

-- | The family of your task definition, used as the definition name.
tdFamily :: Lens' TaskDefinition (Maybe Text)

-- | 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 <a>Amazon ECS
--   Task Definitions</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .
tdContainerDefinitions :: Lens' TaskDefinition [ContainerDefinition]

-- | The Amazon Resource Name (ARN) of the IAM role that containers in this
--   task can assume. All containers in this task are granted the
--   permissions that are specified in this role.
tdTaskRoleARN :: Lens' TaskDefinition (Maybe Text)

-- | The Docker networking mode to use for the containers in the task. The
--   valid values are <tt>none</tt> , <tt>bridge</tt> , and <tt>host</tt> .
--   If the network mode is <tt>none</tt> , the containers do not have
--   external connectivity. The default Docker network mode is
--   <tt>bridge</tt> . The <tt>host</tt> network mode offers the highest
--   networking performance for containers because it uses the host network
--   stack instead of the virtualized network stack provided by the
--   <tt>bridge</tt> mode. For more information, see <a>Network
--   settings</a> in the <i>Docker run reference</i> .
tdNetworkMode :: Lens' TaskDefinition (Maybe NetworkMode)

-- | The full Amazon Resource Name (ARN) of the task definition.
tdTaskDefinitionARN :: Lens' TaskDefinition (Maybe Text)

-- | 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 <tt>1</tt> ; 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).
tdRevision :: Lens' TaskDefinition (Maybe Int)

-- | The list of volumes in a task. For more information about volume
--   definition parameters and defaults, see <a>Amazon ECS Task
--   Definitions</a> in the <i>Amazon EC2 Container Service Developer
--   Guide</i> .
tdVolumes :: Lens' TaskDefinition [Volume]

-- | The container instance attributes required by your task.
tdRequiresAttributes :: Lens' TaskDefinition [Attribute]

-- | The overrides associated with a task.
--   
--   <i>See:</i> <a>taskOverride</a> smart constructor.
data TaskOverride

-- | Creates a value of <a>TaskOverride</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>toContainerOverrides</a> - One or more container overrides sent
--   to a task.</li>
--   <li><a>toTaskRoleARN</a> - The Amazon Resource Name (ARN) of the IAM
--   role that containers in this task can assume. All containers in this
--   task are granted the permissions that are specified in this role.</li>
--   </ul>
taskOverride :: TaskOverride

-- | One or more container overrides sent to a task.
toContainerOverrides :: Lens' TaskOverride [ContainerOverride]

-- | The Amazon Resource Name (ARN) of the IAM role that containers in this
--   task can assume. All containers in this task are granted the
--   permissions that are specified in this role.
toTaskRoleARN :: Lens' TaskOverride (Maybe Text)

-- | The <tt>ulimit</tt> settings to pass to the container.
--   
--   <i>See:</i> <a>ulimit</a> smart constructor.
data Ulimit

-- | Creates a value of <a>Ulimit</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uName</a> - The <tt>type</tt> of the <tt>ulimit</tt> .</li>
--   <li><a>uSoftLimit</a> - The soft limit for the ulimit type.</li>
--   <li><a>uHardLimit</a> - The hard limit for the ulimit type.</li>
--   </ul>
ulimit :: UlimitName -> Int -> Int -> Ulimit

-- | The <tt>type</tt> of the <tt>ulimit</tt> .
uName :: Lens' Ulimit UlimitName

-- | The soft limit for the ulimit type.
uSoftLimit :: Lens' Ulimit Int

-- | The hard limit for the ulimit type.
uHardLimit :: Lens' Ulimit Int

-- | The Docker and Amazon ECS container agent version information about a
--   container instance.
--   
--   <i>See:</i> <a>versionInfo</a> smart constructor.
data VersionInfo

-- | Creates a value of <a>VersionInfo</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>viAgentHash</a> - The Git commit hash for the Amazon ECS
--   container agent build on the <a>amazon-ecs-agent</a> GitHub
--   repository.</li>
--   <li><a>viAgentVersion</a> - The version number of the Amazon ECS
--   container agent.</li>
--   <li><a>viDockerVersion</a> - The Docker version running on the
--   container instance.</li>
--   </ul>
versionInfo :: VersionInfo

-- | The Git commit hash for the Amazon ECS container agent build on the
--   <a>amazon-ecs-agent</a> GitHub repository.
viAgentHash :: Lens' VersionInfo (Maybe Text)

-- | The version number of the Amazon ECS container agent.
viAgentVersion :: Lens' VersionInfo (Maybe Text)

-- | The Docker version running on the container instance.
viDockerVersion :: Lens' VersionInfo (Maybe Text)

-- | A data volume used in a task definition.
--   
--   <i>See:</i> <a>volume</a> smart constructor.
data Volume

-- | Creates a value of <a>Volume</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vName</a> - The name of the volume. Up to 255 letters
--   (uppercase and lowercase), numbers, hyphens, and underscores are
--   allowed. This name is referenced in the <tt>sourceVolume</tt>
--   parameter of container definition <tt>mountPoints</tt> .</li>
--   <li><a>vHost</a> - The contents of the <tt>host</tt> 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.</li>
--   </ul>
volume :: Volume

-- | The name of the volume. Up to 255 letters (uppercase and lowercase),
--   numbers, hyphens, and underscores are allowed. This name is referenced
--   in the <tt>sourceVolume</tt> parameter of container definition
--   <tt>mountPoints</tt> .
vName :: Lens' Volume (Maybe Text)

-- | The contents of the <tt>host</tt> 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.
vHost :: Lens' Volume (Maybe HostVolumeProperties)

-- | Details on a data volume from another container.
--   
--   <i>See:</i> <a>volumeFrom</a> smart constructor.
data VolumeFrom

-- | Creates a value of <a>VolumeFrom</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>vfSourceContainer</a> - The name of the container to mount
--   volumes from.</li>
--   <li><a>vfReadOnly</a> - If this value is <tt>true</tt> , the container
--   has read-only access to the volume. If this value is <tt>false</tt> ,
--   then the container can write to the volume. The default value is
--   <tt>false</tt> .</li>
--   </ul>
volumeFrom :: VolumeFrom

-- | The name of the container to mount volumes from.
vfSourceContainer :: Lens' VolumeFrom (Maybe Text)

-- | If this value is <tt>true</tt> , the container has read-only access to
--   the volume. If this value is <tt>false</tt> , then the container can
--   write to the volume. The default value is <tt>false</tt> .
vfReadOnly :: Lens' VolumeFrom (Maybe Bool)
