packages feed

amazonka-ecs (empty) → 0.3.0

raw patch · 26 files changed

+4334/−0 lines, 26 filesdep +amazonka-coredep +basesetup-changed

Dependencies added: amazonka-core, base

Files

+ LICENSE view
@@ -0,0 +1,373 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.++Exhibit B - "Incompatible With Secondary Licenses" Notice+---------------------------------------------------------++  This Source Code Form is "Incompatible With Secondary Licenses", as+  defined by the Mozilla Public License, v. 2.0.
+ README.md view
@@ -0,0 +1,40 @@+# Amazon EC2 Container Service SDK++> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!++* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)++## Description++Amazon EC2 Container Service is a highly scalable, high performance container+management service that supports Docker containers and allows you to easily+run distributed applications on a managed cluster of Amazon EC2 instances.+Amazon EC2 Container Service lets you launch and stop container-enabled+applications with simple API calls, allows you to query the state of your+cluster from a centralized service, and gives you access to many familiar+Amazon EC2 features like security groups, EBS volumes and IAM roles. You can+use EC2 Container Service 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.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ecs)+and the [AWS API Reference](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/Welcome.html).+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-ecs` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ amazonka-ecs.cabal view
@@ -0,0 +1,73 @@+name:                  amazonka-ecs+version:               0.3.0+synopsis:              Amazon EC2 Container Service SDK.+homepage:              https://github.com/brendanhay/amazonka+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2014 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+extra-source-files:    README.md+cabal-version:         >= 1.10++description:+    Amazon EC2 Container Service is a highly scalable, high performance container+    management service that supports Docker containers and allows you to easily+    run distributed applications on a managed cluster of Amazon EC2 instances.+    Amazon EC2 Container Service lets you launch and stop container-enabled+    applications with simple API calls, allows you to query the state of your+    cluster from a centralized service, and gives you access to many familiar+    Amazon EC2 features like security groups, EBS volumes and IAM roles. You can+    use EC2 Container Service 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.++    .+    /See:/ <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/Welcome.html AWS API Reference>+    .+    /Warning:/ This is an experimental preview release which is still under+    heavy development and not intended for public consumption, caveat emptor!++source-repository head+    type:     git+    location: git://github.com/brendanhay/amazonka.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.AWS.ECS+        , Network.AWS.ECS.CreateCluster+        , Network.AWS.ECS.DeleteCluster+        , Network.AWS.ECS.DeregisterContainerInstance+        , Network.AWS.ECS.DeregisterTaskDefinition+        , Network.AWS.ECS.DescribeClusters+        , Network.AWS.ECS.DescribeContainerInstances+        , Network.AWS.ECS.DescribeTaskDefinition+        , Network.AWS.ECS.DescribeTasks+        , Network.AWS.ECS.DiscoverPollEndpoint+        , Network.AWS.ECS.ListClusters+        , Network.AWS.ECS.ListContainerInstances+        , Network.AWS.ECS.ListTaskDefinitions+        , Network.AWS.ECS.ListTasks+        , Network.AWS.ECS.RegisterContainerInstance+        , Network.AWS.ECS.RegisterTaskDefinition+        , Network.AWS.ECS.RunTask+        , Network.AWS.ECS.StartTask+        , Network.AWS.ECS.StopTask+        , Network.AWS.ECS.SubmitContainerStateChange+        , Network.AWS.ECS.SubmitTaskStateChange+        , Network.AWS.ECS.Types++    other-modules:++    build-depends:+          amazonka-core == 0.3.0.*+        , base          >= 4.7     && < 5
+ gen/Network/AWS/ECS.hs view
@@ -0,0 +1,69 @@+-- Module      : Network.AWS.ECS+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Amazon EC2 Container Service is a highly scalable, high performance container+-- management service that supports Docker containers and allows you to easily+-- run distributed applications on a managed cluster of Amazon EC2 instances.+-- Amazon EC2 Container Service lets you launch and stop container-enabled+-- applications with simple API calls, allows you to query the state of your+-- cluster from a centralized service, and gives you access to many familiar+-- Amazon EC2 features like security groups, EBS volumes and IAM roles. You can+-- use EC2 Container Service 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+    ( module Network.AWS.ECS.CreateCluster+    , module Network.AWS.ECS.DeleteCluster+    , module Network.AWS.ECS.DeregisterContainerInstance+    , module Network.AWS.ECS.DeregisterTaskDefinition+    , module Network.AWS.ECS.DescribeClusters+    , module Network.AWS.ECS.DescribeContainerInstances+    , module Network.AWS.ECS.DescribeTaskDefinition+    , module Network.AWS.ECS.DescribeTasks+    , module Network.AWS.ECS.DiscoverPollEndpoint+    , module Network.AWS.ECS.ListClusters+    , module Network.AWS.ECS.ListContainerInstances+    , module Network.AWS.ECS.ListTaskDefinitions+    , module Network.AWS.ECS.ListTasks+    , module Network.AWS.ECS.RegisterContainerInstance+    , module Network.AWS.ECS.RegisterTaskDefinition+    , module Network.AWS.ECS.RunTask+    , module Network.AWS.ECS.StartTask+    , module Network.AWS.ECS.StopTask+    , module Network.AWS.ECS.SubmitContainerStateChange+    , module Network.AWS.ECS.SubmitTaskStateChange+    , module Network.AWS.ECS.Types+    ) where++import Network.AWS.ECS.CreateCluster+import Network.AWS.ECS.DeleteCluster+import Network.AWS.ECS.DeregisterContainerInstance+import Network.AWS.ECS.DeregisterTaskDefinition+import Network.AWS.ECS.DescribeClusters+import Network.AWS.ECS.DescribeContainerInstances+import Network.AWS.ECS.DescribeTaskDefinition+import Network.AWS.ECS.DescribeTasks+import Network.AWS.ECS.DiscoverPollEndpoint+import Network.AWS.ECS.ListClusters+import Network.AWS.ECS.ListContainerInstances+import Network.AWS.ECS.ListTaskDefinitions+import Network.AWS.ECS.ListTasks+import Network.AWS.ECS.RegisterContainerInstance+import Network.AWS.ECS.RegisterTaskDefinition+import Network.AWS.ECS.RunTask+import Network.AWS.ECS.StartTask+import Network.AWS.ECS.StopTask+import Network.AWS.ECS.SubmitContainerStateChange+import Network.AWS.ECS.SubmitTaskStateChange+import Network.AWS.ECS.Types
+ gen/Network/AWS/ECS/CreateCluster.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.CreateCluster+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Creates a new Amazon ECS cluster. By default, your account will receive a 'default' cluster when you launch your first container instance. However, you can+-- create your own cluster with a unique name with the 'CreateCluster' action.+--+-- During the preview, each account is limited to two clusters.+--+--+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html>+module Network.AWS.ECS.CreateCluster+    (+    -- * Request+      CreateCluster+    -- ** Request constructor+    , createCluster+    -- ** Request lenses+    , ccClusterName++    -- * Response+    , CreateClusterResponse+    -- ** Response constructor+    , createClusterResponse+    -- ** Response lenses+    , ccrCluster+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++newtype CreateCluster = CreateCluster+    { _ccClusterName :: Maybe Text+    } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'CreateCluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccClusterName' @::@ 'Maybe' 'Text'+--+createCluster :: CreateCluster+createCluster = CreateCluster+    { _ccClusterName = Nothing+    }++-- | The name of your cluster. If you do not specify a name for your cluster, you+-- will create a cluster named 'default'.+ccClusterName :: Lens' CreateCluster (Maybe Text)+ccClusterName = lens _ccClusterName (\s a -> s { _ccClusterName = a })++newtype CreateClusterResponse = CreateClusterResponse+    { _ccrCluster :: Maybe Cluster+    } deriving (Eq, Read, Show)++-- | 'CreateClusterResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccrCluster' @::@ 'Maybe' 'Cluster'+--+createClusterResponse :: CreateClusterResponse+createClusterResponse = CreateClusterResponse+    { _ccrCluster = Nothing+    }++-- | The full description of your new cluster.+ccrCluster :: Lens' CreateClusterResponse (Maybe Cluster)+ccrCluster = lens _ccrCluster (\s a -> s { _ccrCluster = a })++instance ToPath CreateCluster where+    toPath = const "/"++instance ToQuery CreateCluster where+    toQuery CreateCluster{..} = mconcat+        [ "clusterName" =? _ccClusterName+        ]++instance ToHeaders CreateCluster++instance AWSRequest CreateCluster where+    type Sv CreateCluster = ECS+    type Rs CreateCluster = CreateClusterResponse++    request  = post "CreateCluster"+    response = xmlResponse++instance FromXML CreateClusterResponse where+    parseXML = withElement "CreateClusterResult" $ \x -> CreateClusterResponse+        <$> x .@? "cluster"
+ gen/Network/AWS/ECS/DeleteCluster.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DeleteCluster+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Deletes the specified cluster. You must deregister all container instances+-- from this cluster before you may delete it. You can list the container+-- instances in a cluster with 'ListContainerInstances' and deregister them with 'DeregisterContainerInstance'.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteCluster.html>+module Network.AWS.ECS.DeleteCluster+    (+    -- * Request+      DeleteCluster+    -- ** Request constructor+    , deleteCluster+    -- ** Request lenses+    , dcCluster++    -- * Response+    , DeleteClusterResponse+    -- ** Response constructor+    , deleteClusterResponse+    -- ** Response lenses+    , dcrCluster+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++newtype DeleteCluster = DeleteCluster+    { _dcCluster :: Text+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)++-- | 'DeleteCluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcCluster' @::@ 'Text'+--+deleteCluster :: Text -- ^ 'dcCluster'+              -> DeleteCluster+deleteCluster p1 = DeleteCluster+    { _dcCluster = p1+    }++-- | The cluster you want to delete.+dcCluster :: Lens' DeleteCluster Text+dcCluster = lens _dcCluster (\s a -> s { _dcCluster = a })++newtype DeleteClusterResponse = DeleteClusterResponse+    { _dcrCluster :: Maybe Cluster+    } deriving (Eq, Read, Show)++-- | 'DeleteClusterResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcrCluster' @::@ 'Maybe' 'Cluster'+--+deleteClusterResponse :: DeleteClusterResponse+deleteClusterResponse = DeleteClusterResponse+    { _dcrCluster = Nothing+    }++-- | The full description of the deleted cluster.+dcrCluster :: Lens' DeleteClusterResponse (Maybe Cluster)+dcrCluster = lens _dcrCluster (\s a -> s { _dcrCluster = a })++instance ToPath DeleteCluster where+    toPath = const "/"++instance ToQuery DeleteCluster where+    toQuery DeleteCluster{..} = mconcat+        [ "cluster" =? _dcCluster+        ]++instance ToHeaders DeleteCluster++instance AWSRequest DeleteCluster where+    type Sv DeleteCluster = ECS+    type Rs DeleteCluster = DeleteClusterResponse++    request  = post "DeleteCluster"+    response = xmlResponse++instance FromXML DeleteClusterResponse where+    parseXML = withElement "DeleteClusterResult" $ \x -> DeleteClusterResponse+        <$> x .@? "cluster"
+ gen/Network/AWS/ECS/DeregisterContainerInstance.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DeregisterContainerInstance+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Deregisters an Amazon ECS container instance from the specified cluster. This+-- instance will no longer be available to run tasks.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html>+module Network.AWS.ECS.DeregisterContainerInstance+    (+    -- * Request+      DeregisterContainerInstance+    -- ** Request constructor+    , deregisterContainerInstance+    -- ** Request lenses+    , dci1Cluster+    , dci1ContainerInstance+    , dci1Force++    -- * Response+    , DeregisterContainerInstanceResponse+    -- ** Response constructor+    , deregisterContainerInstanceResponse+    -- ** Response lenses+    , dcirContainerInstance+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data DeregisterContainerInstance = DeregisterContainerInstance+    { _dci1Cluster           :: Maybe Text+    , _dci1ContainerInstance :: Text+    , _dci1Force             :: Maybe Bool+    } deriving (Eq, Ord, Read, Show)++-- | 'DeregisterContainerInstance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dci1Cluster' @::@ 'Maybe' 'Text'+--+-- * 'dci1ContainerInstance' @::@ 'Text'+--+-- * 'dci1Force' @::@ 'Maybe' 'Bool'+--+deregisterContainerInstance :: Text -- ^ 'dci1ContainerInstance'+                            -> DeregisterContainerInstance+deregisterContainerInstance p1 = DeregisterContainerInstance+    { _dci1ContainerInstance = p1+    , _dci1Cluster           = Nothing+    , _dci1Force             = Nothing+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the container instance you want to deregister. If you do not specify a+-- cluster, the default cluster is assumed.+dci1Cluster :: Lens' DeregisterContainerInstance (Maybe Text)+dci1Cluster = lens _dci1Cluster (\s a -> s { _dci1Cluster = a })++-- | The container instance UUID or full Amazon Resource Name (ARN) of the+-- container instance you want to deregister. The ARN contains the 'arn:aws:ecs'+-- namespace, followed by the region of the container instance, the AWS account+-- ID of the container instance owner, the 'container-instance' namespace, and+-- then the container instance UUID. For example, arn:aws:ecs:/region/:/aws_account_id/:container-instance//container_instance_UUID/.+dci1ContainerInstance :: Lens' DeregisterContainerInstance Text+dci1ContainerInstance =+    lens _dci1ContainerInstance (\s a -> s { _dci1ContainerInstance = a })++-- | Force the deregistration of the container instance. You can use the 'force'+-- parameter if you have several tasks running on a container instance and you+-- don't want to run 'StopTask' for each task before deregistering the container+-- instance.+dci1Force :: Lens' DeregisterContainerInstance (Maybe Bool)+dci1Force = lens _dci1Force (\s a -> s { _dci1Force = a })++newtype DeregisterContainerInstanceResponse = DeregisterContainerInstanceResponse+    { _dcirContainerInstance :: Maybe ContainerInstance+    } deriving (Eq, Read, Show)++-- | 'DeregisterContainerInstanceResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcirContainerInstance' @::@ 'Maybe' 'ContainerInstance'+--+deregisterContainerInstanceResponse :: DeregisterContainerInstanceResponse+deregisterContainerInstanceResponse = DeregisterContainerInstanceResponse+    { _dcirContainerInstance = Nothing+    }++dcirContainerInstance :: Lens' DeregisterContainerInstanceResponse (Maybe ContainerInstance)+dcirContainerInstance =+    lens _dcirContainerInstance (\s a -> s { _dcirContainerInstance = a })++instance ToPath DeregisterContainerInstance where+    toPath = const "/"++instance ToQuery DeregisterContainerInstance where+    toQuery DeregisterContainerInstance{..} = mconcat+        [ "cluster"           =? _dci1Cluster+        , "containerInstance" =? _dci1ContainerInstance+        , "force"             =? _dci1Force+        ]++instance ToHeaders DeregisterContainerInstance++instance AWSRequest DeregisterContainerInstance where+    type Sv DeregisterContainerInstance = ECS+    type Rs DeregisterContainerInstance = DeregisterContainerInstanceResponse++    request  = post "DeregisterContainerInstance"+    response = xmlResponse++instance FromXML DeregisterContainerInstanceResponse where+    parseXML = withElement "DeregisterContainerInstanceResult" $ \x -> DeregisterContainerInstanceResponse+        <$> x .@? "containerInstance"
+ gen/Network/AWS/ECS/DeregisterTaskDefinition.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DeregisterTaskDefinition+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Deregisters the specified task definition. You will no longer be able to run+-- tasks from this definition after deregistration.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html>+module Network.AWS.ECS.DeregisterTaskDefinition+    (+    -- * Request+      DeregisterTaskDefinition+    -- ** Request constructor+    , deregisterTaskDefinition+    -- ** Request lenses+    , dtd1TaskDefinition++    -- * Response+    , DeregisterTaskDefinitionResponse+    -- ** Response constructor+    , deregisterTaskDefinitionResponse+    -- ** Response lenses+    , dtdrTaskDefinition+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++newtype DeregisterTaskDefinition = DeregisterTaskDefinition+    { _dtd1TaskDefinition :: Text+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)++-- | 'DeregisterTaskDefinition' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtd1TaskDefinition' @::@ 'Text'+--+deregisterTaskDefinition :: Text -- ^ 'dtd1TaskDefinition'+                         -> DeregisterTaskDefinition+deregisterTaskDefinition p1 = DeregisterTaskDefinition+    { _dtd1TaskDefinition = p1+    }++-- | The 'family' and 'revision' ('family:revision') or full Amazon Resource Name (ARN)+-- of the task definition that you want to deregister.+dtd1TaskDefinition :: Lens' DeregisterTaskDefinition Text+dtd1TaskDefinition =+    lens _dtd1TaskDefinition (\s a -> s { _dtd1TaskDefinition = a })++newtype DeregisterTaskDefinitionResponse = DeregisterTaskDefinitionResponse+    { _dtdrTaskDefinition :: Maybe TaskDefinition+    } deriving (Eq, Read, Show)++-- | 'DeregisterTaskDefinitionResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtdrTaskDefinition' @::@ 'Maybe' 'TaskDefinition'+--+deregisterTaskDefinitionResponse :: DeregisterTaskDefinitionResponse+deregisterTaskDefinitionResponse = DeregisterTaskDefinitionResponse+    { _dtdrTaskDefinition = Nothing+    }++-- | The full description of the deregistered task.+dtdrTaskDefinition :: Lens' DeregisterTaskDefinitionResponse (Maybe TaskDefinition)+dtdrTaskDefinition =+    lens _dtdrTaskDefinition (\s a -> s { _dtdrTaskDefinition = a })++instance ToPath DeregisterTaskDefinition where+    toPath = const "/"++instance ToQuery DeregisterTaskDefinition where+    toQuery DeregisterTaskDefinition{..} = mconcat+        [ "taskDefinition" =? _dtd1TaskDefinition+        ]++instance ToHeaders DeregisterTaskDefinition++instance AWSRequest DeregisterTaskDefinition where+    type Sv DeregisterTaskDefinition = ECS+    type Rs DeregisterTaskDefinition = DeregisterTaskDefinitionResponse++    request  = post "DeregisterTaskDefinition"+    response = xmlResponse++instance FromXML DeregisterTaskDefinitionResponse where+    parseXML = withElement "DeregisterTaskDefinitionResult" $ \x -> DeregisterTaskDefinitionResponse+        <$> x .@? "taskDefinition"
+ gen/Network/AWS/ECS/DescribeClusters.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DescribeClusters+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Describes one or more of your clusters.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeClusters.html>+module Network.AWS.ECS.DescribeClusters+    (+    -- * Request+      DescribeClusters+    -- ** Request constructor+    , describeClusters+    -- ** Request lenses+    , dcClusters++    -- * Response+    , DescribeClustersResponse+    -- ** Response constructor+    , describeClustersResponse+    -- ** Response lenses+    , dcrClusters+    , dcrFailures+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++newtype DescribeClusters = DescribeClusters+    { _dcClusters :: List "member" Text+    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeClusters where+    type Item DescribeClusters = Text++    fromList = DescribeClusters . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dcClusters++-- | 'DescribeClusters' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcClusters' @::@ ['Text']+--+describeClusters :: DescribeClusters+describeClusters = DescribeClusters+    { _dcClusters = mempty+    }++-- | A space-separated list of 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]+dcClusters = lens _dcClusters (\s a -> s { _dcClusters = a }) . _List++data DescribeClustersResponse = DescribeClustersResponse+    { _dcrClusters :: List "member" Cluster+    , _dcrFailures :: List "member" Failure+    } deriving (Eq, Read, Show)++-- | 'DescribeClustersResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcrClusters' @::@ ['Cluster']+--+-- * 'dcrFailures' @::@ ['Failure']+--+describeClustersResponse :: DescribeClustersResponse+describeClustersResponse = DescribeClustersResponse+    { _dcrClusters = mempty+    , _dcrFailures = mempty+    }++-- | The list of clusters.+dcrClusters :: Lens' DescribeClustersResponse [Cluster]+dcrClusters = lens _dcrClusters (\s a -> s { _dcrClusters = a }) . _List++dcrFailures :: Lens' DescribeClustersResponse [Failure]+dcrFailures = lens _dcrFailures (\s a -> s { _dcrFailures = a }) . _List++instance ToPath DescribeClusters where+    toPath = const "/"++instance ToQuery DescribeClusters where+    toQuery DescribeClusters{..} = mconcat+        [ "clusters" =? _dcClusters+        ]++instance ToHeaders DescribeClusters++instance AWSRequest DescribeClusters where+    type Sv DescribeClusters = ECS+    type Rs DescribeClusters = DescribeClustersResponse++    request  = post "DescribeClusters"+    response = xmlResponse++instance FromXML DescribeClustersResponse where+    parseXML = withElement "DescribeClustersResult" $ \x -> DescribeClustersResponse+        <$> x .@? "clusters" .!@ mempty+        <*> x .@? "failures" .!@ mempty
+ gen/Network/AWS/ECS/DescribeContainerInstances.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DescribeContainerInstances+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Describes Amazon EC2 Container Service container instances. Returns metadata+-- about registered and remaining resources on each container instance requested.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html>+module Network.AWS.ECS.DescribeContainerInstances+    (+    -- * Request+      DescribeContainerInstances+    -- ** Request constructor+    , describeContainerInstances+    -- ** Request lenses+    , dciCluster+    , dciContainerInstances++    -- * Response+    , DescribeContainerInstancesResponse+    -- ** Response constructor+    , describeContainerInstancesResponse+    -- ** Response lenses+    , dcirContainerInstances+    , dcirFailures+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data DescribeContainerInstances = DescribeContainerInstances+    { _dciCluster            :: Maybe Text+    , _dciContainerInstances :: List "member" Text+    } deriving (Eq, Ord, Read, Show)++-- | 'DescribeContainerInstances' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dciCluster' @::@ 'Maybe' 'Text'+--+-- * 'dciContainerInstances' @::@ ['Text']+--+describeContainerInstances :: DescribeContainerInstances+describeContainerInstances = DescribeContainerInstances+    { _dciCluster            = Nothing+    , _dciContainerInstances = mempty+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the container instances you want to describe. If you do not specify a+-- cluster, the default cluster is assumed.+dciCluster :: Lens' DescribeContainerInstances (Maybe Text)+dciCluster = lens _dciCluster (\s a -> s { _dciCluster = a })++-- | A space-separated list of container instance UUIDs or full Amazon Resource+-- Name (ARN) entries.+dciContainerInstances :: Lens' DescribeContainerInstances [Text]+dciContainerInstances =+    lens _dciContainerInstances (\s a -> s { _dciContainerInstances = a })+        . _List++data DescribeContainerInstancesResponse = DescribeContainerInstancesResponse+    { _dcirContainerInstances :: List "member" ContainerInstance+    , _dcirFailures           :: List "member" Failure+    } deriving (Eq, Read, Show)++-- | 'DescribeContainerInstancesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcirContainerInstances' @::@ ['ContainerInstance']+--+-- * 'dcirFailures' @::@ ['Failure']+--+describeContainerInstancesResponse :: DescribeContainerInstancesResponse+describeContainerInstancesResponse = DescribeContainerInstancesResponse+    { _dcirContainerInstances = mempty+    , _dcirFailures           = mempty+    }++-- | The list of container instances.+dcirContainerInstances :: Lens' DescribeContainerInstancesResponse [ContainerInstance]+dcirContainerInstances =+    lens _dcirContainerInstances (\s a -> s { _dcirContainerInstances = a })+        . _List++dcirFailures :: Lens' DescribeContainerInstancesResponse [Failure]+dcirFailures = lens _dcirFailures (\s a -> s { _dcirFailures = a }) . _List++instance ToPath DescribeContainerInstances where+    toPath = const "/"++instance ToQuery DescribeContainerInstances where+    toQuery DescribeContainerInstances{..} = mconcat+        [ "cluster"            =? _dciCluster+        , "containerInstances" =? _dciContainerInstances+        ]++instance ToHeaders DescribeContainerInstances++instance AWSRequest DescribeContainerInstances where+    type Sv DescribeContainerInstances = ECS+    type Rs DescribeContainerInstances = DescribeContainerInstancesResponse++    request  = post "DescribeContainerInstances"+    response = xmlResponse++instance FromXML DescribeContainerInstancesResponse where+    parseXML = withElement "DescribeContainerInstancesResult" $ \x -> DescribeContainerInstancesResponse+        <$> x .@? "containerInstances" .!@ mempty+        <*> x .@? "failures" .!@ mempty
+ gen/Network/AWS/ECS/DescribeTaskDefinition.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DescribeTaskDefinition+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Describes a task definition.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskDefinition.html>+module Network.AWS.ECS.DescribeTaskDefinition+    (+    -- * Request+      DescribeTaskDefinition+    -- ** Request constructor+    , describeTaskDefinition+    -- ** Request lenses+    , dtdTaskDefinition++    -- * Response+    , DescribeTaskDefinitionResponse+    -- ** Response constructor+    , describeTaskDefinitionResponse+    -- ** Response lenses+    , dtdr1TaskDefinition+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++newtype DescribeTaskDefinition = DescribeTaskDefinition+    { _dtdTaskDefinition :: Text+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)++-- | 'DescribeTaskDefinition' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtdTaskDefinition' @::@ 'Text'+--+describeTaskDefinition :: Text -- ^ 'dtdTaskDefinition'+                       -> DescribeTaskDefinition+describeTaskDefinition p1 = DescribeTaskDefinition+    { _dtdTaskDefinition = p1+    }++-- | The 'family' and 'revision' ('family:revision') or full Amazon Resource Name (ARN)+-- of the task definition that you want to describe.+dtdTaskDefinition :: Lens' DescribeTaskDefinition Text+dtdTaskDefinition =+    lens _dtdTaskDefinition (\s a -> s { _dtdTaskDefinition = a })++newtype DescribeTaskDefinitionResponse = DescribeTaskDefinitionResponse+    { _dtdr1TaskDefinition :: Maybe TaskDefinition+    } deriving (Eq, Read, Show)++-- | 'DescribeTaskDefinitionResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtdr1TaskDefinition' @::@ 'Maybe' 'TaskDefinition'+--+describeTaskDefinitionResponse :: DescribeTaskDefinitionResponse+describeTaskDefinitionResponse = DescribeTaskDefinitionResponse+    { _dtdr1TaskDefinition = Nothing+    }++-- | The full task definition description.+dtdr1TaskDefinition :: Lens' DescribeTaskDefinitionResponse (Maybe TaskDefinition)+dtdr1TaskDefinition =+    lens _dtdr1TaskDefinition (\s a -> s { _dtdr1TaskDefinition = a })++instance ToPath DescribeTaskDefinition where+    toPath = const "/"++instance ToQuery DescribeTaskDefinition where+    toQuery DescribeTaskDefinition{..} = mconcat+        [ "taskDefinition" =? _dtdTaskDefinition+        ]++instance ToHeaders DescribeTaskDefinition++instance AWSRequest DescribeTaskDefinition where+    type Sv DescribeTaskDefinition = ECS+    type Rs DescribeTaskDefinition = DescribeTaskDefinitionResponse++    request  = post "DescribeTaskDefinition"+    response = xmlResponse++instance FromXML DescribeTaskDefinitionResponse where+    parseXML = withElement "DescribeTaskDefinitionResult" $ \x -> DescribeTaskDefinitionResponse+        <$> x .@? "taskDefinition"
+ gen/Network/AWS/ECS/DescribeTasks.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DescribeTasks+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Describes a specified task or tasks.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html>+module Network.AWS.ECS.DescribeTasks+    (+    -- * Request+      DescribeTasks+    -- ** Request constructor+    , describeTasks+    -- ** Request lenses+    , dtCluster+    , dtTasks++    -- * Response+    , DescribeTasksResponse+    -- ** Response constructor+    , describeTasksResponse+    -- ** Response lenses+    , dtrFailures+    , dtrTasks+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data DescribeTasks = DescribeTasks+    { _dtCluster :: Maybe Text+    , _dtTasks   :: List "member" Text+    } deriving (Eq, Ord, Read, Show)++-- | 'DescribeTasks' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtCluster' @::@ 'Maybe' 'Text'+--+-- * 'dtTasks' @::@ ['Text']+--+describeTasks :: DescribeTasks+describeTasks = DescribeTasks+    { _dtCluster = Nothing+    , _dtTasks   = mempty+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the task you want to describe. If you do not specify a cluster, the default+-- cluster is assumed.+dtCluster :: Lens' DescribeTasks (Maybe Text)+dtCluster = lens _dtCluster (\s a -> s { _dtCluster = a })++-- | A space-separated list of task UUIDs or full Amazon Resource Name (ARN)+-- entries.+dtTasks :: Lens' DescribeTasks [Text]+dtTasks = lens _dtTasks (\s a -> s { _dtTasks = a }) . _List++data DescribeTasksResponse = DescribeTasksResponse+    { _dtrFailures :: List "member" Failure+    , _dtrTasks    :: List "member" Task+    } deriving (Eq, Read, Show)++-- | 'DescribeTasksResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrFailures' @::@ ['Failure']+--+-- * 'dtrTasks' @::@ ['Task']+--+describeTasksResponse :: DescribeTasksResponse+describeTasksResponse = DescribeTasksResponse+    { _dtrTasks    = mempty+    , _dtrFailures = mempty+    }++dtrFailures :: Lens' DescribeTasksResponse [Failure]+dtrFailures = lens _dtrFailures (\s a -> s { _dtrFailures = a }) . _List++-- | The list of tasks.+dtrTasks :: Lens' DescribeTasksResponse [Task]+dtrTasks = lens _dtrTasks (\s a -> s { _dtrTasks = a }) . _List++instance ToPath DescribeTasks where+    toPath = const "/"++instance ToQuery DescribeTasks where+    toQuery DescribeTasks{..} = mconcat+        [ "cluster" =? _dtCluster+        , "tasks"   =? _dtTasks+        ]++instance ToHeaders DescribeTasks++instance AWSRequest DescribeTasks where+    type Sv DescribeTasks = ECS+    type Rs DescribeTasks = DescribeTasksResponse++    request  = post "DescribeTasks"+    response = xmlResponse++instance FromXML DescribeTasksResponse where+    parseXML = withElement "DescribeTasksResult" $ \x -> DescribeTasksResponse+        <$> x .@? "failures" .!@ mempty+        <*> x .@? "tasks" .!@ mempty
+ gen/Network/AWS/ECS/DiscoverPollEndpoint.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.DiscoverPollEndpoint+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | This action is only used by the Amazon EC2 Container Service agent, and it is+-- not intended for use outside of the agent.+--+-- Returns an endpoint for the Amazon EC2 Container Service agent to poll for+-- updates.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DiscoverPollEndpoint.html>+module Network.AWS.ECS.DiscoverPollEndpoint+    (+    -- * Request+      DiscoverPollEndpoint+    -- ** Request constructor+    , discoverPollEndpoint+    -- ** Request lenses+    , dpeContainerInstance++    -- * Response+    , DiscoverPollEndpointResponse+    -- ** Response constructor+    , discoverPollEndpointResponse+    -- ** Response lenses+    , dperEndpoint+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++newtype DiscoverPollEndpoint = DiscoverPollEndpoint+    { _dpeContainerInstance :: Maybe Text+    } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'DiscoverPollEndpoint' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dpeContainerInstance' @::@ 'Maybe' 'Text'+--+discoverPollEndpoint :: DiscoverPollEndpoint+discoverPollEndpoint = DiscoverPollEndpoint+    { _dpeContainerInstance = Nothing+    }++-- | The container instance UUID or full Amazon Resource Name (ARN) of the+-- container instance. The ARN contains the 'arn:aws:ecs' namespace, followed by+-- the region of the container instance, the AWS account ID of the container+-- instance owner, the 'container-instance' namespace, and then the container+-- instance UUID. For example, arn:aws:ecs:/region/:/aws_account_id/:container-instance/+-- /container_instance_UUID/.+dpeContainerInstance :: Lens' DiscoverPollEndpoint (Maybe Text)+dpeContainerInstance =+    lens _dpeContainerInstance (\s a -> s { _dpeContainerInstance = a })++newtype DiscoverPollEndpointResponse = DiscoverPollEndpointResponse+    { _dperEndpoint :: Maybe Text+    } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'DiscoverPollEndpointResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dperEndpoint' @::@ 'Maybe' 'Text'+--+discoverPollEndpointResponse :: DiscoverPollEndpointResponse+discoverPollEndpointResponse = DiscoverPollEndpointResponse+    { _dperEndpoint = Nothing+    }++-- | The endpoint for the Amazon ECS agent to poll.+dperEndpoint :: Lens' DiscoverPollEndpointResponse (Maybe Text)+dperEndpoint = lens _dperEndpoint (\s a -> s { _dperEndpoint = a })++instance ToPath DiscoverPollEndpoint where+    toPath = const "/"++instance ToQuery DiscoverPollEndpoint where+    toQuery DiscoverPollEndpoint{..} = mconcat+        [ "containerInstance" =? _dpeContainerInstance+        ]++instance ToHeaders DiscoverPollEndpoint++instance AWSRequest DiscoverPollEndpoint where+    type Sv DiscoverPollEndpoint = ECS+    type Rs DiscoverPollEndpoint = DiscoverPollEndpointResponse++    request  = post "DiscoverPollEndpoint"+    response = xmlResponse++instance FromXML DiscoverPollEndpointResponse where+    parseXML = withElement "DiscoverPollEndpointResult" $ \x -> DiscoverPollEndpointResponse+        <$> x .@? "endpoint"
+ gen/Network/AWS/ECS/ListClusters.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.ListClusters+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Returns a list of existing clusters.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListClusters.html>+module Network.AWS.ECS.ListClusters+    (+    -- * Request+      ListClusters+    -- ** Request constructor+    , listClusters+    -- ** Request lenses+    , lcMaxResults+    , lcNextToken++    -- * Response+    , ListClustersResponse+    -- ** Response constructor+    , listClustersResponse+    -- ** Response lenses+    , lcrClusterArns+    , lcrNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data ListClusters = ListClusters+    { _lcMaxResults :: Maybe Int+    , _lcNextToken  :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListClusters' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lcMaxResults' @::@ 'Maybe' 'Int'+--+-- * 'lcNextToken' @::@ 'Maybe' 'Text'+--+listClusters :: ListClusters+listClusters = ListClusters+    { _lcNextToken  = Nothing+    , _lcMaxResults = Nothing+    }++-- | The maximum number of cluster results returned by 'ListClusters' in paginated+-- output. When this parameter is used, 'ListClusters' only returns 'maxResults'+-- results in a single page along with a 'nextToken' response element. The+-- remaining results of the initial request can be seen by sending another 'ListClusters' request with the returned 'nextToken' value. This value can be between 1 and+-- 100. If this parameter is not used, then 'ListClusters' returns up to 100+-- results and a 'nextToken' value if applicable.+lcMaxResults :: Lens' ListClusters (Maybe Int)+lcMaxResults = lens _lcMaxResults (\s a -> s { _lcMaxResults = a })++-- | The 'nextToken' value returned from a previous paginated 'ListClusters' request+-- where 'maxResults' was used and the results exceeded the value of that+-- parameter. Pagination continues from the end of the previous results that+-- returned the 'nextToken' value. This value is 'null' when there are no more+-- results to return.+lcNextToken :: Lens' ListClusters (Maybe Text)+lcNextToken = lens _lcNextToken (\s a -> s { _lcNextToken = a })++data ListClustersResponse = ListClustersResponse+    { _lcrClusterArns :: List "member" Text+    , _lcrNextToken   :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListClustersResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lcrClusterArns' @::@ ['Text']+--+-- * 'lcrNextToken' @::@ 'Maybe' 'Text'+--+listClustersResponse :: ListClustersResponse+listClustersResponse = ListClustersResponse+    { _lcrClusterArns = mempty+    , _lcrNextToken   = Nothing+    }++-- | The list of full Amazon Resource Name (ARN) entries for each cluster+-- associated with your account.+lcrClusterArns :: Lens' ListClustersResponse [Text]+lcrClusterArns = lens _lcrClusterArns (\s a -> s { _lcrClusterArns = a }) . _List++-- | The 'nextToken' value to include in a future 'ListClusters' request. When the+-- results of a 'ListClusters' request exceed 'maxResults', this value can be used+-- to retrieve the next page of results. This value is 'null' when there are no+-- more results to return.+lcrNextToken :: Lens' ListClustersResponse (Maybe Text)+lcrNextToken = lens _lcrNextToken (\s a -> s { _lcrNextToken = a })++instance ToPath ListClusters where+    toPath = const "/"++instance ToQuery ListClusters where+    toQuery ListClusters{..} = mconcat+        [ "maxResults" =? _lcMaxResults+        , "nextToken"  =? _lcNextToken+        ]++instance ToHeaders ListClusters++instance AWSRequest ListClusters where+    type Sv ListClusters = ECS+    type Rs ListClusters = ListClustersResponse++    request  = post "ListClusters"+    response = xmlResponse++instance FromXML ListClustersResponse where+    parseXML = withElement "ListClustersResult" $ \x -> ListClustersResponse+        <$> x .@? "clusterArns" .!@ mempty+        <*> x .@? "nextToken"
+ gen/Network/AWS/ECS/ListContainerInstances.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.ListContainerInstances+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Returns a list of container instances in a specified cluster.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html>+module Network.AWS.ECS.ListContainerInstances+    (+    -- * Request+      ListContainerInstances+    -- ** Request constructor+    , listContainerInstances+    -- ** Request lenses+    , lciCluster+    , lciMaxResults+    , lciNextToken++    -- * Response+    , ListContainerInstancesResponse+    -- ** Response constructor+    , listContainerInstancesResponse+    -- ** Response lenses+    , lcirContainerInstanceArns+    , lcirNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data ListContainerInstances = ListContainerInstances+    { _lciCluster    :: Maybe Text+    , _lciMaxResults :: Maybe Int+    , _lciNextToken  :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListContainerInstances' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lciCluster' @::@ 'Maybe' 'Text'+--+-- * 'lciMaxResults' @::@ 'Maybe' 'Int'+--+-- * 'lciNextToken' @::@ 'Maybe' 'Text'+--+listContainerInstances :: ListContainerInstances+listContainerInstances = ListContainerInstances+    { _lciCluster    = Nothing+    , _lciNextToken  = Nothing+    , _lciMaxResults = Nothing+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the container instances you want to list. If you do not specify a cluster,+-- the default cluster is assumed..+lciCluster :: Lens' ListContainerInstances (Maybe Text)+lciCluster = lens _lciCluster (\s a -> s { _lciCluster = a })++-- | The maximum number of container instance results returned by 'ListContainerInstances' in paginated output. When this parameter is used, 'ListContainerInstances'+-- only returns 'maxResults' results in a single page along with a 'nextToken'+-- response element. The remaining results of the initial request can be seen by+-- sending another 'ListContainerInstances' request with the returned 'nextToken'+-- value. This value can be between 1 and 100. If this parameter is not used,+-- then 'ListContainerInstances' returns up to 100 results and a 'nextToken' value+-- if applicable.+lciMaxResults :: Lens' ListContainerInstances (Maybe Int)+lciMaxResults = lens _lciMaxResults (\s a -> s { _lciMaxResults = a })++-- | The 'nextToken' value returned from a previous paginated 'ListContainerInstances'+-- request where 'maxResults' was used and the results exceeded the value of that+-- parameter. Pagination continues from the end of the previous results that+-- returned the 'nextToken' value. This value is 'null' when there are no more+-- results to return.+lciNextToken :: Lens' ListContainerInstances (Maybe Text)+lciNextToken = lens _lciNextToken (\s a -> s { _lciNextToken = a })++data ListContainerInstancesResponse = ListContainerInstancesResponse+    { _lcirContainerInstanceArns :: List "member" Text+    , _lcirNextToken             :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListContainerInstancesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lcirContainerInstanceArns' @::@ ['Text']+--+-- * 'lcirNextToken' @::@ 'Maybe' 'Text'+--+listContainerInstancesResponse :: ListContainerInstancesResponse+listContainerInstancesResponse = ListContainerInstancesResponse+    { _lcirContainerInstanceArns = mempty+    , _lcirNextToken             = Nothing+    }++-- | The list of container instance full Amazon Resource Name (ARN) entries for+-- each container instance associated with the specified cluster.+lcirContainerInstanceArns :: Lens' ListContainerInstancesResponse [Text]+lcirContainerInstanceArns =+    lens _lcirContainerInstanceArns+        (\s a -> s { _lcirContainerInstanceArns = a })+            . _List++-- | The 'nextToken' value to include in a future 'ListContainerInstances' request.+-- When the results of a 'ListContainerInstances' request exceed 'maxResults', this+-- value can be used to retrieve the next page of results. This value is 'null'+-- when there are no more results to return.+lcirNextToken :: Lens' ListContainerInstancesResponse (Maybe Text)+lcirNextToken = lens _lcirNextToken (\s a -> s { _lcirNextToken = a })++instance ToPath ListContainerInstances where+    toPath = const "/"++instance ToQuery ListContainerInstances where+    toQuery ListContainerInstances{..} = mconcat+        [ "cluster"    =? _lciCluster+        , "maxResults" =? _lciMaxResults+        , "nextToken"  =? _lciNextToken+        ]++instance ToHeaders ListContainerInstances++instance AWSRequest ListContainerInstances where+    type Sv ListContainerInstances = ECS+    type Rs ListContainerInstances = ListContainerInstancesResponse++    request  = post "ListContainerInstances"+    response = xmlResponse++instance FromXML ListContainerInstancesResponse where+    parseXML = withElement "ListContainerInstancesResult" $ \x -> ListContainerInstancesResponse+        <$> x .@? "containerInstanceArns" .!@ mempty+        <*> x .@? "nextToken"
+ gen/Network/AWS/ECS/ListTaskDefinitions.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.ListTaskDefinitions+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Returns a list of task definitions that are registered to your account. You+-- can filter the results by family name with the 'familyPrefix' parameter.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitions.html>+module Network.AWS.ECS.ListTaskDefinitions+    (+    -- * Request+      ListTaskDefinitions+    -- ** Request constructor+    , listTaskDefinitions+    -- ** Request lenses+    , ltdFamilyPrefix+    , ltdMaxResults+    , ltdNextToken++    -- * Response+    , ListTaskDefinitionsResponse+    -- ** Response constructor+    , listTaskDefinitionsResponse+    -- ** Response lenses+    , ltdrNextToken+    , ltdrTaskDefinitionArns+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data ListTaskDefinitions = ListTaskDefinitions+    { _ltdFamilyPrefix :: Maybe Text+    , _ltdMaxResults   :: Maybe Int+    , _ltdNextToken    :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListTaskDefinitions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ltdFamilyPrefix' @::@ 'Maybe' 'Text'+--+-- * 'ltdMaxResults' @::@ 'Maybe' 'Int'+--+-- * 'ltdNextToken' @::@ 'Maybe' 'Text'+--+listTaskDefinitions :: ListTaskDefinitions+listTaskDefinitions = ListTaskDefinitions+    { _ltdFamilyPrefix = Nothing+    , _ltdNextToken    = Nothing+    , _ltdMaxResults   = Nothing+    }++-- | The name of the family that you want to filter the 'ListTaskDefinitions'+-- results with. Specifying a 'familyPrefix' will limit the listed task+-- definitions to definitions that belong to that family.+ltdFamilyPrefix :: Lens' ListTaskDefinitions (Maybe Text)+ltdFamilyPrefix = lens _ltdFamilyPrefix (\s a -> s { _ltdFamilyPrefix = a })++-- | The maximum number of task definition results returned by 'ListTaskDefinitions'+-- in paginated output. When this parameter is used, 'ListTaskDefinitions' only+-- returns 'maxResults' results in a single page along with a 'nextToken' response+-- element. The remaining results of the initial request can be seen by sending+-- another 'ListTaskDefinitions' request with the returned 'nextToken' value. This+-- value can be between 1 and 100. If this parameter is not used, then 'ListTaskDefinitions' returns up to 100 results and a 'nextToken' value if applicable.+ltdMaxResults :: Lens' ListTaskDefinitions (Maybe Int)+ltdMaxResults = lens _ltdMaxResults (\s a -> s { _ltdMaxResults = a })++-- | The 'nextToken' value returned from a previous paginated 'ListTaskDefinitions'+-- request where 'maxResults' was used and the results exceeded the value of that+-- parameter. Pagination continues from the end of the previous results that+-- returned the 'nextToken' value. This value is 'null' when there are no more+-- results to return.+ltdNextToken :: Lens' ListTaskDefinitions (Maybe Text)+ltdNextToken = lens _ltdNextToken (\s a -> s { _ltdNextToken = a })++data ListTaskDefinitionsResponse = ListTaskDefinitionsResponse+    { _ltdrNextToken          :: Maybe Text+    , _ltdrTaskDefinitionArns :: List "member" Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListTaskDefinitionsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ltdrNextToken' @::@ 'Maybe' 'Text'+--+-- * 'ltdrTaskDefinitionArns' @::@ ['Text']+--+listTaskDefinitionsResponse :: ListTaskDefinitionsResponse+listTaskDefinitionsResponse = ListTaskDefinitionsResponse+    { _ltdrTaskDefinitionArns = mempty+    , _ltdrNextToken          = Nothing+    }++-- | The 'nextToken' value to include in a future 'ListTaskDefinitions' request. When+-- the results of a 'ListTaskDefinitions' request exceed 'maxResults', this value+-- can be used to retrieve the next page of results. This value is 'null' when+-- there are no more results to return.+ltdrNextToken :: Lens' ListTaskDefinitionsResponse (Maybe Text)+ltdrNextToken = lens _ltdrNextToken (\s a -> s { _ltdrNextToken = a })++-- | The list of task definition Amazon Resource Name (ARN) entries for the 'ListTaskDefintions' request.+ltdrTaskDefinitionArns :: Lens' ListTaskDefinitionsResponse [Text]+ltdrTaskDefinitionArns =+    lens _ltdrTaskDefinitionArns (\s a -> s { _ltdrTaskDefinitionArns = a })+        . _List++instance ToPath ListTaskDefinitions where+    toPath = const "/"++instance ToQuery ListTaskDefinitions where+    toQuery ListTaskDefinitions{..} = mconcat+        [ "familyPrefix" =? _ltdFamilyPrefix+        , "maxResults"   =? _ltdMaxResults+        , "nextToken"    =? _ltdNextToken+        ]++instance ToHeaders ListTaskDefinitions++instance AWSRequest ListTaskDefinitions where+    type Sv ListTaskDefinitions = ECS+    type Rs ListTaskDefinitions = ListTaskDefinitionsResponse++    request  = post "ListTaskDefinitions"+    response = xmlResponse++instance FromXML ListTaskDefinitionsResponse where+    parseXML = withElement "ListTaskDefinitionsResult" $ \x -> ListTaskDefinitionsResponse+        <$> x .@? "nextToken"+        <*> x .@? "taskDefinitionArns" .!@ mempty
+ gen/Network/AWS/ECS/ListTasks.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.ListTasks+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Returns a list of tasks for a specified cluster. You can filter the results+-- by family name or by a particular container instance with the 'family' and 'containerInstance' parameters.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html>+module Network.AWS.ECS.ListTasks+    (+    -- * Request+      ListTasks+    -- ** Request constructor+    , listTasks+    -- ** Request lenses+    , ltCluster+    , ltContainerInstance+    , ltFamily+    , ltMaxResults+    , ltNextToken++    -- * Response+    , ListTasksResponse+    -- ** Response constructor+    , listTasksResponse+    -- ** Response lenses+    , ltrNextToken+    , ltrTaskArns+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data ListTasks = ListTasks+    { _ltCluster           :: Maybe Text+    , _ltContainerInstance :: Maybe Text+    , _ltFamily            :: Maybe Text+    , _ltMaxResults        :: Maybe Int+    , _ltNextToken         :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListTasks' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ltCluster' @::@ 'Maybe' 'Text'+--+-- * 'ltContainerInstance' @::@ 'Maybe' 'Text'+--+-- * 'ltFamily' @::@ 'Maybe' 'Text'+--+-- * 'ltMaxResults' @::@ 'Maybe' 'Int'+--+-- * 'ltNextToken' @::@ 'Maybe' 'Text'+--+listTasks :: ListTasks+listTasks = ListTasks+    { _ltCluster           = Nothing+    , _ltContainerInstance = Nothing+    , _ltFamily            = Nothing+    , _ltNextToken         = Nothing+    , _ltMaxResults        = Nothing+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the tasks you want to list. If you do not specify a cluster, the default+-- cluster is assumed..+ltCluster :: Lens' ListTasks (Maybe Text)+ltCluster = lens _ltCluster (\s a -> s { _ltCluster = a })++-- | The container instance UUID or full Amazon Resource Name (ARN) of the+-- container instance that you want to filter the 'ListTasks' results with.+-- Specifying a 'containerInstance' will limit the results to tasks that belong to+-- that container instance.+ltContainerInstance :: Lens' ListTasks (Maybe Text)+ltContainerInstance =+    lens _ltContainerInstance (\s a -> s { _ltContainerInstance = a })++-- | The name of the family that you want to filter the 'ListTasks' results with.+-- Specifying a 'family' will limit the results to tasks that belong to that+-- family.+ltFamily :: Lens' ListTasks (Maybe Text)+ltFamily = lens _ltFamily (\s a -> s { _ltFamily = a })++-- | The maximum number of task results returned by 'ListTasks' in paginated output.+-- When this parameter is used, 'ListTasks' only returns 'maxResults' results in a+-- single page along with a 'nextToken' response element. The remaining results of+-- the initial request can be seen by sending another 'ListTasks' request with the+-- returned 'nextToken' value. This value can be between 1 and 100. If this+-- parameter is not used, then 'ListTasks' returns up to 100 results and a 'nextToken' value if applicable.+ltMaxResults :: Lens' ListTasks (Maybe Int)+ltMaxResults = lens _ltMaxResults (\s a -> s { _ltMaxResults = a })++-- | The 'nextToken' value returned from a previous paginated 'ListTasks' request+-- where 'maxResults' was used and the results exceeded the value of that+-- parameter. Pagination continues from the end of the previous results that+-- returned the 'nextToken' value. This value is 'null' when there are no more+-- results to return.+ltNextToken :: Lens' ListTasks (Maybe Text)+ltNextToken = lens _ltNextToken (\s a -> s { _ltNextToken = a })++data ListTasksResponse = ListTasksResponse+    { _ltrNextToken :: Maybe Text+    , _ltrTaskArns  :: List "member" Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListTasksResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ltrNextToken' @::@ 'Maybe' 'Text'+--+-- * 'ltrTaskArns' @::@ ['Text']+--+listTasksResponse :: ListTasksResponse+listTasksResponse = ListTasksResponse+    { _ltrTaskArns  = mempty+    , _ltrNextToken = Nothing+    }++-- | The 'nextToken' value to include in a future 'ListTasks' request. When the+-- results of a 'ListTasks' request exceed 'maxResults', this value can be used to+-- retrieve the next page of results. This value is 'null' when there are no more+-- results to return.+ltrNextToken :: Lens' ListTasksResponse (Maybe Text)+ltrNextToken = lens _ltrNextToken (\s a -> s { _ltrNextToken = a })++-- | The list of task Amazon Resource Name (ARN) entries for the 'ListTasks' request.+ltrTaskArns :: Lens' ListTasksResponse [Text]+ltrTaskArns = lens _ltrTaskArns (\s a -> s { _ltrTaskArns = a }) . _List++instance ToPath ListTasks where+    toPath = const "/"++instance ToQuery ListTasks where+    toQuery ListTasks{..} = mconcat+        [ "cluster"           =? _ltCluster+        , "containerInstance" =? _ltContainerInstance+        , "family"            =? _ltFamily+        , "maxResults"        =? _ltMaxResults+        , "nextToken"         =? _ltNextToken+        ]++instance ToHeaders ListTasks++instance AWSRequest ListTasks where+    type Sv ListTasks = ECS+    type Rs ListTasks = ListTasksResponse++    request  = post "ListTasks"+    response = xmlResponse++instance FromXML ListTasksResponse where+    parseXML = withElement "ListTasksResult" $ \x -> ListTasksResponse+        <$> x .@? "nextToken"+        <*> x .@? "taskArns" .!@ mempty
+ gen/Network/AWS/ECS/RegisterContainerInstance.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.RegisterContainerInstance+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | This action is only used by the Amazon EC2 Container Service agent, and it is+-- not intended for use outside of the agent.+--+-- Registers an Amazon EC2 instance into the specified cluster. This instance+-- will become available to place containers on.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterContainerInstance.html>+module Network.AWS.ECS.RegisterContainerInstance+    (+    -- * Request+      RegisterContainerInstance+    -- ** Request constructor+    , registerContainerInstance+    -- ** Request lenses+    , rciCluster+    , rciInstanceIdentityDocument+    , rciInstanceIdentityDocumentSignature+    , rciTotalResources++    -- * Response+    , RegisterContainerInstanceResponse+    -- ** Response constructor+    , registerContainerInstanceResponse+    -- ** Response lenses+    , rcirContainerInstance+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data RegisterContainerInstance = RegisterContainerInstance+    { _rciCluster                           :: Maybe Text+    , _rciInstanceIdentityDocument          :: Maybe Text+    , _rciInstanceIdentityDocumentSignature :: Maybe Text+    , _rciTotalResources                    :: List "member" Resource+    } deriving (Eq, Read, Show)++-- | 'RegisterContainerInstance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rciCluster' @::@ 'Maybe' 'Text'+--+-- * 'rciInstanceIdentityDocument' @::@ 'Maybe' 'Text'+--+-- * 'rciInstanceIdentityDocumentSignature' @::@ 'Maybe' 'Text'+--+-- * 'rciTotalResources' @::@ ['Resource']+--+registerContainerInstance :: RegisterContainerInstance+registerContainerInstance = RegisterContainerInstance+    { _rciCluster                           = Nothing+    , _rciInstanceIdentityDocument          = Nothing+    , _rciInstanceIdentityDocumentSignature = Nothing+    , _rciTotalResources                    = mempty+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that you+-- want to register your container instance with. If you do not specify a+-- cluster, the default cluster is assumed..+rciCluster :: Lens' RegisterContainerInstance (Maybe Text)+rciCluster = lens _rciCluster (\s a -> s { _rciCluster = a })++rciInstanceIdentityDocument :: Lens' RegisterContainerInstance (Maybe Text)+rciInstanceIdentityDocument =+    lens _rciInstanceIdentityDocument+        (\s a -> s { _rciInstanceIdentityDocument = a })++rciInstanceIdentityDocumentSignature :: Lens' RegisterContainerInstance (Maybe Text)+rciInstanceIdentityDocumentSignature =+    lens _rciInstanceIdentityDocumentSignature+        (\s a -> s { _rciInstanceIdentityDocumentSignature = a })++rciTotalResources :: Lens' RegisterContainerInstance [Resource]+rciTotalResources =+    lens _rciTotalResources (\s a -> s { _rciTotalResources = a })+        . _List++newtype RegisterContainerInstanceResponse = RegisterContainerInstanceResponse+    { _rcirContainerInstance :: Maybe ContainerInstance+    } deriving (Eq, Read, Show)++-- | 'RegisterContainerInstanceResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcirContainerInstance' @::@ 'Maybe' 'ContainerInstance'+--+registerContainerInstanceResponse :: RegisterContainerInstanceResponse+registerContainerInstanceResponse = RegisterContainerInstanceResponse+    { _rcirContainerInstance = Nothing+    }++rcirContainerInstance :: Lens' RegisterContainerInstanceResponse (Maybe ContainerInstance)+rcirContainerInstance =+    lens _rcirContainerInstance (\s a -> s { _rcirContainerInstance = a })++instance ToPath RegisterContainerInstance where+    toPath = const "/"++instance ToQuery RegisterContainerInstance where+    toQuery RegisterContainerInstance{..} = mconcat+        [ "cluster"                           =? _rciCluster+        , "instanceIdentityDocument"          =? _rciInstanceIdentityDocument+        , "instanceIdentityDocumentSignature" =? _rciInstanceIdentityDocumentSignature+        , "totalResources"                    =? _rciTotalResources+        ]++instance ToHeaders RegisterContainerInstance++instance AWSRequest RegisterContainerInstance where+    type Sv RegisterContainerInstance = ECS+    type Rs RegisterContainerInstance = RegisterContainerInstanceResponse++    request  = post "RegisterContainerInstance"+    response = xmlResponse++instance FromXML RegisterContainerInstanceResponse where+    parseXML = withElement "RegisterContainerInstanceResult" $ \x -> RegisterContainerInstanceResponse+        <$> x .@? "containerInstance"
+ gen/Network/AWS/ECS/RegisterTaskDefinition.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.RegisterTaskDefinition+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Registers a new task definition from the supplied 'family' and 'containerDefinitions'.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html>+module Network.AWS.ECS.RegisterTaskDefinition+    (+    -- * Request+      RegisterTaskDefinition+    -- ** Request constructor+    , registerTaskDefinition+    -- ** Request lenses+    , rtdContainerDefinitions+    , rtdFamily++    -- * Response+    , RegisterTaskDefinitionResponse+    -- ** Response constructor+    , registerTaskDefinitionResponse+    -- ** Response lenses+    , rtdrTaskDefinition+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data RegisterTaskDefinition = RegisterTaskDefinition+    { _rtdContainerDefinitions :: List "member" ContainerDefinition+    , _rtdFamily               :: Text+    } deriving (Eq, Read, Show)++-- | 'RegisterTaskDefinition' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtdContainerDefinitions' @::@ ['ContainerDefinition']+--+-- * 'rtdFamily' @::@ 'Text'+--+registerTaskDefinition :: Text -- ^ 'rtdFamily'+                       -> RegisterTaskDefinition+registerTaskDefinition p1 = RegisterTaskDefinition+    { _rtdFamily               = p1+    , _rtdContainerDefinitions = mempty+    }++-- | A list of container definitions in JSON format that describe the different+-- containers that make up your task.+rtdContainerDefinitions :: Lens' RegisterTaskDefinition [ContainerDefinition]+rtdContainerDefinitions =+    lens _rtdContainerDefinitions (\s a -> s { _rtdContainerDefinitions = a })+        . _List++-- | You can specify a 'family' for a task definition, which allows you to track+-- multiple versions of the same task definition. You can think of the 'family' as+-- a name for your task definition.+rtdFamily :: Lens' RegisterTaskDefinition Text+rtdFamily = lens _rtdFamily (\s a -> s { _rtdFamily = a })++newtype RegisterTaskDefinitionResponse = RegisterTaskDefinitionResponse+    { _rtdrTaskDefinition :: Maybe TaskDefinition+    } deriving (Eq, Read, Show)++-- | 'RegisterTaskDefinitionResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtdrTaskDefinition' @::@ 'Maybe' 'TaskDefinition'+--+registerTaskDefinitionResponse :: RegisterTaskDefinitionResponse+registerTaskDefinitionResponse = RegisterTaskDefinitionResponse+    { _rtdrTaskDefinition = Nothing+    }++rtdrTaskDefinition :: Lens' RegisterTaskDefinitionResponse (Maybe TaskDefinition)+rtdrTaskDefinition =+    lens _rtdrTaskDefinition (\s a -> s { _rtdrTaskDefinition = a })++instance ToPath RegisterTaskDefinition where+    toPath = const "/"++instance ToQuery RegisterTaskDefinition where+    toQuery RegisterTaskDefinition{..} = mconcat+        [ "containerDefinitions" =? _rtdContainerDefinitions+        , "family"               =? _rtdFamily+        ]++instance ToHeaders RegisterTaskDefinition++instance AWSRequest RegisterTaskDefinition where+    type Sv RegisterTaskDefinition = ECS+    type Rs RegisterTaskDefinition = RegisterTaskDefinitionResponse++    request  = post "RegisterTaskDefinition"+    response = xmlResponse++instance FromXML RegisterTaskDefinitionResponse where+    parseXML = withElement "RegisterTaskDefinitionResult" $ \x -> RegisterTaskDefinitionResponse+        <$> x .@? "taskDefinition"
+ gen/Network/AWS/ECS/RunTask.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.RunTask+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Start a task using random placement and the default Amazon ECS scheduler. If+-- you want to use your own scheduler or place a task on a specific container+-- instance, use 'StartTask' instead.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html>+module Network.AWS.ECS.RunTask+    (+    -- * Request+      RunTask+    -- ** Request constructor+    , runTask+    -- ** Request lenses+    , rtCluster+    , rtCount+    , rtOverrides+    , rtTaskDefinition++    -- * Response+    , RunTaskResponse+    -- ** Response constructor+    , runTaskResponse+    -- ** Response lenses+    , rtrFailures+    , rtrTasks+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data RunTask = RunTask+    { _rtCluster        :: Maybe Text+    , _rtCount          :: Maybe Int+    , _rtOverrides      :: Maybe TaskOverride+    , _rtTaskDefinition :: Text+    } deriving (Eq, Read, Show)++-- | 'RunTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtCluster' @::@ 'Maybe' 'Text'+--+-- * 'rtCount' @::@ 'Maybe' 'Int'+--+-- * 'rtOverrides' @::@ 'Maybe' 'TaskOverride'+--+-- * 'rtTaskDefinition' @::@ 'Text'+--+runTask :: Text -- ^ 'rtTaskDefinition'+        -> RunTask+runTask p1 = RunTask+    { _rtTaskDefinition = p1+    , _rtCluster        = Nothing+    , _rtOverrides      = Nothing+    , _rtCount          = Nothing+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that you+-- want to run your task on. If you do not specify a cluster, the default+-- cluster is assumed..+rtCluster :: Lens' RunTask (Maybe Text)+rtCluster = lens _rtCluster (\s a -> s { _rtCluster = a })++-- | The number of instances of the specified task that you would like to place on+-- your cluster.+rtCount :: Lens' RunTask (Maybe Int)+rtCount = lens _rtCount (\s a -> s { _rtCount = a })++rtOverrides :: Lens' RunTask (Maybe TaskOverride)+rtOverrides = lens _rtOverrides (\s a -> s { _rtOverrides = a })++-- | The 'family' and 'revision' ('family:revision') or full Amazon Resource Name (ARN)+-- of the task definition that you want to run.+rtTaskDefinition :: Lens' RunTask Text+rtTaskDefinition = lens _rtTaskDefinition (\s a -> s { _rtTaskDefinition = a })++data RunTaskResponse = RunTaskResponse+    { _rtrFailures :: List "member" Failure+    , _rtrTasks    :: List "member" Task+    } deriving (Eq, Read, Show)++-- | 'RunTaskResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtrFailures' @::@ ['Failure']+--+-- * 'rtrTasks' @::@ ['Task']+--+runTaskResponse :: RunTaskResponse+runTaskResponse = RunTaskResponse+    { _rtrTasks    = mempty+    , _rtrFailures = mempty+    }++-- | Any failed tasks from your 'RunTask' action are listed here.+rtrFailures :: Lens' RunTaskResponse [Failure]+rtrFailures = lens _rtrFailures (\s a -> s { _rtrFailures = a }) . _List++-- | A full description of the tasks that were run. Each task that was+-- successfully placed on your cluster will be described here.+rtrTasks :: Lens' RunTaskResponse [Task]+rtrTasks = lens _rtrTasks (\s a -> s { _rtrTasks = a }) . _List++instance ToPath RunTask where+    toPath = const "/"++instance ToQuery RunTask where+    toQuery RunTask{..} = mconcat+        [ "cluster"        =? _rtCluster+        , "count"          =? _rtCount+        , "overrides"      =? _rtOverrides+        , "taskDefinition" =? _rtTaskDefinition+        ]++instance ToHeaders RunTask++instance AWSRequest RunTask where+    type Sv RunTask = ECS+    type Rs RunTask = RunTaskResponse++    request  = post "RunTask"+    response = xmlResponse++instance FromXML RunTaskResponse where+    parseXML = withElement "RunTaskResult" $ \x -> RunTaskResponse+        <$> x .@? "failures" .!@ mempty+        <*> x .@? "tasks" .!@ mempty
+ gen/Network/AWS/ECS/StartTask.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.StartTask+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Starts a new task from the specified task definition on the specified+-- container instance or instances. If you want to use the default Amazon ECS+-- scheduler to place your task, use 'RunTask' instead.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html>+module Network.AWS.ECS.StartTask+    (+    -- * Request+      StartTask+    -- ** Request constructor+    , startTask+    -- ** Request lenses+    , st1Cluster+    , st1ContainerInstances+    , st1Overrides+    , st1TaskDefinition++    -- * Response+    , StartTaskResponse+    -- ** Response constructor+    , startTaskResponse+    -- ** Response lenses+    , strFailures+    , strTasks+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data StartTask = StartTask+    { _st1Cluster            :: Maybe Text+    , _st1ContainerInstances :: List "member" Text+    , _st1Overrides          :: Maybe TaskOverride+    , _st1TaskDefinition     :: Text+    } deriving (Eq, Read, Show)++-- | 'StartTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'st1Cluster' @::@ 'Maybe' 'Text'+--+-- * 'st1ContainerInstances' @::@ ['Text']+--+-- * 'st1Overrides' @::@ 'Maybe' 'TaskOverride'+--+-- * 'st1TaskDefinition' @::@ 'Text'+--+startTask :: Text -- ^ 'st1TaskDefinition'+          -> StartTask+startTask p1 = StartTask+    { _st1TaskDefinition     = p1+    , _st1Cluster            = Nothing+    , _st1Overrides          = Nothing+    , _st1ContainerInstances = mempty+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that you+-- want to start your task on. If you do not specify a cluster, the default+-- cluster is assumed..+st1Cluster :: Lens' StartTask (Maybe Text)+st1Cluster = lens _st1Cluster (\s a -> s { _st1Cluster = a })++-- | The container instance UUIDs or full Amazon Resource Name (ARN) entries for+-- the container instances on which you would like to place your task.+st1ContainerInstances :: Lens' StartTask [Text]+st1ContainerInstances =+    lens _st1ContainerInstances (\s a -> s { _st1ContainerInstances = a })+        . _List++st1Overrides :: Lens' StartTask (Maybe TaskOverride)+st1Overrides = lens _st1Overrides (\s a -> s { _st1Overrides = a })++-- | The 'family' and 'revision' ('family:revision') or full Amazon Resource Name (ARN)+-- of the task definition that you want to start.+st1TaskDefinition :: Lens' StartTask Text+st1TaskDefinition =+    lens _st1TaskDefinition (\s a -> s { _st1TaskDefinition = a })++data StartTaskResponse = StartTaskResponse+    { _strFailures :: List "member" Failure+    , _strTasks    :: List "member" Task+    } deriving (Eq, Read, Show)++-- | 'StartTaskResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'strFailures' @::@ ['Failure']+--+-- * 'strTasks' @::@ ['Task']+--+startTaskResponse :: StartTaskResponse+startTaskResponse = StartTaskResponse+    { _strTasks    = mempty+    , _strFailures = mempty+    }++-- | Any failed tasks from your 'StartTask' action are listed here.+strFailures :: Lens' StartTaskResponse [Failure]+strFailures = lens _strFailures (\s a -> s { _strFailures = a }) . _List++-- | A full description of the tasks that were started. Each task that was+-- successfully placed on your container instances will be described here.+strTasks :: Lens' StartTaskResponse [Task]+strTasks = lens _strTasks (\s a -> s { _strTasks = a }) . _List++instance ToPath StartTask where+    toPath = const "/"++instance ToQuery StartTask where+    toQuery StartTask{..} = mconcat+        [ "cluster"            =? _st1Cluster+        , "containerInstances" =? _st1ContainerInstances+        , "overrides"          =? _st1Overrides+        , "taskDefinition"     =? _st1TaskDefinition+        ]++instance ToHeaders StartTask++instance AWSRequest StartTask where+    type Sv StartTask = ECS+    type Rs StartTask = StartTaskResponse++    request  = post "StartTask"+    response = xmlResponse++instance FromXML StartTaskResponse where+    parseXML = withElement "StartTaskResult" $ \x -> StartTaskResponse+        <$> x .@? "failures" .!@ mempty+        <*> x .@? "tasks" .!@ mempty
+ gen/Network/AWS/ECS/StopTask.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.StopTask+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Stops a running task.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StopTask.html>+module Network.AWS.ECS.StopTask+    (+    -- * Request+      StopTask+    -- ** Request constructor+    , stopTask+    -- ** Request lenses+    , stCluster+    , stTask++    -- * Response+    , StopTaskResponse+    -- ** Response constructor+    , stopTaskResponse+    -- ** Response lenses+    , strTask+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data StopTask = StopTask+    { _stCluster :: Maybe Text+    , _stTask    :: Text+    } deriving (Eq, Ord, Read, Show)++-- | 'StopTask' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'stCluster' @::@ 'Maybe' 'Text'+--+-- * 'stTask' @::@ 'Text'+--+stopTask :: Text -- ^ 'stTask'+         -> StopTask+stopTask p1 = StopTask+    { _stTask    = p1+    , _stCluster = Nothing+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the task you want to stop. If you do not specify a cluster, the default+-- cluster is assumed..+stCluster :: Lens' StopTask (Maybe Text)+stCluster = lens _stCluster (\s a -> s { _stCluster = a })++-- | The task UUIDs or full Amazon Resource Name (ARN) entry of the task you would+-- like to stop.+stTask :: Lens' StopTask Text+stTask = lens _stTask (\s a -> s { _stTask = a })++newtype StopTaskResponse = StopTaskResponse+    { _strTask :: Maybe Task+    } deriving (Eq, Read, Show)++-- | 'StopTaskResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'strTask' @::@ 'Maybe' 'Task'+--+stopTaskResponse :: StopTaskResponse+stopTaskResponse = StopTaskResponse+    { _strTask = Nothing+    }++strTask :: Lens' StopTaskResponse (Maybe Task)+strTask = lens _strTask (\s a -> s { _strTask = a })++instance ToPath StopTask where+    toPath = const "/"++instance ToQuery StopTask where+    toQuery StopTask{..} = mconcat+        [ "cluster" =? _stCluster+        , "task"    =? _stTask+        ]++instance ToHeaders StopTask++instance AWSRequest StopTask where+    type Sv StopTask = ECS+    type Rs StopTask = StopTaskResponse++    request  = post "StopTask"+    response = xmlResponse++instance FromXML StopTaskResponse where+    parseXML = withElement "StopTaskResult" $ \x -> StopTaskResponse+        <$> x .@? "task"
+ gen/Network/AWS/ECS/SubmitContainerStateChange.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.SubmitContainerStateChange+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | This action is only used by the Amazon EC2 Container Service agent, and it is+-- not intended for use outside of the agent.+--+-- Sent to acknowledge that a container changed states.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_SubmitContainerStateChange.html>+module Network.AWS.ECS.SubmitContainerStateChange+    (+    -- * Request+      SubmitContainerStateChange+    -- ** Request constructor+    , submitContainerStateChange+    -- ** Request lenses+    , scscCluster+    , scscContainerName+    , scscExitCode+    , scscNetworkBindings+    , scscReason+    , scscStatus+    , scscTask++    -- * Response+    , SubmitContainerStateChangeResponse+    -- ** Response constructor+    , submitContainerStateChangeResponse+    -- ** Response lenses+    , scscrAcknowledgment+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data SubmitContainerStateChange = SubmitContainerStateChange+    { _scscCluster         :: Maybe Text+    , _scscContainerName   :: Maybe Text+    , _scscExitCode        :: Maybe Int+    , _scscNetworkBindings :: List "member" NetworkBinding+    , _scscReason          :: Maybe Text+    , _scscStatus          :: Maybe Text+    , _scscTask            :: Maybe Text+    } deriving (Eq, Read, Show)++-- | 'SubmitContainerStateChange' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'scscCluster' @::@ 'Maybe' 'Text'+--+-- * 'scscContainerName' @::@ 'Maybe' 'Text'+--+-- * 'scscExitCode' @::@ 'Maybe' 'Int'+--+-- * 'scscNetworkBindings' @::@ ['NetworkBinding']+--+-- * 'scscReason' @::@ 'Maybe' 'Text'+--+-- * 'scscStatus' @::@ 'Maybe' 'Text'+--+-- * 'scscTask' @::@ 'Maybe' 'Text'+--+submitContainerStateChange :: SubmitContainerStateChange+submitContainerStateChange = SubmitContainerStateChange+    { _scscCluster         = Nothing+    , _scscTask            = Nothing+    , _scscContainerName   = Nothing+    , _scscStatus          = Nothing+    , _scscExitCode        = Nothing+    , _scscReason          = Nothing+    , _scscNetworkBindings = mempty+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the container.+scscCluster :: Lens' SubmitContainerStateChange (Maybe Text)+scscCluster = lens _scscCluster (\s a -> s { _scscCluster = a })++-- | The name of the container.+scscContainerName :: Lens' SubmitContainerStateChange (Maybe Text)+scscContainerName =+    lens _scscContainerName (\s a -> s { _scscContainerName = a })++-- | The exit code returned for the state change request.+scscExitCode :: Lens' SubmitContainerStateChange (Maybe Int)+scscExitCode = lens _scscExitCode (\s a -> s { _scscExitCode = a })++-- | The network bindings of the container.+scscNetworkBindings :: Lens' SubmitContainerStateChange [NetworkBinding]+scscNetworkBindings =+    lens _scscNetworkBindings (\s a -> s { _scscNetworkBindings = a })+        . _List++-- | The reason for the state change request.+scscReason :: Lens' SubmitContainerStateChange (Maybe Text)+scscReason = lens _scscReason (\s a -> s { _scscReason = a })++-- | The status of the state change request.+scscStatus :: Lens' SubmitContainerStateChange (Maybe Text)+scscStatus = lens _scscStatus (\s a -> s { _scscStatus = a })++-- | The task UUID or full Amazon Resource Name (ARN) of the task that hosts the+-- container.+scscTask :: Lens' SubmitContainerStateChange (Maybe Text)+scscTask = lens _scscTask (\s a -> s { _scscTask = a })++newtype SubmitContainerStateChangeResponse = SubmitContainerStateChangeResponse+    { _scscrAcknowledgment :: Maybe Text+    } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'SubmitContainerStateChangeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'scscrAcknowledgment' @::@ 'Maybe' 'Text'+--+submitContainerStateChangeResponse :: SubmitContainerStateChangeResponse+submitContainerStateChangeResponse = SubmitContainerStateChangeResponse+    { _scscrAcknowledgment = Nothing+    }++-- | Acknowledgement of the state change.+scscrAcknowledgment :: Lens' SubmitContainerStateChangeResponse (Maybe Text)+scscrAcknowledgment =+    lens _scscrAcknowledgment (\s a -> s { _scscrAcknowledgment = a })++instance ToPath SubmitContainerStateChange where+    toPath = const "/"++instance ToQuery SubmitContainerStateChange where+    toQuery SubmitContainerStateChange{..} = mconcat+        [ "cluster"         =? _scscCluster+        , "containerName"   =? _scscContainerName+        , "exitCode"        =? _scscExitCode+        , "networkBindings" =? _scscNetworkBindings+        , "reason"          =? _scscReason+        , "status"          =? _scscStatus+        , "task"            =? _scscTask+        ]++instance ToHeaders SubmitContainerStateChange++instance AWSRequest SubmitContainerStateChange where+    type Sv SubmitContainerStateChange = ECS+    type Rs SubmitContainerStateChange = SubmitContainerStateChangeResponse++    request  = post "SubmitContainerStateChange"+    response = xmlResponse++instance FromXML SubmitContainerStateChangeResponse where+    parseXML = withElement "SubmitContainerStateChangeResult" $ \x -> SubmitContainerStateChangeResponse+        <$> x .@? "acknowledgment"
+ gen/Network/AWS/ECS/SubmitTaskStateChange.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.SubmitTaskStateChange+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | This action is only used by the Amazon EC2 Container Service agent, and it is+-- not intended for use outside of the agent.+--+-- Sent to acknowledge that a task changed states.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_SubmitTaskStateChange.html>+module Network.AWS.ECS.SubmitTaskStateChange+    (+    -- * Request+      SubmitTaskStateChange+    -- ** Request constructor+    , submitTaskStateChange+    -- ** Request lenses+    , stscCluster+    , stscReason+    , stscStatus+    , stscTask++    -- * Response+    , SubmitTaskStateChangeResponse+    -- ** Response constructor+    , submitTaskStateChangeResponse+    -- ** Response lenses+    , stscrAcknowledgment+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.ECS.Types+import qualified GHC.Exts++data SubmitTaskStateChange = SubmitTaskStateChange+    { _stscCluster :: Maybe Text+    , _stscReason  :: Maybe Text+    , _stscStatus  :: Maybe Text+    , _stscTask    :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'SubmitTaskStateChange' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'stscCluster' @::@ 'Maybe' 'Text'+--+-- * 'stscReason' @::@ 'Maybe' 'Text'+--+-- * 'stscStatus' @::@ 'Maybe' 'Text'+--+-- * 'stscTask' @::@ 'Maybe' 'Text'+--+submitTaskStateChange :: SubmitTaskStateChange+submitTaskStateChange = SubmitTaskStateChange+    { _stscCluster = Nothing+    , _stscTask    = Nothing+    , _stscStatus  = Nothing+    , _stscReason  = Nothing+    }++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts+-- the task.+stscCluster :: Lens' SubmitTaskStateChange (Maybe Text)+stscCluster = lens _stscCluster (\s a -> s { _stscCluster = a })++-- | The reason for the state change request.+stscReason :: Lens' SubmitTaskStateChange (Maybe Text)+stscReason = lens _stscReason (\s a -> s { _stscReason = a })++-- | The status of the state change request.+stscStatus :: Lens' SubmitTaskStateChange (Maybe Text)+stscStatus = lens _stscStatus (\s a -> s { _stscStatus = a })++-- | The task UUID or full Amazon Resource Name (ARN) of the task in the state+-- change request.+stscTask :: Lens' SubmitTaskStateChange (Maybe Text)+stscTask = lens _stscTask (\s a -> s { _stscTask = a })++newtype SubmitTaskStateChangeResponse = SubmitTaskStateChangeResponse+    { _stscrAcknowledgment :: Maybe Text+    } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'SubmitTaskStateChangeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'stscrAcknowledgment' @::@ 'Maybe' 'Text'+--+submitTaskStateChangeResponse :: SubmitTaskStateChangeResponse+submitTaskStateChangeResponse = SubmitTaskStateChangeResponse+    { _stscrAcknowledgment = Nothing+    }++-- | Acknowledgement of the state change.+stscrAcknowledgment :: Lens' SubmitTaskStateChangeResponse (Maybe Text)+stscrAcknowledgment =+    lens _stscrAcknowledgment (\s a -> s { _stscrAcknowledgment = a })++instance ToPath SubmitTaskStateChange where+    toPath = const "/"++instance ToQuery SubmitTaskStateChange where+    toQuery SubmitTaskStateChange{..} = mconcat+        [ "cluster" =? _stscCluster+        , "reason"  =? _stscReason+        , "status"  =? _stscStatus+        , "task"    =? _stscTask+        ]++instance ToHeaders SubmitTaskStateChange++instance AWSRequest SubmitTaskStateChange where+    type Sv SubmitTaskStateChange = ECS+    type Rs SubmitTaskStateChange = SubmitTaskStateChangeResponse++    request  = post "SubmitTaskStateChange"+    response = xmlResponse++instance FromXML SubmitTaskStateChangeResponse where+    parseXML = withElement "SubmitTaskStateChangeResult" $ \x -> SubmitTaskStateChangeResponse+        <$> x .@? "acknowledgment"
+ gen/Network/AWS/ECS/Types.hs view
@@ -0,0 +1,1041 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE ViewPatterns                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.ECS.Types+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++module Network.AWS.ECS.Types+    (+    -- * Service+      ECS+    -- ** Error+    , RESTError+    -- ** XML+    , ns++    -- * NetworkBinding+    , NetworkBinding+    , networkBinding+    , nbBindIP+    , nbContainerPort+    , nbHostPort++    -- * Cluster+    , Cluster+    , cluster+    , cClusterArn+    , cClusterName+    , cStatus++    -- * ContainerOverride+    , ContainerOverride+    , containerOverride+    , coCommand+    , coName++    -- * KeyValuePair+    , KeyValuePair+    , keyValuePair+    , kvpName+    , kvpValue++    -- * TaskOverride+    , TaskOverride+    , taskOverride+    , toContainerOverrides++    -- * Container+    , Container+    , container+    , cContainerArn+    , cExitCode+    , cLastStatus+    , cName+    , cNetworkBindings+    , cReason+    , cTaskArn++    -- * ContainerDefinition+    , ContainerDefinition+    , containerDefinition+    , cdCommand+    , cdCpu+    , cdEntryPoint+    , cdEnvironment+    , cdEssential+    , cdImage+    , cdLinks+    , cdMemory+    , cdName+    , cdPortMappings++    -- * Resource+    , Resource+    , resource+    , rDoubleValue+    , rIntegerValue+    , rLongValue+    , rName+    , rStringSetValue+    , rType++    -- * Task+    , Task+    , task+    , tClusterArn+    , tContainerInstanceArn+    , tContainers+    , tDesiredStatus+    , tLastStatus+    , tOverrides+    , tTaskArn+    , tTaskDefinitionArn++    -- * PortMapping+    , PortMapping+    , portMapping+    , pmContainerPort+    , pmHostPort++    -- * TaskDefinition+    , TaskDefinition+    , taskDefinition+    , tdContainerDefinitions+    , tdFamily+    , tdRevision+    , tdTaskDefinitionArn++    -- * Failure+    , Failure+    , failure+    , fArn+    , fReason++    -- * ContainerInstance+    , ContainerInstance+    , containerInstance+    , ciAgentConnected+    , ciContainerInstanceArn+    , ciEc2InstanceId+    , ciRegisteredResources+    , ciRemainingResources+    , ciStatus+    ) where++import Network.AWS.Prelude+import Network.AWS.Signing+import qualified GHC.Exts++-- | Version @2014-11-13@ of the Amazon EC2 Container Service service.+data ECS++instance AWSService ECS where+    type Sg ECS = V4+    type Er ECS = RESTError++    service = service'+      where+        service' :: Service ECS+        service' = Service+            { _svcAbbrev       = "ECS"+            , _svcPrefix       = "ecs"+            , _svcVersion      = "2014-11-13"+            , _svcTargetPrefix = Nothing+            , _svcJSONVersion  = Nothing+            , _svcHandle       = handle+            , _svcRetry        = retry+            }++        handle :: Status+               -> Maybe (LazyByteString -> ServiceError RESTError)+        handle = restError statusSuccess service'++        retry :: Retry ECS+        retry = Exponential+            { _retryBase     = 0.05+            , _retryGrowth   = 2+            , _retryAttempts = 5+            , _retryCheck    = check+            }++        check :: Status+              -> RESTError+              -> Bool+        check (statusCode -> s) (awsErrorCode -> e)+            | s == 500  = True -- General Server Error+            | s == 509  = True -- Limit Exceeded+            | s == 503  = True -- Service Unavailable+            | otherwise = False++ns :: Text+ns = "http://ecs.amazonaws.com/doc/2014-11-13/"+{-# INLINE ns #-}++data NetworkBinding = NetworkBinding+    { _nbBindIP        :: Maybe Text+    , _nbContainerPort :: Maybe Int+    , _nbHostPort      :: Maybe Int+    } deriving (Eq, Ord, Read, Show)++-- | 'NetworkBinding' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'nbBindIP' @::@ 'Maybe' 'Text'+--+-- * 'nbContainerPort' @::@ 'Maybe' 'Int'+--+-- * 'nbHostPort' @::@ 'Maybe' 'Int'+--+networkBinding :: NetworkBinding+networkBinding = NetworkBinding+    { _nbBindIP        = Nothing+    , _nbContainerPort = Nothing+    , _nbHostPort      = Nothing+    }++-- | The IP address that the container is bound to on the container instance.+nbBindIP :: Lens' NetworkBinding (Maybe Text)+nbBindIP = lens _nbBindIP (\s a -> s { _nbBindIP = a })++-- | The port number on the container that should be used with the network binding.+nbContainerPort :: Lens' NetworkBinding (Maybe Int)+nbContainerPort = lens _nbContainerPort (\s a -> s { _nbContainerPort = a })++-- | The port number on the host that should be used with the network binding.+nbHostPort :: Lens' NetworkBinding (Maybe Int)+nbHostPort = lens _nbHostPort (\s a -> s { _nbHostPort = a })++instance FromXML NetworkBinding where+    parseXML x = NetworkBinding+        <$> x .@? "bindIP"+        <*> x .@? "containerPort"+        <*> x .@? "hostPort"++instance ToQuery NetworkBinding where+    toQuery NetworkBinding{..} = mconcat+        [ "bindIP"        =? _nbBindIP+        , "containerPort" =? _nbContainerPort+        , "hostPort"      =? _nbHostPort+        ]++data Cluster = Cluster+    { _cClusterArn  :: Maybe Text+    , _cClusterName :: Maybe Text+    , _cStatus      :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'Cluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cClusterArn' @::@ 'Maybe' 'Text'+--+-- * 'cClusterName' @::@ 'Maybe' 'Text'+--+-- * 'cStatus' @::@ 'Maybe' 'Text'+--+cluster :: Cluster+cluster = Cluster+    { _cClusterArn  = Nothing+    , _cClusterName = Nothing+    , _cStatus      = Nothing+    }++-- | The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains+-- the 'arn:aws:ecs' namespace, followed by the region of the cluster, the AWS+-- account ID of the cluster owner, the 'cluster' namespace, and then the cluster+-- name. For example, arn:aws:ecs:/region/:/012345678910/:cluster//test/.+cClusterArn :: Lens' Cluster (Maybe Text)+cClusterArn = lens _cClusterArn (\s a -> s { _cClusterArn = a })++-- | A user-generated string that you can use to identify your cluster.+cClusterName :: Lens' Cluster (Maybe Text)+cClusterName = lens _cClusterName (\s a -> s { _cClusterName = a })++-- | The status of the cluster. The valid values are 'ACTIVE' or 'INACTIVE'. 'ACTIVE'+-- indicates that you can register container instances with the cluster and the+-- associated instances can accept tasks.+cStatus :: Lens' Cluster (Maybe Text)+cStatus = lens _cStatus (\s a -> s { _cStatus = a })++instance FromXML Cluster where+    parseXML x = Cluster+        <$> x .@? "clusterArn"+        <*> x .@? "clusterName"+        <*> x .@? "status"++instance ToQuery Cluster where+    toQuery Cluster{..} = mconcat+        [ "clusterArn"  =? _cClusterArn+        , "clusterName" =? _cClusterName+        , "status"      =? _cStatus+        ]++data ContainerOverride = ContainerOverride+    { _coCommand :: List "member" Text+    , _coName    :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ContainerOverride' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'coCommand' @::@ ['Text']+--+-- * 'coName' @::@ 'Maybe' 'Text'+--+containerOverride :: ContainerOverride+containerOverride = ContainerOverride+    { _coName    = Nothing+    , _coCommand = mempty+    }++-- | The command to send to the container that receives the override.+coCommand :: Lens' ContainerOverride [Text]+coCommand = lens _coCommand (\s a -> s { _coCommand = a }) . _List++-- | The name of the container that receives the override.+coName :: Lens' ContainerOverride (Maybe Text)+coName = lens _coName (\s a -> s { _coName = a })++instance FromXML ContainerOverride where+    parseXML x = ContainerOverride+        <$> x .@? "command" .!@ mempty+        <*> x .@? "name"++instance ToQuery ContainerOverride where+    toQuery ContainerOverride{..} = mconcat+        [ "command" =? _coCommand+        , "name"    =? _coName+        ]++data KeyValuePair = KeyValuePair+    { _kvpName  :: Maybe Text+    , _kvpValue :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'KeyValuePair' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'kvpName' @::@ 'Maybe' 'Text'+--+-- * 'kvpValue' @::@ 'Maybe' 'Text'+--+keyValuePair :: KeyValuePair+keyValuePair = KeyValuePair+    { _kvpName  = Nothing+    , _kvpValue = Nothing+    }++-- | The name of the key value pair.+kvpName :: Lens' KeyValuePair (Maybe Text)+kvpName = lens _kvpName (\s a -> s { _kvpName = a })++-- | The value of the key value pair.+kvpValue :: Lens' KeyValuePair (Maybe Text)+kvpValue = lens _kvpValue (\s a -> s { _kvpValue = a })++instance FromXML KeyValuePair where+    parseXML x = KeyValuePair+        <$> x .@? "name"+        <*> x .@? "value"++instance ToQuery KeyValuePair where+    toQuery KeyValuePair{..} = mconcat+        [ "name"  =? _kvpName+        , "value" =? _kvpValue+        ]++newtype TaskOverride = TaskOverride+    { _toContainerOverrides :: List "member" ContainerOverride+    } deriving (Eq, Read, Show, Monoid, Semigroup)++instance GHC.Exts.IsList TaskOverride where+    type Item TaskOverride = ContainerOverride++    fromList = TaskOverride . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _toContainerOverrides++-- | 'TaskOverride' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'toContainerOverrides' @::@ ['ContainerOverride']+--+taskOverride :: TaskOverride+taskOverride = TaskOverride+    { _toContainerOverrides = mempty+    }++-- | One or more container overrides to send when running a task.+toContainerOverrides :: Lens' TaskOverride [ContainerOverride]+toContainerOverrides =+    lens _toContainerOverrides (\s a -> s { _toContainerOverrides = a })+        . _List++instance FromXML TaskOverride where+    parseXML x = TaskOverride+        <$> x .@? "containerOverrides" .!@ mempty++instance ToQuery TaskOverride where+    toQuery TaskOverride{..} = mconcat+        [ "containerOverrides" =? _toContainerOverrides+        ]++data Container = Container+    { _cContainerArn    :: Maybe Text+    , _cExitCode        :: Maybe Int+    , _cLastStatus      :: Maybe Text+    , _cName            :: Maybe Text+    , _cNetworkBindings :: List "member" NetworkBinding+    , _cReason          :: Maybe Text+    , _cTaskArn         :: Maybe Text+    } deriving (Eq, Read, Show)++-- | 'Container' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cContainerArn' @::@ 'Maybe' 'Text'+--+-- * 'cExitCode' @::@ 'Maybe' 'Int'+--+-- * 'cLastStatus' @::@ 'Maybe' 'Text'+--+-- * 'cName' @::@ 'Maybe' 'Text'+--+-- * 'cNetworkBindings' @::@ ['NetworkBinding']+--+-- * 'cReason' @::@ 'Maybe' 'Text'+--+-- * 'cTaskArn' @::@ 'Maybe' 'Text'+--+container :: Container+container = Container+    { _cContainerArn    = Nothing+    , _cTaskArn         = Nothing+    , _cName            = Nothing+    , _cLastStatus      = Nothing+    , _cExitCode        = Nothing+    , _cReason          = Nothing+    , _cNetworkBindings = mempty+    }++-- | The Amazon Resource Name (ARN) of the container.+cContainerArn :: Lens' Container (Maybe Text)+cContainerArn = lens _cContainerArn (\s a -> s { _cContainerArn = a })++-- | The exit code returned from the container.+cExitCode :: Lens' Container (Maybe Int)+cExitCode = lens _cExitCode (\s a -> s { _cExitCode = a })++-- | The last known status of the container.+cLastStatus :: Lens' Container (Maybe Text)+cLastStatus = lens _cLastStatus (\s a -> s { _cLastStatus = a })++-- | The name of the container.+cName :: Lens' Container (Maybe Text)+cName = lens _cName (\s a -> s { _cName = a })++cNetworkBindings :: Lens' Container [NetworkBinding]+cNetworkBindings = lens _cNetworkBindings (\s a -> s { _cNetworkBindings = a }) . _List++-- | A short (255 max characters) human-readable string to provide additional+-- detail about a running or stopped container.+cReason :: Lens' Container (Maybe Text)+cReason = lens _cReason (\s a -> s { _cReason = a })++-- | The Amazon Resource Name (ARN) of the task.+cTaskArn :: Lens' Container (Maybe Text)+cTaskArn = lens _cTaskArn (\s a -> s { _cTaskArn = a })++instance FromXML Container where+    parseXML x = Container+        <$> x .@? "containerArn"+        <*> x .@? "exitCode"+        <*> x .@? "lastStatus"+        <*> x .@? "name"+        <*> x .@? "networkBindings" .!@ mempty+        <*> x .@? "reason"+        <*> x .@? "taskArn"++instance ToQuery Container where+    toQuery Container{..} = mconcat+        [ "containerArn"    =? _cContainerArn+        , "exitCode"        =? _cExitCode+        , "lastStatus"      =? _cLastStatus+        , "name"            =? _cName+        , "networkBindings" =? _cNetworkBindings+        , "reason"          =? _cReason+        , "taskArn"         =? _cTaskArn+        ]++data ContainerDefinition = ContainerDefinition+    { _cdCommand      :: List "member" Text+    , _cdCpu          :: Maybe Int+    , _cdEntryPoint   :: List "member" Text+    , _cdEnvironment  :: List "member" KeyValuePair+    , _cdEssential    :: Maybe Bool+    , _cdImage        :: Maybe Text+    , _cdLinks        :: List "member" Text+    , _cdMemory       :: Maybe Int+    , _cdName         :: Maybe Text+    , _cdPortMappings :: List "member" PortMapping+    } deriving (Eq, Read, Show)++-- | 'ContainerDefinition' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cdCommand' @::@ ['Text']+--+-- * 'cdCpu' @::@ 'Maybe' 'Int'+--+-- * 'cdEntryPoint' @::@ ['Text']+--+-- * 'cdEnvironment' @::@ ['KeyValuePair']+--+-- * 'cdEssential' @::@ 'Maybe' 'Bool'+--+-- * 'cdImage' @::@ 'Maybe' 'Text'+--+-- * 'cdLinks' @::@ ['Text']+--+-- * 'cdMemory' @::@ 'Maybe' 'Int'+--+-- * 'cdName' @::@ 'Maybe' 'Text'+--+-- * 'cdPortMappings' @::@ ['PortMapping']+--+containerDefinition :: ContainerDefinition+containerDefinition = ContainerDefinition+    { _cdName         = Nothing+    , _cdImage        = Nothing+    , _cdCpu          = Nothing+    , _cdMemory       = Nothing+    , _cdLinks        = mempty+    , _cdPortMappings = mempty+    , _cdEssential    = Nothing+    , _cdEntryPoint   = mempty+    , _cdCommand      = mempty+    , _cdEnvironment  = mempty+    }++-- | The 'CMD' that is passed to the container. For more information on the Docker 'CMD' parameter, see <https://docs.docker.com/reference/builder/#cmd https://docs.docker.com/reference/builder/#cmd>.+cdCommand :: Lens' ContainerDefinition [Text]+cdCommand = lens _cdCommand (\s a -> s { _cdCommand = a }) . _List++-- | The number of 'cpu' units reserved for the container. A container instance has+-- 1,024 'cpu' units for every CPU core.+cdCpu :: Lens' ContainerDefinition (Maybe Int)+cdCpu = lens _cdCpu (\s a -> s { _cdCpu = a })++-- | The 'ENTRYPOINT' that is passed to the container. For more information on the+-- Docker 'ENTRYPOINT' parameter, see <https://docs.docker.com/reference/builder/#entrypoint https://docs.docker.com/reference/builder/#entrypoint>.+cdEntryPoint :: Lens' ContainerDefinition [Text]+cdEntryPoint = lens _cdEntryPoint (\s a -> s { _cdEntryPoint = a }) . _List++-- | The environment variables to pass to a container.+cdEnvironment :: Lens' ContainerDefinition [KeyValuePair]+cdEnvironment = lens _cdEnvironment (\s a -> s { _cdEnvironment = a }) . _List++-- | If the 'essential' parameter of a container is marked as 'true', the failure of+-- that container will stop the task. If the 'essential' parameter of a container+-- is marked as 'false', then its failure will not affect the rest of the+-- containers in a task.+cdEssential :: Lens' ContainerDefinition (Maybe Bool)+cdEssential = lens _cdEssential (\s a -> s { _cdEssential = 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 '/repository-url///image/:/tag/.+cdImage :: Lens' ContainerDefinition (Maybe Text)+cdImage = lens _cdImage (\s a -> s { _cdImage = a })++-- | The 'link' parameter allows containers to communicate with each other without+-- the need for port mappings, using the 'name' parameter. For more information on+-- linking Docker containers, see <https://docs.docker.com/userguide/dockerlinks/ https://docs.docker.com/userguide/dockerlinks/>.+cdLinks :: Lens' ContainerDefinition [Text]+cdLinks = lens _cdLinks (\s a -> s { _cdLinks = a }) . _List++-- | The number of MiB of memory reserved for the container. Docker will allocate+-- a minimum of 4 MiB of memory to a container.+cdMemory :: Lens' ContainerDefinition (Maybe Int)+cdMemory = lens _cdMemory (\s a -> s { _cdMemory = a })++-- | The name of a container. If you are linking multiple containers together in a+-- task definition, the 'name' of one container can be entered in the 'links' of+-- another container to connect the containers.+cdName :: Lens' ContainerDefinition (Maybe Text)+cdName = lens _cdName (\s a -> s { _cdName = a })++-- | The list of port mappings for the container.+cdPortMappings :: Lens' ContainerDefinition [PortMapping]+cdPortMappings = lens _cdPortMappings (\s a -> s { _cdPortMappings = a }) . _List++instance FromXML ContainerDefinition where+    parseXML x = ContainerDefinition+        <$> x .@? "command" .!@ mempty+        <*> x .@? "cpu"+        <*> x .@? "entryPoint" .!@ mempty+        <*> x .@? "environment" .!@ mempty+        <*> x .@? "essential"+        <*> x .@? "image"+        <*> x .@? "links" .!@ mempty+        <*> x .@? "memory"+        <*> x .@? "name"+        <*> x .@? "portMappings" .!@ mempty++instance ToQuery ContainerDefinition where+    toQuery ContainerDefinition{..} = mconcat+        [ "command"      =? _cdCommand+        , "cpu"          =? _cdCpu+        , "entryPoint"   =? _cdEntryPoint+        , "environment"  =? _cdEnvironment+        , "essential"    =? _cdEssential+        , "image"        =? _cdImage+        , "links"        =? _cdLinks+        , "memory"       =? _cdMemory+        , "name"         =? _cdName+        , "portMappings" =? _cdPortMappings+        ]++data Resource = Resource+    { _rDoubleValue    :: Maybe Double+    , _rIntegerValue   :: Maybe Int+    , _rLongValue      :: Maybe Integer+    , _rName           :: Maybe Text+    , _rStringSetValue :: List "member" Text+    , _rType           :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'Resource' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rDoubleValue' @::@ 'Maybe' 'Double'+--+-- * 'rIntegerValue' @::@ 'Maybe' 'Int'+--+-- * 'rLongValue' @::@ 'Maybe' 'Integer'+--+-- * 'rName' @::@ 'Maybe' 'Text'+--+-- * 'rStringSetValue' @::@ ['Text']+--+-- * 'rType' @::@ 'Maybe' 'Text'+--+resource :: Resource+resource = Resource+    { _rName           = Nothing+    , _rType           = Nothing+    , _rDoubleValue    = Nothing+    , _rLongValue      = Nothing+    , _rIntegerValue   = Nothing+    , _rStringSetValue = mempty+    }++-- | When the 'doubleValue' type is set, the value of the resource must be a double+-- precision floating-point type.+rDoubleValue :: Lens' Resource (Maybe Double)+rDoubleValue = lens _rDoubleValue (\s a -> s { _rDoubleValue = a })++-- | When the 'integerValue' type is set, the value of the resource must be an+-- integer.+rIntegerValue :: Lens' Resource (Maybe Int)+rIntegerValue = lens _rIntegerValue (\s a -> s { _rIntegerValue = a })++-- | When the 'longValue' type is set, the value of the resource must be an extended+-- precision floating-point type.+rLongValue :: Lens' Resource (Maybe Integer)+rLongValue = lens _rLongValue (\s a -> s { _rLongValue = a })++-- | The name of the resource, such as 'CPU', 'MEMORY', 'PORTS', or a user-defined+-- resource.+rName :: Lens' Resource (Maybe Text)+rName = lens _rName (\s a -> s { _rName = a })++-- | When the 'stringSetValue' type is set, the value of the resource must be a+-- string type.+rStringSetValue :: Lens' Resource [Text]+rStringSetValue = lens _rStringSetValue (\s a -> s { _rStringSetValue = a }) . _List++-- | The type of the resource, such as 'INTEGER', 'DOUBLE', 'LONG', or 'STRINGSET'.+rType :: Lens' Resource (Maybe Text)+rType = lens _rType (\s a -> s { _rType = a })++instance FromXML Resource where+    parseXML x = Resource+        <$> x .@? "doubleValue"+        <*> x .@? "integerValue"+        <*> x .@? "longValue"+        <*> x .@? "name"+        <*> x .@? "stringSetValue" .!@ mempty+        <*> x .@? "type"++instance ToQuery Resource where+    toQuery Resource{..} = mconcat+        [ "doubleValue"    =? _rDoubleValue+        , "integerValue"   =? _rIntegerValue+        , "longValue"      =? _rLongValue+        , "name"           =? _rName+        , "stringSetValue" =? _rStringSetValue+        , "type"           =? _rType+        ]++data Task = Task+    { _tClusterArn           :: Maybe Text+    , _tContainerInstanceArn :: Maybe Text+    , _tContainers           :: List "member" Container+    , _tDesiredStatus        :: Maybe Text+    , _tLastStatus           :: Maybe Text+    , _tOverrides            :: Maybe TaskOverride+    , _tTaskArn              :: Maybe Text+    , _tTaskDefinitionArn    :: Maybe Text+    } deriving (Eq, Read, Show)++-- | 'Task' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tClusterArn' @::@ 'Maybe' 'Text'+--+-- * 'tContainerInstanceArn' @::@ 'Maybe' 'Text'+--+-- * 'tContainers' @::@ ['Container']+--+-- * 'tDesiredStatus' @::@ 'Maybe' 'Text'+--+-- * 'tLastStatus' @::@ 'Maybe' 'Text'+--+-- * 'tOverrides' @::@ 'Maybe' 'TaskOverride'+--+-- * 'tTaskArn' @::@ 'Maybe' 'Text'+--+-- * 'tTaskDefinitionArn' @::@ 'Maybe' 'Text'+--+task :: Task+task = Task+    { _tTaskArn              = Nothing+    , _tClusterArn           = Nothing+    , _tTaskDefinitionArn    = Nothing+    , _tContainerInstanceArn = Nothing+    , _tOverrides            = Nothing+    , _tLastStatus           = Nothing+    , _tDesiredStatus        = Nothing+    , _tContainers           = mempty+    }++-- | The Amazon Resource Name (ARN) of the of the cluster that hosts the task.+tClusterArn :: Lens' Task (Maybe Text)+tClusterArn = lens _tClusterArn (\s a -> s { _tClusterArn = a })++-- | The Amazon Resource Name (ARN) of the container instances that host the task.+tContainerInstanceArn :: Lens' Task (Maybe Text)+tContainerInstanceArn =+    lens _tContainerInstanceArn (\s a -> s { _tContainerInstanceArn = a })++-- | The containers associated with the task.+tContainers :: Lens' Task [Container]+tContainers = lens _tContainers (\s a -> s { _tContainers = a }) . _List++-- | The desired status of the task.+tDesiredStatus :: Lens' Task (Maybe Text)+tDesiredStatus = lens _tDesiredStatus (\s a -> s { _tDesiredStatus = a })++-- | The last known status of the task.+tLastStatus :: Lens' Task (Maybe Text)+tLastStatus = lens _tLastStatus (\s a -> s { _tLastStatus = a })++-- | One or more container overrides.+tOverrides :: Lens' Task (Maybe TaskOverride)+tOverrides = lens _tOverrides (\s a -> s { _tOverrides = a })++-- | The Amazon Resource Name (ARN) of the task.+tTaskArn :: Lens' Task (Maybe Text)+tTaskArn = lens _tTaskArn (\s a -> s { _tTaskArn = a })++-- | The Amazon Resource Name (ARN) of the of the task definition that creates the+-- task.+tTaskDefinitionArn :: Lens' Task (Maybe Text)+tTaskDefinitionArn =+    lens _tTaskDefinitionArn (\s a -> s { _tTaskDefinitionArn = a })++instance FromXML Task where+    parseXML x = Task+        <$> x .@? "clusterArn"+        <*> x .@? "containerInstanceArn"+        <*> x .@? "containers" .!@ mempty+        <*> x .@? "desiredStatus"+        <*> x .@? "lastStatus"+        <*> x .@? "overrides"+        <*> x .@? "taskArn"+        <*> x .@? "taskDefinitionArn"++instance ToQuery Task where+    toQuery Task{..} = mconcat+        [ "clusterArn"           =? _tClusterArn+        , "containerInstanceArn" =? _tContainerInstanceArn+        , "containers"           =? _tContainers+        , "desiredStatus"        =? _tDesiredStatus+        , "lastStatus"           =? _tLastStatus+        , "overrides"            =? _tOverrides+        , "taskArn"              =? _tTaskArn+        , "taskDefinitionArn"    =? _tTaskDefinitionArn+        ]++data PortMapping = PortMapping+    { _pmContainerPort :: Maybe Int+    , _pmHostPort      :: Maybe Int+    } deriving (Eq, Ord, Read, Show)++-- | 'PortMapping' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pmContainerPort' @::@ 'Maybe' 'Int'+--+-- * 'pmHostPort' @::@ 'Maybe' 'Int'+--+portMapping :: PortMapping+portMapping = PortMapping+    { _pmContainerPort = Nothing+    , _pmHostPort      = Nothing+    }++-- | The port number on the container that should be used with the port mapping.+pmContainerPort :: Lens' PortMapping (Maybe Int)+pmContainerPort = lens _pmContainerPort (\s a -> s { _pmContainerPort = a })++-- | The port number on the host that should be used with the port mapping.+pmHostPort :: Lens' PortMapping (Maybe Int)+pmHostPort = lens _pmHostPort (\s a -> s { _pmHostPort = a })++instance FromXML PortMapping where+    parseXML x = PortMapping+        <$> x .@? "containerPort"+        <*> x .@? "hostPort"++instance ToQuery PortMapping where+    toQuery PortMapping{..} = mconcat+        [ "containerPort" =? _pmContainerPort+        , "hostPort"      =? _pmHostPort+        ]++data TaskDefinition = TaskDefinition+    { _tdContainerDefinitions :: List "member" ContainerDefinition+    , _tdFamily               :: Maybe Text+    , _tdRevision             :: Maybe Int+    , _tdTaskDefinitionArn    :: Maybe Text+    } deriving (Eq, Read, Show)++-- | 'TaskDefinition' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tdContainerDefinitions' @::@ ['ContainerDefinition']+--+-- * 'tdFamily' @::@ 'Maybe' 'Text'+--+-- * 'tdRevision' @::@ 'Maybe' 'Int'+--+-- * 'tdTaskDefinitionArn' @::@ 'Maybe' 'Text'+--+taskDefinition :: TaskDefinition+taskDefinition = TaskDefinition+    { _tdTaskDefinitionArn    = Nothing+    , _tdContainerDefinitions = mempty+    , _tdFamily               = Nothing+    , _tdRevision             = Nothing+    }++-- | A list of container definitions in JSON format that describe the different+-- containers that make up your task.+tdContainerDefinitions :: Lens' TaskDefinition [ContainerDefinition]+tdContainerDefinitions =+    lens _tdContainerDefinitions (\s a -> s { _tdContainerDefinitions = a })+        . _List++-- | The family of your task definition. You can think of the 'family' as the name+-- of your task definition.+tdFamily :: Lens' TaskDefinition (Maybe Text)+tdFamily = lens _tdFamily (\s a -> s { _tdFamily = a })++-- | The revision of the task in a particular family. You can think of the+-- revision as a version number of a task definition in a family. When you+-- register a task definition for the first time, the revision is '1', and each+-- time you register a task definition in the same family, the revision value+-- increases by one.+tdRevision :: Lens' TaskDefinition (Maybe Int)+tdRevision = lens _tdRevision (\s a -> s { _tdRevision = a })++-- | The full Amazon Resource Name (ARN) of the of the task definition.+tdTaskDefinitionArn :: Lens' TaskDefinition (Maybe Text)+tdTaskDefinitionArn =+    lens _tdTaskDefinitionArn (\s a -> s { _tdTaskDefinitionArn = a })++instance FromXML TaskDefinition where+    parseXML x = TaskDefinition+        <$> x .@? "containerDefinitions" .!@ mempty+        <*> x .@? "family"+        <*> x .@? "revision"+        <*> x .@? "taskDefinitionArn"++instance ToQuery TaskDefinition where+    toQuery TaskDefinition{..} = mconcat+        [ "containerDefinitions" =? _tdContainerDefinitions+        , "family"               =? _tdFamily+        , "revision"             =? _tdRevision+        , "taskDefinitionArn"    =? _tdTaskDefinitionArn+        ]++data Failure = Failure+    { _fArn    :: Maybe Text+    , _fReason :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'Failure' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'fArn' @::@ 'Maybe' 'Text'+--+-- * 'fReason' @::@ 'Maybe' 'Text'+--+failure :: Failure+failure = Failure+    { _fArn    = Nothing+    , _fReason = Nothing+    }++-- | The Amazon Resource Name (ARN) of the failed resource.+fArn :: Lens' Failure (Maybe Text)+fArn = lens _fArn (\s a -> s { _fArn = a })++-- | The reason for the failure.+fReason :: Lens' Failure (Maybe Text)+fReason = lens _fReason (\s a -> s { _fReason = a })++instance FromXML Failure where+    parseXML x = Failure+        <$> x .@? "arn"+        <*> x .@? "reason"++instance ToQuery Failure where+    toQuery Failure{..} = mconcat+        [ "arn"    =? _fArn+        , "reason" =? _fReason+        ]++data ContainerInstance = ContainerInstance+    { _ciAgentConnected       :: Maybe Bool+    , _ciContainerInstanceArn :: Maybe Text+    , _ciEc2InstanceId        :: Maybe Text+    , _ciRegisteredResources  :: List "member" Resource+    , _ciRemainingResources   :: List "member" Resource+    , _ciStatus               :: Maybe Text+    } deriving (Eq, Read, Show)++-- | 'ContainerInstance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ciAgentConnected' @::@ 'Maybe' 'Bool'+--+-- * 'ciContainerInstanceArn' @::@ 'Maybe' 'Text'+--+-- * 'ciEc2InstanceId' @::@ 'Maybe' 'Text'+--+-- * 'ciRegisteredResources' @::@ ['Resource']+--+-- * 'ciRemainingResources' @::@ ['Resource']+--+-- * 'ciStatus' @::@ 'Maybe' 'Text'+--+containerInstance :: ContainerInstance+containerInstance = ContainerInstance+    { _ciContainerInstanceArn = Nothing+    , _ciEc2InstanceId        = Nothing+    , _ciRemainingResources   = mempty+    , _ciRegisteredResources  = mempty+    , _ciStatus               = Nothing+    , _ciAgentConnected       = Nothing+    }++-- | This parameter returns 'true' if the agent is actually connected to Amazon ECS.+-- Registered instances with an agent that may be unhealthy or stopped will+-- return 'false', and instances without a connected agent cannot accept placement+-- request.+ciAgentConnected :: Lens' ContainerInstance (Maybe Bool)+ciAgentConnected = lens _ciAgentConnected (\s a -> s { _ciAgentConnected = a })++-- | The Amazon Resource Name (ARN) of the container instance. The ARN contains+-- the 'arn:aws:ecs' namespace, followed by the region of the container instance,+-- the AWS account ID of the container instance owner, the 'container-instance'+-- namespace, and then the container instance UUID. For example, arn:aws:ecs:/region/:/aws_account_id/:container-instance//container_instance_UUID/.+ciContainerInstanceArn :: Lens' ContainerInstance (Maybe Text)+ciContainerInstanceArn =+    lens _ciContainerInstanceArn (\s a -> s { _ciContainerInstanceArn = a })++-- | The Amazon EC2 instance ID of the container instance.+ciEc2InstanceId :: Lens' ContainerInstance (Maybe Text)+ciEc2InstanceId = lens _ciEc2InstanceId (\s a -> s { _ciEc2InstanceId = a })++-- | The registered resources on the container instance that are in use by current+-- tasks.+ciRegisteredResources :: Lens' ContainerInstance [Resource]+ciRegisteredResources =+    lens _ciRegisteredResources (\s a -> s { _ciRegisteredResources = a })+        . _List++-- | The remaining resources of the container instance that are available for new+-- tasks.+ciRemainingResources :: Lens' ContainerInstance [Resource]+ciRemainingResources =+    lens _ciRemainingResources (\s a -> s { _ciRemainingResources = a })+        . _List++-- | The status of the container instance. The valid values are 'ACTIVE' or 'INACTIVE'.+-- 'ACTIVE' indicates that the container instance can accept tasks.+ciStatus :: Lens' ContainerInstance (Maybe Text)+ciStatus = lens _ciStatus (\s a -> s { _ciStatus = a })++instance FromXML ContainerInstance where+    parseXML x = ContainerInstance+        <$> x .@? "agentConnected"+        <*> x .@? "containerInstanceArn"+        <*> x .@? "ec2InstanceId"+        <*> x .@? "registeredResources" .!@ mempty+        <*> x .@? "remainingResources" .!@ mempty+        <*> x .@? "status"++instance ToQuery ContainerInstance where+    toQuery ContainerInstance{..} = mconcat+        [ "agentConnected"       =? _ciAgentConnected+        , "containerInstanceArn" =? _ciContainerInstanceArn+        , "ec2InstanceId"        =? _ciEc2InstanceId+        , "registeredResources"  =? _ciRegisteredResources+        , "remainingResources"   =? _ciRemainingResources+        , "status"               =? _ciStatus+        ]