packages feed

amazonka-ecs 0.3.0 → 0.3.1

raw patch · 24 files changed

+911/−434 lines, 24 filesdep ~amazonka-corePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: amazonka-core

API changes (from Hackage documentation)

- Network.AWS.ECS.CreateCluster: instance FromXML CreateClusterResponse
- Network.AWS.ECS.DeleteCluster: instance FromXML DeleteClusterResponse
- Network.AWS.ECS.DeregisterContainerInstance: instance FromXML DeregisterContainerInstanceResponse
- Network.AWS.ECS.DeregisterTaskDefinition: instance FromXML DeregisterTaskDefinitionResponse
- Network.AWS.ECS.DescribeClusters: instance FromXML DescribeClustersResponse
- Network.AWS.ECS.DescribeContainerInstances: instance FromXML DescribeContainerInstancesResponse
- Network.AWS.ECS.DescribeTaskDefinition: instance FromXML DescribeTaskDefinitionResponse
- Network.AWS.ECS.DescribeTasks: instance FromXML DescribeTasksResponse
- Network.AWS.ECS.DiscoverPollEndpoint: instance FromXML DiscoverPollEndpointResponse
- Network.AWS.ECS.DiscoverPollEndpoint: instance Monoid DiscoverPollEndpoint
- Network.AWS.ECS.ListClusters: instance FromXML ListClustersResponse
- Network.AWS.ECS.ListContainerInstances: instance FromXML ListContainerInstancesResponse
- Network.AWS.ECS.ListTaskDefinitions: instance FromXML ListTaskDefinitionsResponse
- Network.AWS.ECS.ListTasks: instance FromXML ListTasksResponse
- Network.AWS.ECS.RegisterContainerInstance: instance FromXML RegisterContainerInstanceResponse
- Network.AWS.ECS.RegisterTaskDefinition: instance FromXML RegisterTaskDefinitionResponse
- Network.AWS.ECS.RunTask: instance FromXML RunTaskResponse
- Network.AWS.ECS.StartTask: instance FromXML StartTaskResponse
- Network.AWS.ECS.StopTask: instance FromXML StopTaskResponse
- Network.AWS.ECS.SubmitContainerStateChange: instance FromXML SubmitContainerStateChangeResponse
- Network.AWS.ECS.SubmitTaskStateChange: instance FromXML SubmitTaskStateChangeResponse
- Network.AWS.ECS.Types: data RESTError :: *
- Network.AWS.ECS.Types: instance FromXML Cluster
- Network.AWS.ECS.Types: instance FromXML Container
- Network.AWS.ECS.Types: instance FromXML ContainerDefinition
- Network.AWS.ECS.Types: instance FromXML ContainerInstance
- Network.AWS.ECS.Types: instance FromXML ContainerOverride
- Network.AWS.ECS.Types: instance FromXML Failure
- Network.AWS.ECS.Types: instance FromXML KeyValuePair
- Network.AWS.ECS.Types: instance FromXML NetworkBinding
- Network.AWS.ECS.Types: instance FromXML PortMapping
- Network.AWS.ECS.Types: instance FromXML Resource
- Network.AWS.ECS.Types: instance FromXML Task
- Network.AWS.ECS.Types: instance FromXML TaskDefinition
- Network.AWS.ECS.Types: instance FromXML TaskOverride
- Network.AWS.ECS.Types: instance ToQuery Cluster
- Network.AWS.ECS.Types: instance ToQuery Container
- Network.AWS.ECS.Types: instance ToQuery ContainerDefinition
- Network.AWS.ECS.Types: instance ToQuery ContainerInstance
- Network.AWS.ECS.Types: instance ToQuery ContainerOverride
- Network.AWS.ECS.Types: instance ToQuery Failure
- Network.AWS.ECS.Types: instance ToQuery KeyValuePair
- Network.AWS.ECS.Types: instance ToQuery NetworkBinding
- Network.AWS.ECS.Types: instance ToQuery PortMapping
- Network.AWS.ECS.Types: instance ToQuery Resource
- Network.AWS.ECS.Types: instance ToQuery Task
- Network.AWS.ECS.Types: instance ToQuery TaskDefinition
- Network.AWS.ECS.Types: instance ToQuery TaskOverride
- Network.AWS.ECS.Types: ns :: Text
+ Network.AWS.ECS.CreateCluster: instance FromJSON CreateClusterResponse
+ Network.AWS.ECS.CreateCluster: instance ToJSON CreateCluster
+ Network.AWS.ECS.DeleteCluster: instance FromJSON DeleteClusterResponse
+ Network.AWS.ECS.DeleteCluster: instance ToJSON DeleteCluster
+ Network.AWS.ECS.DeregisterContainerInstance: instance FromJSON DeregisterContainerInstanceResponse
+ Network.AWS.ECS.DeregisterContainerInstance: instance ToJSON DeregisterContainerInstance
+ Network.AWS.ECS.DeregisterTaskDefinition: instance FromJSON DeregisterTaskDefinitionResponse
+ Network.AWS.ECS.DeregisterTaskDefinition: instance ToJSON DeregisterTaskDefinition
+ Network.AWS.ECS.DescribeClusters: instance FromJSON DescribeClustersResponse
+ Network.AWS.ECS.DescribeClusters: instance ToJSON DescribeClusters
+ Network.AWS.ECS.DescribeContainerInstances: instance FromJSON DescribeContainerInstancesResponse
+ Network.AWS.ECS.DescribeContainerInstances: instance ToJSON DescribeContainerInstances
+ Network.AWS.ECS.DescribeTaskDefinition: instance FromJSON DescribeTaskDefinitionResponse
+ Network.AWS.ECS.DescribeTaskDefinition: instance ToJSON DescribeTaskDefinition
+ Network.AWS.ECS.DescribeTasks: instance FromJSON DescribeTasksResponse
+ Network.AWS.ECS.DescribeTasks: instance ToJSON DescribeTasks
+ Network.AWS.ECS.DiscoverPollEndpoint: dpeCluster :: Lens' DiscoverPollEndpoint (Maybe Text)
+ Network.AWS.ECS.DiscoverPollEndpoint: instance FromJSON DiscoverPollEndpointResponse
+ Network.AWS.ECS.DiscoverPollEndpoint: instance ToJSON DiscoverPollEndpoint
+ Network.AWS.ECS.ListClusters: instance FromJSON ListClustersResponse
+ Network.AWS.ECS.ListClusters: instance ToJSON ListClusters
+ Network.AWS.ECS.ListContainerInstances: instance FromJSON ListContainerInstancesResponse
+ Network.AWS.ECS.ListContainerInstances: instance ToJSON ListContainerInstances
+ Network.AWS.ECS.ListTaskDefinitionFamilies: data ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: data ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance AWSRequest ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Eq ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Eq ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance FromJSON ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Ord ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Ord ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Read ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Read ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Show ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance Show ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance ToHeaders ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance ToJSON ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance ToPath ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: instance ToQuery ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: listTaskDefinitionFamilies :: ListTaskDefinitionFamilies
+ Network.AWS.ECS.ListTaskDefinitionFamilies: listTaskDefinitionFamiliesResponse :: ListTaskDefinitionFamiliesResponse
+ Network.AWS.ECS.ListTaskDefinitionFamilies: ltdfFamilyPrefix :: Lens' ListTaskDefinitionFamilies (Maybe Text)
+ Network.AWS.ECS.ListTaskDefinitionFamilies: ltdfMaxResults :: Lens' ListTaskDefinitionFamilies (Maybe Int)
+ Network.AWS.ECS.ListTaskDefinitionFamilies: ltdfNextToken :: Lens' ListTaskDefinitionFamilies (Maybe Text)
+ Network.AWS.ECS.ListTaskDefinitionFamilies: ltdfrFamilies :: Lens' ListTaskDefinitionFamiliesResponse [Text]
+ Network.AWS.ECS.ListTaskDefinitionFamilies: ltdfrNextToken :: Lens' ListTaskDefinitionFamiliesResponse (Maybe Text)
+ Network.AWS.ECS.ListTaskDefinitions: instance FromJSON ListTaskDefinitionsResponse
+ Network.AWS.ECS.ListTaskDefinitions: instance ToJSON ListTaskDefinitions
+ Network.AWS.ECS.ListTasks: instance FromJSON ListTasksResponse
+ Network.AWS.ECS.ListTasks: instance ToJSON ListTasks
+ Network.AWS.ECS.RegisterContainerInstance: instance FromJSON RegisterContainerInstanceResponse
+ Network.AWS.ECS.RegisterContainerInstance: instance ToJSON RegisterContainerInstance
+ Network.AWS.ECS.RegisterTaskDefinition: instance FromJSON RegisterTaskDefinitionResponse
+ Network.AWS.ECS.RegisterTaskDefinition: instance ToJSON RegisterTaskDefinition
+ Network.AWS.ECS.RegisterTaskDefinition: rtdVolumes :: Lens' RegisterTaskDefinition [Volume]
+ Network.AWS.ECS.RunTask: instance FromJSON RunTaskResponse
+ Network.AWS.ECS.RunTask: instance ToJSON RunTask
+ Network.AWS.ECS.StartTask: instance FromJSON StartTaskResponse
+ Network.AWS.ECS.StartTask: instance ToJSON StartTask
+ Network.AWS.ECS.StopTask: instance FromJSON StopTaskResponse
+ Network.AWS.ECS.StopTask: instance ToJSON StopTask
+ Network.AWS.ECS.SubmitContainerStateChange: instance FromJSON SubmitContainerStateChangeResponse
+ Network.AWS.ECS.SubmitContainerStateChange: instance ToJSON SubmitContainerStateChange
+ Network.AWS.ECS.SubmitTaskStateChange: instance FromJSON SubmitTaskStateChangeResponse
+ Network.AWS.ECS.SubmitTaskStateChange: instance ToJSON SubmitTaskStateChange
+ Network.AWS.ECS.Types: cdMountPoints :: Lens' ContainerDefinition [MountPoint]
+ Network.AWS.ECS.Types: cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom]
+ Network.AWS.ECS.Types: data HostVolumeProperties
+ Network.AWS.ECS.Types: data JSONError :: *
+ Network.AWS.ECS.Types: data MountPoint
+ Network.AWS.ECS.Types: data Volume
+ Network.AWS.ECS.Types: data VolumeFrom
+ Network.AWS.ECS.Types: hostVolumeProperties :: HostVolumeProperties
+ Network.AWS.ECS.Types: hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text)
+ Network.AWS.ECS.Types: instance Eq HostVolumeProperties
+ Network.AWS.ECS.Types: instance Eq MountPoint
+ Network.AWS.ECS.Types: instance Eq Volume
+ Network.AWS.ECS.Types: instance Eq VolumeFrom
+ Network.AWS.ECS.Types: instance FromJSON Cluster
+ Network.AWS.ECS.Types: instance FromJSON Container
+ Network.AWS.ECS.Types: instance FromJSON ContainerDefinition
+ Network.AWS.ECS.Types: instance FromJSON ContainerInstance
+ Network.AWS.ECS.Types: instance FromJSON ContainerOverride
+ Network.AWS.ECS.Types: instance FromJSON Failure
+ Network.AWS.ECS.Types: instance FromJSON HostVolumeProperties
+ Network.AWS.ECS.Types: instance FromJSON KeyValuePair
+ Network.AWS.ECS.Types: instance FromJSON MountPoint
+ Network.AWS.ECS.Types: instance FromJSON NetworkBinding
+ Network.AWS.ECS.Types: instance FromJSON PortMapping
+ Network.AWS.ECS.Types: instance FromJSON Resource
+ Network.AWS.ECS.Types: instance FromJSON Task
+ Network.AWS.ECS.Types: instance FromJSON TaskDefinition
+ Network.AWS.ECS.Types: instance FromJSON TaskOverride
+ Network.AWS.ECS.Types: instance FromJSON Volume
+ Network.AWS.ECS.Types: instance FromJSON VolumeFrom
+ Network.AWS.ECS.Types: instance Monoid HostVolumeProperties
+ Network.AWS.ECS.Types: instance Ord HostVolumeProperties
+ Network.AWS.ECS.Types: instance Ord MountPoint
+ Network.AWS.ECS.Types: instance Ord VolumeFrom
+ Network.AWS.ECS.Types: instance Read HostVolumeProperties
+ Network.AWS.ECS.Types: instance Read MountPoint
+ Network.AWS.ECS.Types: instance Read Volume
+ Network.AWS.ECS.Types: instance Read VolumeFrom
+ Network.AWS.ECS.Types: instance Show HostVolumeProperties
+ Network.AWS.ECS.Types: instance Show MountPoint
+ Network.AWS.ECS.Types: instance Show Volume
+ Network.AWS.ECS.Types: instance Show VolumeFrom
+ Network.AWS.ECS.Types: instance ToJSON Cluster
+ Network.AWS.ECS.Types: instance ToJSON Container
+ Network.AWS.ECS.Types: instance ToJSON ContainerDefinition
+ Network.AWS.ECS.Types: instance ToJSON ContainerInstance
+ Network.AWS.ECS.Types: instance ToJSON ContainerOverride
+ Network.AWS.ECS.Types: instance ToJSON Failure
+ Network.AWS.ECS.Types: instance ToJSON HostVolumeProperties
+ Network.AWS.ECS.Types: instance ToJSON KeyValuePair
+ Network.AWS.ECS.Types: instance ToJSON MountPoint
+ Network.AWS.ECS.Types: instance ToJSON NetworkBinding
+ Network.AWS.ECS.Types: instance ToJSON PortMapping
+ Network.AWS.ECS.Types: instance ToJSON Resource
+ Network.AWS.ECS.Types: instance ToJSON Task
+ Network.AWS.ECS.Types: instance ToJSON TaskDefinition
+ Network.AWS.ECS.Types: instance ToJSON TaskOverride
+ Network.AWS.ECS.Types: instance ToJSON Volume
+ Network.AWS.ECS.Types: instance ToJSON VolumeFrom
+ Network.AWS.ECS.Types: mountPoint :: MountPoint
+ Network.AWS.ECS.Types: mpContainerPath :: Lens' MountPoint (Maybe Text)
+ Network.AWS.ECS.Types: mpReadOnly :: Lens' MountPoint (Maybe Bool)
+ Network.AWS.ECS.Types: mpSourceVolume :: Lens' MountPoint (Maybe Text)
+ Network.AWS.ECS.Types: tdVolumes :: Lens' TaskDefinition [Volume]
+ Network.AWS.ECS.Types: vHost :: Lens' Volume (Maybe HostVolumeProperties)
+ Network.AWS.ECS.Types: vName :: Lens' Volume (Maybe Text)
+ Network.AWS.ECS.Types: vfReadOnly :: Lens' VolumeFrom (Maybe Bool)
+ Network.AWS.ECS.Types: vfSourceContainer :: Lens' VolumeFrom (Maybe Text)
+ Network.AWS.ECS.Types: volume :: Volume
+ Network.AWS.ECS.Types: volumeFrom :: VolumeFrom

Files

amazonka-ecs.cabal view
@@ -1,5 +1,5 @@ name:                  amazonka-ecs-version:               0.3.0+version:               0.3.1 synopsis:              Amazon EC2 Container Service SDK. homepage:              https://github.com/brendanhay/amazonka license:               OtherLicense@@ -55,6 +55,7 @@         , Network.AWS.ECS.DiscoverPollEndpoint         , Network.AWS.ECS.ListClusters         , Network.AWS.ECS.ListContainerInstances+        , Network.AWS.ECS.ListTaskDefinitionFamilies         , Network.AWS.ECS.ListTaskDefinitions         , Network.AWS.ECS.ListTasks         , Network.AWS.ECS.RegisterContainerInstance@@ -69,5 +70,5 @@     other-modules:      build-depends:-          amazonka-core == 0.3.0.*+          amazonka-core == 0.3.1.*         , base          >= 4.7     && < 5
gen/Network/AWS/ECS.hs view
@@ -34,6 +34,7 @@     , module Network.AWS.ECS.DiscoverPollEndpoint     , module Network.AWS.ECS.ListClusters     , module Network.AWS.ECS.ListContainerInstances+    , module Network.AWS.ECS.ListTaskDefinitionFamilies     , module Network.AWS.ECS.ListTaskDefinitions     , module Network.AWS.ECS.ListTasks     , module Network.AWS.ECS.RegisterContainerInstance@@ -57,6 +58,7 @@ import Network.AWS.ECS.DiscoverPollEndpoint import Network.AWS.ECS.ListClusters import Network.AWS.ECS.ListContainerInstances+import Network.AWS.ECS.ListTaskDefinitionFamilies import Network.AWS.ECS.ListTaskDefinitions import Network.AWS.ECS.ListTasks import Network.AWS.ECS.RegisterContainerInstance
gen/Network/AWS/ECS/CreateCluster.hs view
@@ -48,7 +48,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -95,19 +95,22 @@     toPath = const "/"  instance ToQuery CreateCluster where-    toQuery CreateCluster{..} = mconcat-        [ "clusterName" =? _ccClusterName-        ]+    toQuery = const mempty  instance ToHeaders CreateCluster +instance ToJSON CreateCluster where+    toJSON CreateCluster{..} = object+        [ "clusterName" .= _ccClusterName+        ]+ instance AWSRequest CreateCluster where     type Sv CreateCluster = ECS     type Rs CreateCluster = CreateClusterResponse      request  = post "CreateCluster"-    response = xmlResponse+    response = jsonResponse -instance FromXML CreateClusterResponse where-    parseXML = withElement "CreateClusterResult" $ \x -> CreateClusterResponse-        <$> x .@? "cluster"+instance FromJSON CreateClusterResponse where+    parseJSON = withObject "CreateClusterResponse" $ \o -> CreateClusterResponse+        <$> o .:? "cluster"
gen/Network/AWS/ECS/DeleteCluster.hs view
@@ -45,7 +45,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -65,7 +65,8 @@     { _dcCluster = p1     } --- | The cluster you want to delete.+-- | The short name or full Amazon Resource Name (ARN) of the cluster that you+-- want to delete. dcCluster :: Lens' DeleteCluster Text dcCluster = lens _dcCluster (\s a -> s { _dcCluster = a }) @@ -92,19 +93,22 @@     toPath = const "/"  instance ToQuery DeleteCluster where-    toQuery DeleteCluster{..} = mconcat-        [ "cluster" =? _dcCluster-        ]+    toQuery = const mempty  instance ToHeaders DeleteCluster +instance ToJSON DeleteCluster where+    toJSON DeleteCluster{..} = object+        [ "cluster" .= _dcCluster+        ]+ instance AWSRequest DeleteCluster where     type Sv DeleteCluster = ECS     type Rs DeleteCluster = DeleteClusterResponse      request  = post "DeleteCluster"-    response = xmlResponse+    response = jsonResponse -instance FromXML DeleteClusterResponse where-    parseXML = withElement "DeleteClusterResult" $ \x -> DeleteClusterResponse-        <$> x .@? "cluster"+instance FromJSON DeleteClusterResponse where+    parseJSON = withObject "DeleteClusterResponse" $ \o -> DeleteClusterResponse+        <$> o .:? "cluster"
gen/Network/AWS/ECS/DeregisterContainerInstance.hs view
@@ -46,7 +46,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -119,21 +119,24 @@     toPath = const "/"  instance ToQuery DeregisterContainerInstance where-    toQuery DeregisterContainerInstance{..} = mconcat-        [ "cluster"           =? _dci1Cluster-        , "containerInstance" =? _dci1ContainerInstance-        , "force"             =? _dci1Force-        ]+    toQuery = const mempty  instance ToHeaders DeregisterContainerInstance +instance ToJSON DeregisterContainerInstance where+    toJSON DeregisterContainerInstance{..} = object+        [ "cluster"           .= _dci1Cluster+        , "containerInstance" .= _dci1ContainerInstance+        , "force"             .= _dci1Force+        ]+ instance AWSRequest DeregisterContainerInstance where     type Sv DeregisterContainerInstance = ECS     type Rs DeregisterContainerInstance = DeregisterContainerInstanceResponse      request  = post "DeregisterContainerInstance"-    response = xmlResponse+    response = jsonResponse -instance FromXML DeregisterContainerInstanceResponse where-    parseXML = withElement "DeregisterContainerInstanceResult" $ \x -> DeregisterContainerInstanceResponse-        <$> x .@? "containerInstance"+instance FromJSON DeregisterContainerInstanceResponse where+    parseJSON = withObject "DeregisterContainerInstanceResponse" $ \o -> DeregisterContainerInstanceResponse+        <$> o .:? "containerInstance"
gen/Network/AWS/ECS/DeregisterTaskDefinition.hs view
@@ -22,7 +22,9 @@ -- -- Derived from AWS service descriptions, licensed under Apache 2.0. --- | Deregisters the specified task definition. You will no longer be able to run+-- | NOT YET IMPLEMENTED.+--+-- 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>@@ -44,7 +46,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -94,19 +96,22 @@     toPath = const "/"  instance ToQuery DeregisterTaskDefinition where-    toQuery DeregisterTaskDefinition{..} = mconcat-        [ "taskDefinition" =? _dtd1TaskDefinition-        ]+    toQuery = const mempty  instance ToHeaders DeregisterTaskDefinition +instance ToJSON DeregisterTaskDefinition where+    toJSON DeregisterTaskDefinition{..} = object+        [ "taskDefinition" .= _dtd1TaskDefinition+        ]+ instance AWSRequest DeregisterTaskDefinition where     type Sv DeregisterTaskDefinition = ECS     type Rs DeregisterTaskDefinition = DeregisterTaskDefinitionResponse      request  = post "DeregisterTaskDefinition"-    response = xmlResponse+    response = jsonResponse -instance FromXML DeregisterTaskDefinitionResponse where-    parseXML = withElement "DeregisterTaskDefinitionResult" $ \x -> DeregisterTaskDefinitionResponse-        <$> x .@? "taskDefinition"+instance FromJSON DeregisterTaskDefinitionResponse where+    parseJSON = withObject "DeregisterTaskDefinitionResponse" $ \o -> DeregisterTaskDefinitionResponse+        <$> o .:? "taskDefinition"
gen/Network/AWS/ECS/DescribeClusters.hs view
@@ -44,12 +44,12 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts  newtype DescribeClusters = DescribeClusters-    { _dcClusters :: List "member" Text+    { _dcClusters :: List "clusters" Text     } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)  instance GHC.Exts.IsList DescribeClusters where@@ -76,8 +76,8 @@ dcClusters = lens _dcClusters (\s a -> s { _dcClusters = a }) . _List  data DescribeClustersResponse = DescribeClustersResponse-    { _dcrClusters :: List "member" Cluster-    , _dcrFailures :: List "member" Failure+    { _dcrClusters :: List "clusters" Cluster+    , _dcrFailures :: List "failures" Failure     } deriving (Eq, Read, Show)  -- | 'DescribeClustersResponse' constructor.@@ -105,20 +105,23 @@     toPath = const "/"  instance ToQuery DescribeClusters where-    toQuery DescribeClusters{..} = mconcat-        [ "clusters" =? _dcClusters-        ]+    toQuery = const mempty  instance ToHeaders DescribeClusters +instance ToJSON DescribeClusters where+    toJSON DescribeClusters{..} = object+        [ "clusters" .= _dcClusters+        ]+ instance AWSRequest DescribeClusters where     type Sv DescribeClusters = ECS     type Rs DescribeClusters = DescribeClustersResponse      request  = post "DescribeClusters"-    response = xmlResponse+    response = jsonResponse -instance FromXML DescribeClustersResponse where-    parseXML = withElement "DescribeClustersResult" $ \x -> DescribeClustersResponse-        <$> x .@? "clusters" .!@ mempty-        <*> x .@? "failures" .!@ mempty+instance FromJSON DescribeClustersResponse where+    parseJSON = withObject "DescribeClustersResponse" $ \o -> DescribeClustersResponse+        <$> o .:? "clusters" .!= mempty+        <*> o .:? "failures" .!= mempty
gen/Network/AWS/ECS/DescribeContainerInstances.hs view
@@ -46,13 +46,13 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts  data DescribeContainerInstances = DescribeContainerInstances     { _dciCluster            :: Maybe Text-    , _dciContainerInstances :: List "member" Text+    , _dciContainerInstances :: List "containerInstances" Text     } deriving (Eq, Ord, Read, Show)  -- | 'DescribeContainerInstances' constructor.@@ -83,8 +83,8 @@         . _List  data DescribeContainerInstancesResponse = DescribeContainerInstancesResponse-    { _dcirContainerInstances :: List "member" ContainerInstance-    , _dcirFailures           :: List "member" Failure+    { _dcirContainerInstances :: List "containerInstances" ContainerInstance+    , _dcirFailures           :: List "failures" Failure     } deriving (Eq, Read, Show)  -- | 'DescribeContainerInstancesResponse' constructor.@@ -114,21 +114,24 @@     toPath = const "/"  instance ToQuery DescribeContainerInstances where-    toQuery DescribeContainerInstances{..} = mconcat-        [ "cluster"            =? _dciCluster-        , "containerInstances" =? _dciContainerInstances-        ]+    toQuery = const mempty  instance ToHeaders DescribeContainerInstances +instance ToJSON DescribeContainerInstances where+    toJSON DescribeContainerInstances{..} = object+        [ "cluster"            .= _dciCluster+        , "containerInstances" .= _dciContainerInstances+        ]+ instance AWSRequest DescribeContainerInstances where     type Sv DescribeContainerInstances = ECS     type Rs DescribeContainerInstances = DescribeContainerInstancesResponse      request  = post "DescribeContainerInstances"-    response = xmlResponse+    response = jsonResponse -instance FromXML DescribeContainerInstancesResponse where-    parseXML = withElement "DescribeContainerInstancesResult" $ \x -> DescribeContainerInstancesResponse-        <$> x .@? "containerInstances" .!@ mempty-        <*> x .@? "failures" .!@ mempty+instance FromJSON DescribeContainerInstancesResponse where+    parseJSON = withObject "DescribeContainerInstancesResponse" $ \o -> DescribeContainerInstancesResponse+        <$> o .:? "containerInstances" .!= mempty+        <*> o .:? "failures" .!= mempty
gen/Network/AWS/ECS/DescribeTaskDefinition.hs view
@@ -22,7 +22,9 @@ -- -- Derived from AWS service descriptions, licensed under Apache 2.0. --- | Describes a task definition.+-- | Describes a task definition. You can specify a 'family' and 'revision' to find+-- information on a specific task definition, or you can simply specify the+-- family to find the latest revision in that family. -- -- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskDefinition.html> module Network.AWS.ECS.DescribeTaskDefinition@@ -43,7 +45,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -63,8 +65,9 @@     { _dtdTaskDefinition = p1     } --- | The 'family' and 'revision' ('family:revision') or full Amazon Resource Name (ARN)--- of the task definition that you want to describe.+-- | The 'family' for the latest revision, 'family' and 'revision' ('family:revision') for+-- a specific revision in the family, 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 })@@ -93,19 +96,22 @@     toPath = const "/"  instance ToQuery DescribeTaskDefinition where-    toQuery DescribeTaskDefinition{..} = mconcat-        [ "taskDefinition" =? _dtdTaskDefinition-        ]+    toQuery = const mempty  instance ToHeaders DescribeTaskDefinition +instance ToJSON DescribeTaskDefinition where+    toJSON DescribeTaskDefinition{..} = object+        [ "taskDefinition" .= _dtdTaskDefinition+        ]+ instance AWSRequest DescribeTaskDefinition where     type Sv DescribeTaskDefinition = ECS     type Rs DescribeTaskDefinition = DescribeTaskDefinitionResponse      request  = post "DescribeTaskDefinition"-    response = xmlResponse+    response = jsonResponse -instance FromXML DescribeTaskDefinitionResponse where-    parseXML = withElement "DescribeTaskDefinitionResult" $ \x -> DescribeTaskDefinitionResponse-        <$> x .@? "taskDefinition"+instance FromJSON DescribeTaskDefinitionResponse where+    parseJSON = withObject "DescribeTaskDefinitionResponse" $ \o -> DescribeTaskDefinitionResponse+        <$> o .:? "taskDefinition"
gen/Network/AWS/ECS/DescribeTasks.hs view
@@ -45,13 +45,13 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts  data DescribeTasks = DescribeTasks     { _dtCluster :: Maybe Text-    , _dtTasks   :: List "member" Text+    , _dtTasks   :: List "tasks" Text     } deriving (Eq, Ord, Read, Show)  -- | 'DescribeTasks' constructor.@@ -80,8 +80,8 @@ dtTasks = lens _dtTasks (\s a -> s { _dtTasks = a }) . _List  data DescribeTasksResponse = DescribeTasksResponse-    { _dtrFailures :: List "member" Failure-    , _dtrTasks    :: List "member" Task+    { _dtrFailures :: List "failures" Failure+    , _dtrTasks    :: List "tasks" Task     } deriving (Eq, Read, Show)  -- | 'DescribeTasksResponse' constructor.@@ -109,21 +109,24 @@     toPath = const "/"  instance ToQuery DescribeTasks where-    toQuery DescribeTasks{..} = mconcat-        [ "cluster" =? _dtCluster-        , "tasks"   =? _dtTasks-        ]+    toQuery = const mempty  instance ToHeaders DescribeTasks +instance ToJSON DescribeTasks where+    toJSON DescribeTasks{..} = object+        [ "cluster" .= _dtCluster+        , "tasks"   .= _dtTasks+        ]+ instance AWSRequest DescribeTasks where     type Sv DescribeTasks = ECS     type Rs DescribeTasks = DescribeTasksResponse      request  = post "DescribeTasks"-    response = xmlResponse+    response = jsonResponse -instance FromXML DescribeTasksResponse where-    parseXML = withElement "DescribeTasksResult" $ \x -> DescribeTasksResponse-        <$> x .@? "failures" .!@ mempty-        <*> x .@? "tasks" .!@ mempty+instance FromJSON DescribeTasksResponse where+    parseJSON = withObject "DescribeTasksResponse" $ \o -> DescribeTasksResponse+        <$> o .:? "failures" .!= mempty+        <*> o .:? "tasks" .!= mempty
gen/Network/AWS/ECS/DiscoverPollEndpoint.hs view
@@ -36,6 +36,7 @@     -- ** Request constructor     , discoverPollEndpoint     -- ** Request lenses+    , dpeCluster     , dpeContainerInstance      -- * Response@@ -47,25 +48,33 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts -newtype DiscoverPollEndpoint = DiscoverPollEndpoint-    { _dpeContainerInstance :: Maybe Text-    } deriving (Eq, Ord, Read, Show, Monoid)+data DiscoverPollEndpoint = DiscoverPollEndpoint+    { _dpeCluster           :: Maybe Text+    , _dpeContainerInstance :: Maybe Text+    } deriving (Eq, Ord, Read, Show)  -- | 'DiscoverPollEndpoint' constructor. -- -- The fields accessible through corresponding lenses are: --+-- * 'dpeCluster' @::@ 'Maybe' 'Text'+-- -- * 'dpeContainerInstance' @::@ 'Maybe' 'Text' -- discoverPollEndpoint :: DiscoverPollEndpoint discoverPollEndpoint = DiscoverPollEndpoint     { _dpeContainerInstance = Nothing+    , _dpeCluster           = Nothing     } +-- | The cluster that the container instance belongs to.+dpeCluster :: Lens' DiscoverPollEndpoint (Maybe Text)+dpeCluster = lens _dpeCluster (\s a -> s { _dpeCluster = a })+ -- | 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@@ -99,19 +108,23 @@     toPath = const "/"  instance ToQuery DiscoverPollEndpoint where-    toQuery DiscoverPollEndpoint{..} = mconcat-        [ "containerInstance" =? _dpeContainerInstance-        ]+    toQuery = const mempty  instance ToHeaders DiscoverPollEndpoint +instance ToJSON DiscoverPollEndpoint where+    toJSON DiscoverPollEndpoint{..} = object+        [ "containerInstance" .= _dpeContainerInstance+        , "cluster"           .= _dpeCluster+        ]+ instance AWSRequest DiscoverPollEndpoint where     type Sv DiscoverPollEndpoint = ECS     type Rs DiscoverPollEndpoint = DiscoverPollEndpointResponse      request  = post "DiscoverPollEndpoint"-    response = xmlResponse+    response = jsonResponse -instance FromXML DiscoverPollEndpointResponse where-    parseXML = withElement "DiscoverPollEndpointResult" $ \x -> DiscoverPollEndpointResponse-        <$> x .@? "endpoint"+instance FromJSON DiscoverPollEndpointResponse where+    parseJSON = withObject "DiscoverPollEndpointResponse" $ \o -> DiscoverPollEndpointResponse+        <$> o .:? "endpoint"
gen/Network/AWS/ECS/ListClusters.hs view
@@ -45,7 +45,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -86,7 +86,7 @@ lcNextToken = lens _lcNextToken (\s a -> s { _lcNextToken = a })  data ListClustersResponse = ListClustersResponse-    { _lcrClusterArns :: List "member" Text+    { _lcrClusterArns :: List "clusterArns" Text     , _lcrNextToken   :: Maybe Text     } deriving (Eq, Ord, Read, Show) @@ -120,21 +120,24 @@     toPath = const "/"  instance ToQuery ListClusters where-    toQuery ListClusters{..} = mconcat-        [ "maxResults" =? _lcMaxResults-        , "nextToken"  =? _lcNextToken-        ]+    toQuery = const mempty  instance ToHeaders ListClusters +instance ToJSON ListClusters where+    toJSON ListClusters{..} = object+        [ "nextToken"  .= _lcNextToken+        , "maxResults" .= _lcMaxResults+        ]+ instance AWSRequest ListClusters where     type Sv ListClusters = ECS     type Rs ListClusters = ListClustersResponse      request  = post "ListClusters"-    response = xmlResponse+    response = jsonResponse -instance FromXML ListClustersResponse where-    parseXML = withElement "ListClustersResult" $ \x -> ListClustersResponse-        <$> x .@? "clusterArns" .!@ mempty-        <*> x .@? "nextToken"+instance FromJSON ListClustersResponse where+    parseJSON = withObject "ListClustersResponse" $ \o -> ListClustersResponse+        <$> o .:? "clusterArns" .!= mempty+        <*> o .:? "nextToken"
gen/Network/AWS/ECS/ListContainerInstances.hs view
@@ -46,7 +46,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -98,7 +98,7 @@ lciNextToken = lens _lciNextToken (\s a -> s { _lciNextToken = a })  data ListContainerInstancesResponse = ListContainerInstancesResponse-    { _lcirContainerInstanceArns :: List "member" Text+    { _lcirContainerInstanceArns :: List "containerInstanceArns" Text     , _lcirNextToken             :: Maybe Text     } deriving (Eq, Ord, Read, Show) @@ -135,22 +135,25 @@     toPath = const "/"  instance ToQuery ListContainerInstances where-    toQuery ListContainerInstances{..} = mconcat-        [ "cluster"    =? _lciCluster-        , "maxResults" =? _lciMaxResults-        , "nextToken"  =? _lciNextToken-        ]+    toQuery = const mempty  instance ToHeaders ListContainerInstances +instance ToJSON ListContainerInstances where+    toJSON ListContainerInstances{..} = object+        [ "cluster"    .= _lciCluster+        , "nextToken"  .= _lciNextToken+        , "maxResults" .= _lciMaxResults+        ]+ instance AWSRequest ListContainerInstances where     type Sv ListContainerInstances = ECS     type Rs ListContainerInstances = ListContainerInstancesResponse      request  = post "ListContainerInstances"-    response = xmlResponse+    response = jsonResponse -instance FromXML ListContainerInstancesResponse where-    parseXML = withElement "ListContainerInstancesResult" $ \x -> ListContainerInstancesResponse-        <$> x .@? "containerInstanceArns" .!@ mempty-        <*> x .@? "nextToken"+instance FromJSON ListContainerInstancesResponse where+    parseJSON = withObject "ListContainerInstancesResponse" $ \o -> ListContainerInstancesResponse+        <$> o .:? "containerInstanceArns" .!= mempty+        <*> o .:? "nextToken"
+ gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs view
@@ -0,0 +1,150 @@+{-# 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.ListTaskDefinitionFamilies+-- 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 definition families that are registered to your+-- account. You can filter the results with the 'familyPrefix' parameter.+--+-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitionFamilies.html>+module Network.AWS.ECS.ListTaskDefinitionFamilies+    (+    -- * Request+      ListTaskDefinitionFamilies+    -- ** Request constructor+    , listTaskDefinitionFamilies+    -- ** Request lenses+    , ltdfFamilyPrefix+    , ltdfMaxResults+    , ltdfNextToken++    -- * Response+    , ListTaskDefinitionFamiliesResponse+    -- ** Response constructor+    , listTaskDefinitionFamiliesResponse+    -- ** Response lenses+    , ltdfrFamilies+    , ltdfrNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.ECS.Types+import qualified GHC.Exts++data ListTaskDefinitionFamilies = ListTaskDefinitionFamilies+    { _ltdfFamilyPrefix :: Maybe Text+    , _ltdfMaxResults   :: Maybe Int+    , _ltdfNextToken    :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListTaskDefinitionFamilies' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ltdfFamilyPrefix' @::@ 'Maybe' 'Text'+--+-- * 'ltdfMaxResults' @::@ 'Maybe' 'Int'+--+-- * 'ltdfNextToken' @::@ 'Maybe' 'Text'+--+listTaskDefinitionFamilies :: ListTaskDefinitionFamilies+listTaskDefinitionFamilies = ListTaskDefinitionFamilies+    { _ltdfFamilyPrefix = Nothing+    , _ltdfNextToken    = Nothing+    , _ltdfMaxResults   = Nothing+    }++-- | The 'familyPrefix' is a string that is used to filter the results of 'ListTaskDefinitionFamilies'. If you specify a 'familyPrefix', only task definition family names that begin+-- with the 'familyPrefix' string are returned.+ltdfFamilyPrefix :: Lens' ListTaskDefinitionFamilies (Maybe Text)+ltdfFamilyPrefix = lens _ltdfFamilyPrefix (\s a -> s { _ltdfFamilyPrefix = a })++-- | The maximum number of task definition family results returned by 'ListTaskDefinitionFamilies' 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 'ListTaskDefinitionFamilies' request with the returned 'nextToken' value.+-- This value can be between 1 and 100. If this parameter is not used, then 'ListTaskDefinitionFamilies' returns up to 100 results and a 'nextToken' value if applicable.+ltdfMaxResults :: Lens' ListTaskDefinitionFamilies (Maybe Int)+ltdfMaxResults = lens _ltdfMaxResults (\s a -> s { _ltdfMaxResults = a })++-- | The 'nextToken' value returned from a previous paginated 'ListTaskDefinitionFamilies' 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.+ltdfNextToken :: Lens' ListTaskDefinitionFamilies (Maybe Text)+ltdfNextToken = lens _ltdfNextToken (\s a -> s { _ltdfNextToken = a })++data ListTaskDefinitionFamiliesResponse = ListTaskDefinitionFamiliesResponse+    { _ltdfrFamilies  :: List "families" Text+    , _ltdfrNextToken :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'ListTaskDefinitionFamiliesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ltdfrFamilies' @::@ ['Text']+--+-- * 'ltdfrNextToken' @::@ 'Maybe' 'Text'+--+listTaskDefinitionFamiliesResponse :: ListTaskDefinitionFamiliesResponse+listTaskDefinitionFamiliesResponse = ListTaskDefinitionFamiliesResponse+    { _ltdfrFamilies  = mempty+    , _ltdfrNextToken = Nothing+    }++-- | The list of task definition family names that match the 'ListTaskDefinitionFamilies' request.+ltdfrFamilies :: Lens' ListTaskDefinitionFamiliesResponse [Text]+ltdfrFamilies = lens _ltdfrFamilies (\s a -> s { _ltdfrFamilies = a }) . _List++-- | The 'nextToken' value to include in a future 'ListTaskDefinitionFamilies'+-- request. When the results of a 'ListTaskDefinitionFamilies' 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.+ltdfrNextToken :: Lens' ListTaskDefinitionFamiliesResponse (Maybe Text)+ltdfrNextToken = lens _ltdfrNextToken (\s a -> s { _ltdfrNextToken = a })++instance ToPath ListTaskDefinitionFamilies where+    toPath = const "/"++instance ToQuery ListTaskDefinitionFamilies where+    toQuery = const mempty++instance ToHeaders ListTaskDefinitionFamilies++instance ToJSON ListTaskDefinitionFamilies where+    toJSON ListTaskDefinitionFamilies{..} = object+        [ "familyPrefix" .= _ltdfFamilyPrefix+        , "nextToken"    .= _ltdfNextToken+        , "maxResults"   .= _ltdfMaxResults+        ]++instance AWSRequest ListTaskDefinitionFamilies where+    type Sv ListTaskDefinitionFamilies = ECS+    type Rs ListTaskDefinitionFamilies = ListTaskDefinitionFamiliesResponse++    request  = post "ListTaskDefinitionFamilies"+    response = jsonResponse++instance FromJSON ListTaskDefinitionFamiliesResponse where+    parseJSON = withObject "ListTaskDefinitionFamiliesResponse" $ \o -> ListTaskDefinitionFamiliesResponse+        <$> o .:? "families" .!= mempty+        <*> o .:? "nextToken"
gen/Network/AWS/ECS/ListTaskDefinitions.hs view
@@ -47,7 +47,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -74,9 +74,9 @@     , _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.+-- | The full family name that you want to filter the 'ListTaskDefinitions' results+-- with. Specifying a 'familyPrefix' will limit the listed task definitions to+-- task definition revisions that belong to that family. ltdFamilyPrefix :: Lens' ListTaskDefinitions (Maybe Text) ltdFamilyPrefix = lens _ltdFamilyPrefix (\s a -> s { _ltdFamilyPrefix = a }) @@ -99,7 +99,7 @@  data ListTaskDefinitionsResponse = ListTaskDefinitionsResponse     { _ltdrNextToken          :: Maybe Text-    , _ltdrTaskDefinitionArns :: List "member" Text+    , _ltdrTaskDefinitionArns :: List "taskDefinitionArns" Text     } deriving (Eq, Ord, Read, Show)  -- | 'ListTaskDefinitionsResponse' constructor.@@ -133,22 +133,25 @@     toPath = const "/"  instance ToQuery ListTaskDefinitions where-    toQuery ListTaskDefinitions{..} = mconcat-        [ "familyPrefix" =? _ltdFamilyPrefix-        , "maxResults"   =? _ltdMaxResults-        , "nextToken"    =? _ltdNextToken-        ]+    toQuery = const mempty  instance ToHeaders ListTaskDefinitions +instance ToJSON ListTaskDefinitions where+    toJSON ListTaskDefinitions{..} = object+        [ "familyPrefix" .= _ltdFamilyPrefix+        , "nextToken"    .= _ltdNextToken+        , "maxResults"   .= _ltdMaxResults+        ]+ instance AWSRequest ListTaskDefinitions where     type Sv ListTaskDefinitions = ECS     type Rs ListTaskDefinitions = ListTaskDefinitionsResponse      request  = post "ListTaskDefinitions"-    response = xmlResponse+    response = jsonResponse -instance FromXML ListTaskDefinitionsResponse where-    parseXML = withElement "ListTaskDefinitionsResult" $ \x -> ListTaskDefinitionsResponse-        <$> x .@? "nextToken"-        <*> x .@? "taskDefinitionArns" .!@ mempty+instance FromJSON ListTaskDefinitionsResponse where+    parseJSON = withObject "ListTaskDefinitionsResponse" $ \o -> ListTaskDefinitionsResponse+        <$> o .:? "nextToken"+        <*> o .:? "taskDefinitionArns" .!= mempty
gen/Network/AWS/ECS/ListTasks.hs view
@@ -49,7 +49,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -123,7 +123,7 @@  data ListTasksResponse = ListTasksResponse     { _ltrNextToken :: Maybe Text-    , _ltrTaskArns  :: List "member" Text+    , _ltrTaskArns  :: List "taskArns" Text     } deriving (Eq, Ord, Read, Show)  -- | 'ListTasksResponse' constructor.@@ -155,24 +155,27 @@     toPath = const "/"  instance ToQuery ListTasks where-    toQuery ListTasks{..} = mconcat-        [ "cluster"           =? _ltCluster-        , "containerInstance" =? _ltContainerInstance-        , "family"            =? _ltFamily-        , "maxResults"        =? _ltMaxResults-        , "nextToken"         =? _ltNextToken-        ]+    toQuery = const mempty  instance ToHeaders ListTasks +instance ToJSON ListTasks where+    toJSON ListTasks{..} = object+        [ "cluster"           .= _ltCluster+        , "containerInstance" .= _ltContainerInstance+        , "family"            .= _ltFamily+        , "nextToken"         .= _ltNextToken+        , "maxResults"        .= _ltMaxResults+        ]+ instance AWSRequest ListTasks where     type Sv ListTasks = ECS     type Rs ListTasks = ListTasksResponse      request  = post "ListTasks"-    response = xmlResponse+    response = jsonResponse -instance FromXML ListTasksResponse where-    parseXML = withElement "ListTasksResult" $ \x -> ListTasksResponse-        <$> x .@? "nextToken"-        <*> x .@? "taskArns" .!@ mempty+instance FromJSON ListTasksResponse where+    parseJSON = withObject "ListTasksResponse" $ \o -> ListTasksResponse+        <$> o .:? "nextToken"+        <*> o .:? "taskArns" .!= mempty
gen/Network/AWS/ECS/RegisterContainerInstance.hs view
@@ -50,7 +50,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -58,7 +58,7 @@     { _rciCluster                           :: Maybe Text     , _rciInstanceIdentityDocument          :: Maybe Text     , _rciInstanceIdentityDocumentSignature :: Maybe Text-    , _rciTotalResources                    :: List "member" Resource+    , _rciTotalResources                    :: List "totalResources" Resource     } deriving (Eq, Read, Show)  -- | 'RegisterContainerInstance' constructor.@@ -125,22 +125,25 @@     toPath = const "/"  instance ToQuery RegisterContainerInstance where-    toQuery RegisterContainerInstance{..} = mconcat-        [ "cluster"                           =? _rciCluster-        , "instanceIdentityDocument"          =? _rciInstanceIdentityDocument-        , "instanceIdentityDocumentSignature" =? _rciInstanceIdentityDocumentSignature-        , "totalResources"                    =? _rciTotalResources-        ]+    toQuery = const mempty  instance ToHeaders RegisterContainerInstance +instance ToJSON RegisterContainerInstance where+    toJSON RegisterContainerInstance{..} = object+        [ "cluster"                           .= _rciCluster+        , "instanceIdentityDocument"          .= _rciInstanceIdentityDocument+        , "instanceIdentityDocumentSignature" .= _rciInstanceIdentityDocumentSignature+        , "totalResources"                    .= _rciTotalResources+        ]+ instance AWSRequest RegisterContainerInstance where     type Sv RegisterContainerInstance = ECS     type Rs RegisterContainerInstance = RegisterContainerInstanceResponse      request  = post "RegisterContainerInstance"-    response = xmlResponse+    response = jsonResponse -instance FromXML RegisterContainerInstanceResponse where-    parseXML = withElement "RegisterContainerInstanceResult" $ \x -> RegisterContainerInstanceResponse-        <$> x .@? "containerInstance"+instance FromJSON RegisterContainerInstanceResponse where+    parseJSON = withObject "RegisterContainerInstanceResponse" $ \o -> RegisterContainerInstanceResponse+        <$> o .:? "containerInstance"
gen/Network/AWS/ECS/RegisterTaskDefinition.hs view
@@ -22,7 +22,9 @@ -- -- Derived from AWS service descriptions, licensed under Apache 2.0. --- | Registers a new task definition from the supplied 'family' and 'containerDefinitions'.+-- | Registers a new task definition from the supplied 'family' and 'containerDefinitions'. Optionally, you can add data volumes to your containers with the 'volumes'+-- parameter. For more information on task definition parameters and defaults,+-- see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html Amazon ECS Task Definitions> in the /Amazon EC2 Container Service DeveloperGuide/. -- -- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html> module Network.AWS.ECS.RegisterTaskDefinition@@ -34,6 +36,7 @@     -- ** Request lenses     , rtdContainerDefinitions     , rtdFamily+    , rtdVolumes      -- * Response     , RegisterTaskDefinitionResponse@@ -44,13 +47,14 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts  data RegisterTaskDefinition = RegisterTaskDefinition-    { _rtdContainerDefinitions :: List "member" ContainerDefinition+    { _rtdContainerDefinitions :: List "containerDefinitions" ContainerDefinition     , _rtdFamily               :: Text+    , _rtdVolumes              :: List "volumes" Volume     } deriving (Eq, Read, Show)  -- | 'RegisterTaskDefinition' constructor.@@ -61,11 +65,14 @@ -- -- * 'rtdFamily' @::@ 'Text' --+-- * 'rtdVolumes' @::@ ['Volume']+-- registerTaskDefinition :: Text -- ^ 'rtdFamily'                        -> RegisterTaskDefinition registerTaskDefinition p1 = RegisterTaskDefinition     { _rtdFamily               = p1     , _rtdContainerDefinitions = mempty+    , _rtdVolumes              = mempty     }  -- | A list of container definitions in JSON format that describe the different@@ -75,12 +82,17 @@     lens _rtdContainerDefinitions (\s a -> s { _rtdContainerDefinitions = a })         . _List --- | You can specify a 'family' for a task definition, which allows you to track+-- | You must 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 }) +-- | A list of volume definitions in JSON format that containers in your task may+-- use.+rtdVolumes :: Lens' RegisterTaskDefinition [Volume]+rtdVolumes = lens _rtdVolumes (\s a -> s { _rtdVolumes = a }) . _List+ newtype RegisterTaskDefinitionResponse = RegisterTaskDefinitionResponse     { _rtdrTaskDefinition :: Maybe TaskDefinition     } deriving (Eq, Read, Show)@@ -104,20 +116,24 @@     toPath = const "/"  instance ToQuery RegisterTaskDefinition where-    toQuery RegisterTaskDefinition{..} = mconcat-        [ "containerDefinitions" =? _rtdContainerDefinitions-        , "family"               =? _rtdFamily-        ]+    toQuery = const mempty  instance ToHeaders RegisterTaskDefinition +instance ToJSON RegisterTaskDefinition where+    toJSON RegisterTaskDefinition{..} = object+        [ "family"               .= _rtdFamily+        , "containerDefinitions" .= _rtdContainerDefinitions+        , "volumes"              .= _rtdVolumes+        ]+ instance AWSRequest RegisterTaskDefinition where     type Sv RegisterTaskDefinition = ECS     type Rs RegisterTaskDefinition = RegisterTaskDefinitionResponse      request  = post "RegisterTaskDefinition"-    response = xmlResponse+    response = jsonResponse -instance FromXML RegisterTaskDefinitionResponse where-    parseXML = withElement "RegisterTaskDefinitionResult" $ \x -> RegisterTaskDefinitionResponse-        <$> x .@? "taskDefinition"+instance FromJSON RegisterTaskDefinitionResponse where+    parseJSON = withObject "RegisterTaskDefinitionResponse" $ \o -> RegisterTaskDefinitionResponse+        <$> o .:? "taskDefinition"
gen/Network/AWS/ECS/RunTask.hs view
@@ -49,7 +49,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -101,8 +101,8 @@ rtTaskDefinition = lens _rtTaskDefinition (\s a -> s { _rtTaskDefinition = a })  data RunTaskResponse = RunTaskResponse-    { _rtrFailures :: List "member" Failure-    , _rtrTasks    :: List "member" Task+    { _rtrFailures :: List "failures" Failure+    , _rtrTasks    :: List "tasks" Task     } deriving (Eq, Read, Show)  -- | 'RunTaskResponse' constructor.@@ -132,23 +132,26 @@     toPath = const "/"  instance ToQuery RunTask where-    toQuery RunTask{..} = mconcat-        [ "cluster"        =? _rtCluster-        , "count"          =? _rtCount-        , "overrides"      =? _rtOverrides-        , "taskDefinition" =? _rtTaskDefinition-        ]+    toQuery = const mempty  instance ToHeaders RunTask +instance ToJSON RunTask where+    toJSON RunTask{..} = object+        [ "cluster"        .= _rtCluster+        , "taskDefinition" .= _rtTaskDefinition+        , "overrides"      .= _rtOverrides+        , "count"          .= _rtCount+        ]+ instance AWSRequest RunTask where     type Sv RunTask = ECS     type Rs RunTask = RunTaskResponse      request  = post "RunTask"-    response = xmlResponse+    response = jsonResponse -instance FromXML RunTaskResponse where-    parseXML = withElement "RunTaskResult" $ \x -> RunTaskResponse-        <$> x .@? "failures" .!@ mempty-        <*> x .@? "tasks" .!@ mempty+instance FromJSON RunTaskResponse where+    parseJSON = withObject "RunTaskResponse" $ \o -> RunTaskResponse+        <$> o .:? "failures" .!= mempty+        <*> o .:? "tasks" .!= mempty
gen/Network/AWS/ECS/StartTask.hs view
@@ -49,13 +49,13 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts  data StartTask = StartTask     { _st1Cluster            :: Maybe Text-    , _st1ContainerInstances :: List "member" Text+    , _st1ContainerInstances :: List "containerInstances" Text     , _st1Overrides          :: Maybe TaskOverride     , _st1TaskDefinition     :: Text     } deriving (Eq, Read, Show)@@ -104,8 +104,8 @@     lens _st1TaskDefinition (\s a -> s { _st1TaskDefinition = a })  data StartTaskResponse = StartTaskResponse-    { _strFailures :: List "member" Failure-    , _strTasks    :: List "member" Task+    { _strFailures :: List "failures" Failure+    , _strTasks    :: List "tasks" Task     } deriving (Eq, Read, Show)  -- | 'StartTaskResponse' constructor.@@ -135,23 +135,26 @@     toPath = const "/"  instance ToQuery StartTask where-    toQuery StartTask{..} = mconcat-        [ "cluster"            =? _st1Cluster-        , "containerInstances" =? _st1ContainerInstances-        , "overrides"          =? _st1Overrides-        , "taskDefinition"     =? _st1TaskDefinition-        ]+    toQuery = const mempty  instance ToHeaders StartTask +instance ToJSON StartTask where+    toJSON StartTask{..} = object+        [ "cluster"            .= _st1Cluster+        , "taskDefinition"     .= _st1TaskDefinition+        , "overrides"          .= _st1Overrides+        , "containerInstances" .= _st1ContainerInstances+        ]+ instance AWSRequest StartTask where     type Sv StartTask = ECS     type Rs StartTask = StartTaskResponse      request  = post "StartTask"-    response = xmlResponse+    response = jsonResponse -instance FromXML StartTaskResponse where-    parseXML = withElement "StartTaskResult" $ \x -> StartTaskResponse-        <$> x .@? "failures" .!@ mempty-        <*> x .@? "tasks" .!@ mempty+instance FromJSON StartTaskResponse where+    parseJSON = withObject "StartTaskResponse" $ \o -> StartTaskResponse+        <$> o .:? "failures" .!= mempty+        <*> o .:? "tasks" .!= mempty
gen/Network/AWS/ECS/StopTask.hs view
@@ -44,7 +44,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -101,20 +101,23 @@     toPath = const "/"  instance ToQuery StopTask where-    toQuery StopTask{..} = mconcat-        [ "cluster" =? _stCluster-        , "task"    =? _stTask-        ]+    toQuery = const mempty  instance ToHeaders StopTask +instance ToJSON StopTask where+    toJSON StopTask{..} = object+        [ "cluster" .= _stCluster+        , "task"    .= _stTask+        ]+ instance AWSRequest StopTask where     type Sv StopTask = ECS     type Rs StopTask = StopTaskResponse      request  = post "StopTask"-    response = xmlResponse+    response = jsonResponse -instance FromXML StopTaskResponse where-    parseXML = withElement "StopTaskResult" $ \x -> StopTaskResponse-        <$> x .@? "task"+instance FromJSON StopTaskResponse where+    parseJSON = withObject "StopTaskResponse" $ \o -> StopTaskResponse+        <$> o .:? "task"
gen/Network/AWS/ECS/SubmitContainerStateChange.hs view
@@ -52,7 +52,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -60,7 +60,7 @@     { _scscCluster         :: Maybe Text     , _scscContainerName   :: Maybe Text     , _scscExitCode        :: Maybe Int-    , _scscNetworkBindings :: List "member" NetworkBinding+    , _scscNetworkBindings :: List "networkBindings" NetworkBinding     , _scscReason          :: Maybe Text     , _scscStatus          :: Maybe Text     , _scscTask            :: Maybe Text@@ -152,25 +152,28 @@     toPath = const "/"  instance ToQuery SubmitContainerStateChange where-    toQuery SubmitContainerStateChange{..} = mconcat-        [ "cluster"         =? _scscCluster-        , "containerName"   =? _scscContainerName-        , "exitCode"        =? _scscExitCode-        , "networkBindings" =? _scscNetworkBindings-        , "reason"          =? _scscReason-        , "status"          =? _scscStatus-        , "task"            =? _scscTask-        ]+    toQuery = const mempty  instance ToHeaders SubmitContainerStateChange +instance ToJSON SubmitContainerStateChange where+    toJSON SubmitContainerStateChange{..} = object+        [ "cluster"         .= _scscCluster+        , "task"            .= _scscTask+        , "containerName"   .= _scscContainerName+        , "status"          .= _scscStatus+        , "exitCode"        .= _scscExitCode+        , "reason"          .= _scscReason+        , "networkBindings" .= _scscNetworkBindings+        ]+ instance AWSRequest SubmitContainerStateChange where     type Sv SubmitContainerStateChange = ECS     type Rs SubmitContainerStateChange = SubmitContainerStateChangeResponse      request  = post "SubmitContainerStateChange"-    response = xmlResponse+    response = jsonResponse -instance FromXML SubmitContainerStateChangeResponse where-    parseXML = withElement "SubmitContainerStateChangeResult" $ \x -> SubmitContainerStateChangeResponse-        <$> x .@? "acknowledgment"+instance FromJSON SubmitContainerStateChangeResponse where+    parseJSON = withObject "SubmitContainerStateChangeResponse" $ \o -> SubmitContainerStateChangeResponse+        <$> o .:? "acknowledgment"
gen/Network/AWS/ECS/SubmitTaskStateChange.hs view
@@ -49,7 +49,7 @@     ) where  import Network.AWS.Prelude-import Network.AWS.Request.Query+import Network.AWS.Request.JSON import Network.AWS.ECS.Types import qualified GHC.Exts @@ -122,22 +122,25 @@     toPath = const "/"  instance ToQuery SubmitTaskStateChange where-    toQuery SubmitTaskStateChange{..} = mconcat-        [ "cluster" =? _stscCluster-        , "reason"  =? _stscReason-        , "status"  =? _stscStatus-        , "task"    =? _stscTask-        ]+    toQuery = const mempty  instance ToHeaders SubmitTaskStateChange +instance ToJSON SubmitTaskStateChange where+    toJSON SubmitTaskStateChange{..} = object+        [ "cluster" .= _stscCluster+        , "task"    .= _stscTask+        , "status"  .= _stscStatus+        , "reason"  .= _stscReason+        ]+ instance AWSRequest SubmitTaskStateChange where     type Sv SubmitTaskStateChange = ECS     type Rs SubmitTaskStateChange = SubmitTaskStateChangeResponse      request  = post "SubmitTaskStateChange"-    response = xmlResponse+    response = jsonResponse -instance FromXML SubmitTaskStateChangeResponse where-    parseXML = withElement "SubmitTaskStateChangeResult" $ \x -> SubmitTaskStateChangeResponse-        <$> x .@? "acknowledgment"+instance FromJSON SubmitTaskStateChangeResponse where+    parseJSON = withObject "SubmitTaskStateChangeResponse" $ \o -> SubmitTaskStateChangeResponse+        <$> o .:? "acknowledgment"
gen/Network/AWS/ECS/Types.hs view
@@ -28,9 +28,7 @@     -- * Service       ECS     -- ** Error-    , RESTError-    -- ** XML-    , ns+    , JSONError      -- * NetworkBinding     , NetworkBinding@@ -46,6 +44,12 @@     , cClusterName     , cStatus +    -- * Volume+    , Volume+    , volume+    , vHost+    , vName+     -- * ContainerOverride     , ContainerOverride     , containerOverride@@ -58,11 +62,22 @@     , kvpName     , kvpValue +    -- * VolumeFrom+    , VolumeFrom+    , volumeFrom+    , vfReadOnly+    , vfSourceContainer+     -- * TaskOverride     , TaskOverride     , taskOverride     , toContainerOverrides +    -- * HostVolumeProperties+    , HostVolumeProperties+    , hostVolumeProperties+    , hvpSourcePath+     -- * Container     , Container     , container@@ -85,8 +100,10 @@     , cdImage     , cdLinks     , cdMemory+    , cdMountPoints     , cdName     , cdPortMappings+    , cdVolumesFrom      -- * Resource     , Resource@@ -123,6 +140,7 @@     , tdFamily     , tdRevision     , tdTaskDefinitionArn+    , tdVolumes      -- * Failure     , Failure@@ -139,6 +157,13 @@     , ciRegisteredResources     , ciRemainingResources     , ciStatus++    -- * MountPoint+    , MountPoint+    , mountPoint+    , mpContainerPath+    , mpReadOnly+    , mpSourceVolume     ) where  import Network.AWS.Prelude@@ -150,7 +175,7 @@  instance AWSService ECS where     type Sg ECS = V4-    type Er ECS = RESTError+    type Er ECS = JSONError      service = service'       where@@ -159,15 +184,15 @@             { _svcAbbrev       = "ECS"             , _svcPrefix       = "ecs"             , _svcVersion      = "2014-11-13"-            , _svcTargetPrefix = Nothing-            , _svcJSONVersion  = Nothing+            , _svcTargetPrefix = Just "AmazonEC2ContainerServiceV20141113"+            , _svcJSONVersion  = Just "1.1"             , _svcHandle       = handle             , _svcRetry        = retry             }          handle :: Status-               -> Maybe (LazyByteString -> ServiceError RESTError)-        handle = restError statusSuccess service'+               -> Maybe (LazyByteString -> ServiceError JSONError)+        handle = jsonError statusSuccess service'          retry :: Retry ECS         retry = Exponential@@ -178,7 +203,7 @@             }          check :: Status-              -> RESTError+              -> JSONError               -> Bool         check (statusCode -> s) (awsErrorCode -> e)             | s == 500  = True -- General Server Error@@ -186,10 +211,6 @@             | 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@@ -217,25 +238,25 @@ 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.+-- | The port number on the container that is 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.+-- | The port number on the host that is 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 FromJSON NetworkBinding where+    parseJSON = withObject "NetworkBinding" $ \o -> NetworkBinding+        <$> o .:? "bindIP"+        <*> o .:? "containerPort"+        <*> o .:? "hostPort" -instance ToQuery NetworkBinding where-    toQuery NetworkBinding{..} = mconcat-        [ "bindIP"        =? _nbBindIP-        , "containerPort" =? _nbContainerPort-        , "hostPort"      =? _nbHostPort+instance ToJSON NetworkBinding where+    toJSON NetworkBinding{..} = object+        [ "bindIP"        .= _nbBindIP+        , "containerPort" .= _nbContainerPort+        , "hostPort"      .= _nbHostPort         ]  data Cluster = Cluster@@ -278,21 +299,62 @@ 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 FromJSON Cluster where+    parseJSON = withObject "Cluster" $ \o -> Cluster+        <$> o .:? "clusterArn"+        <*> o .:? "clusterName"+        <*> o .:? "status" -instance ToQuery Cluster where-    toQuery Cluster{..} = mconcat-        [ "clusterArn"  =? _cClusterArn-        , "clusterName" =? _cClusterName-        , "status"      =? _cStatus+instance ToJSON Cluster where+    toJSON Cluster{..} = object+        [ "clusterArn"  .= _cClusterArn+        , "clusterName" .= _cClusterName+        , "status"      .= _cStatus         ] +data Volume = Volume+    { _vHost :: Maybe HostVolumeProperties+    , _vName :: Maybe Text+    } deriving (Eq, Read, Show)++-- | 'Volume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vHost' @::@ 'Maybe' 'HostVolumeProperties'+--+-- * 'vName' @::@ 'Maybe' 'Text'+--+volume :: Volume+volume = Volume+    { _vName = Nothing+    , _vHost = Nothing+    }++-- | The path on the host container instance that is presented to the containers+-- which access the volume. If this parameter is empty, then the Docker daemon+-- assigns a host path for you.+vHost :: Lens' Volume (Maybe HostVolumeProperties)+vHost = lens _vHost (\s a -> s { _vHost = a })++-- | The name of the volume. This name is referenced in the 'sourceVolume' parameter+-- of container definition 'mountPoints'.+vName :: Lens' Volume (Maybe Text)+vName = lens _vName (\s a -> s { _vName = a })++instance FromJSON Volume where+    parseJSON = withObject "Volume" $ \o -> Volume+        <$> o .:? "host"+        <*> o .:? "name"++instance ToJSON Volume where+    toJSON Volume{..} = object+        [ "name" .= _vName+        , "host" .= _vHost+        ]+ data ContainerOverride = ContainerOverride-    { _coCommand :: List "member" Text+    { _coCommand :: List "command" Text     , _coName    :: Maybe Text     } deriving (Eq, Ord, Read, Show) @@ -318,15 +380,15 @@ 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 FromJSON ContainerOverride where+    parseJSON = withObject "ContainerOverride" $ \o -> ContainerOverride+        <$> o .:? "command" .!= mempty+        <*> o .:? "name" -instance ToQuery ContainerOverride where-    toQuery ContainerOverride{..} = mconcat-        [ "command" =? _coCommand-        , "name"    =? _coName+instance ToJSON ContainerOverride where+    toJSON ContainerOverride{..} = object+        [ "name"    .= _coName+        , "command" .= _coCommand         ]  data KeyValuePair = KeyValuePair@@ -356,19 +418,60 @@ 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 FromJSON KeyValuePair where+    parseJSON = withObject "KeyValuePair" $ \o -> KeyValuePair+        <$> o .:? "name"+        <*> o .:? "value" -instance ToQuery KeyValuePair where-    toQuery KeyValuePair{..} = mconcat-        [ "name"  =? _kvpName-        , "value" =? _kvpValue+instance ToJSON KeyValuePair where+    toJSON KeyValuePair{..} = object+        [ "name"  .= _kvpName+        , "value" .= _kvpValue         ] +data VolumeFrom = VolumeFrom+    { _vfReadOnly        :: Maybe Bool+    , _vfSourceContainer :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'VolumeFrom' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vfReadOnly' @::@ 'Maybe' 'Bool'+--+-- * 'vfSourceContainer' @::@ 'Maybe' 'Text'+--+volumeFrom :: VolumeFrom+volumeFrom = VolumeFrom+    { _vfSourceContainer = Nothing+    , _vfReadOnly        = Nothing+    }++-- | If this value is 'true', the container has read-only access to the volume. If+-- this value is 'false', then the container can write to the volume. The default+-- value is 'false'.+vfReadOnly :: Lens' VolumeFrom (Maybe Bool)+vfReadOnly = lens _vfReadOnly (\s a -> s { _vfReadOnly = a })++-- | The name of the container to mount volumes from.+vfSourceContainer :: Lens' VolumeFrom (Maybe Text)+vfSourceContainer =+    lens _vfSourceContainer (\s a -> s { _vfSourceContainer = a })++instance FromJSON VolumeFrom where+    parseJSON = withObject "VolumeFrom" $ \o -> VolumeFrom+        <$> o .:? "readOnly"+        <*> o .:? "sourceContainer"++instance ToJSON VolumeFrom where+    toJSON VolumeFrom{..} = object+        [ "sourceContainer" .= _vfSourceContainer+        , "readOnly"        .= _vfReadOnly+        ]+ newtype TaskOverride = TaskOverride-    { _toContainerOverrides :: List "member" ContainerOverride+    { _toContainerOverrides :: List "containerOverrides" ContainerOverride     } deriving (Eq, Read, Show, Monoid, Semigroup)  instance GHC.Exts.IsList TaskOverride where@@ -394,21 +497,51 @@     lens _toContainerOverrides (\s a -> s { _toContainerOverrides = a })         . _List -instance FromXML TaskOverride where-    parseXML x = TaskOverride-        <$> x .@? "containerOverrides" .!@ mempty+instance FromJSON TaskOverride where+    parseJSON = withObject "TaskOverride" $ \o -> TaskOverride+        <$> o .:? "containerOverrides" .!= mempty -instance ToQuery TaskOverride where-    toQuery TaskOverride{..} = mconcat-        [ "containerOverrides" =? _toContainerOverrides+instance ToJSON TaskOverride where+    toJSON TaskOverride{..} = object+        [ "containerOverrides" .= _toContainerOverrides         ] +newtype HostVolumeProperties = HostVolumeProperties+    { _hvpSourcePath :: Maybe Text+    } deriving (Eq, Ord, Read, Show, Monoid)++-- | 'HostVolumeProperties' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'hvpSourcePath' @::@ 'Maybe' 'Text'+--+hostVolumeProperties :: HostVolumeProperties+hostVolumeProperties = HostVolumeProperties+    { _hvpSourcePath = Nothing+    }++-- | The path on the host container instance that is presented to the container.+-- If this parameter is empty, then the Docker daemon has assigned a host path+-- for you.+hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text)+hvpSourcePath = lens _hvpSourcePath (\s a -> s { _hvpSourcePath = a })++instance FromJSON HostVolumeProperties where+    parseJSON = withObject "HostVolumeProperties" $ \o -> HostVolumeProperties+        <$> o .:? "sourcePath"++instance ToJSON HostVolumeProperties where+    toJSON HostVolumeProperties{..} = object+        [ "sourcePath" .= _hvpSourcePath+        ]+ data Container = Container     { _cContainerArn    :: Maybe Text     , _cExitCode        :: Maybe Int     , _cLastStatus      :: Maybe Text     , _cName            :: Maybe Text-    , _cNetworkBindings :: List "member" NetworkBinding+    , _cNetworkBindings :: List "networkBindings" NetworkBinding     , _cReason          :: Maybe Text     , _cTaskArn         :: Maybe Text     } deriving (Eq, Read, Show)@@ -470,38 +603,40 @@ 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 FromJSON Container where+    parseJSON = withObject "Container" $ \o -> Container+        <$> o .:? "containerArn"+        <*> o .:? "exitCode"+        <*> o .:? "lastStatus"+        <*> o .:? "name"+        <*> o .:? "networkBindings" .!= mempty+        <*> o .:? "reason"+        <*> o .:? "taskArn" -instance ToQuery Container where-    toQuery Container{..} = mconcat-        [ "containerArn"    =? _cContainerArn-        , "exitCode"        =? _cExitCode-        , "lastStatus"      =? _cLastStatus-        , "name"            =? _cName-        , "networkBindings" =? _cNetworkBindings-        , "reason"          =? _cReason-        , "taskArn"         =? _cTaskArn+instance ToJSON Container where+    toJSON Container{..} = object+        [ "containerArn"    .= _cContainerArn+        , "taskArn"         .= _cTaskArn+        , "name"            .= _cName+        , "lastStatus"      .= _cLastStatus+        , "exitCode"        .= _cExitCode+        , "reason"          .= _cReason+        , "networkBindings" .= _cNetworkBindings         ]  data ContainerDefinition = ContainerDefinition-    { _cdCommand      :: List "member" Text+    { _cdCommand      :: List "command" Text     , _cdCpu          :: Maybe Int-    , _cdEntryPoint   :: List "member" Text-    , _cdEnvironment  :: List "member" KeyValuePair+    , _cdEntryPoint   :: List "entryPoint" Text+    , _cdEnvironment  :: List "environment" KeyValuePair     , _cdEssential    :: Maybe Bool     , _cdImage        :: Maybe Text-    , _cdLinks        :: List "member" Text+    , _cdLinks        :: List "links" Text     , _cdMemory       :: Maybe Int+    , _cdMountPoints  :: List "mountPoints" MountPoint     , _cdName         :: Maybe Text-    , _cdPortMappings :: List "member" PortMapping+    , _cdPortMappings :: List "portMappings" PortMapping+    , _cdVolumesFrom  :: List "volumesFrom" VolumeFrom     } deriving (Eq, Read, Show)  -- | 'ContainerDefinition' constructor.@@ -524,10 +659,14 @@ -- -- * 'cdMemory' @::@ 'Maybe' 'Int' --+-- * 'cdMountPoints' @::@ ['MountPoint']+-- -- * 'cdName' @::@ 'Maybe' 'Text' -- -- * 'cdPortMappings' @::@ ['PortMapping'] --+-- * 'cdVolumesFrom' @::@ ['VolumeFrom']+-- containerDefinition :: ContainerDefinition containerDefinition = ContainerDefinition     { _cdName         = Nothing@@ -540,6 +679,8 @@     , _cdEntryPoint   = mempty     , _cdCommand      = mempty     , _cdEnvironment  = mempty+    , _cdMountPoints  = mempty+    , _cdVolumesFrom  = 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>.@@ -551,7 +692,10 @@ 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+-- | Early versions of the Amazon ECS container agent do not properly handle 'entryPoint' parameters. If you have problems using 'entryPoint', update your container+-- agent or enter your commands and arguments as 'command' array items instead.+--+-- The '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@@ -584,6 +728,10 @@ cdMemory :: Lens' ContainerDefinition (Maybe Int) cdMemory = lens _cdMemory (\s a -> s { _cdMemory = a }) +-- | The mount points for data volumes in your container.+cdMountPoints :: Lens' ContainerDefinition [MountPoint]+cdMountPoints = lens _cdMountPoints (\s a -> s { _cdMountPoints = a }) . _List+ -- | 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.@@ -594,31 +742,39 @@ 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+-- | Data volumes to mount from another container.+cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom]+cdVolumesFrom = lens _cdVolumesFrom (\s a -> s { _cdVolumesFrom = a }) . _List -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+instance FromJSON ContainerDefinition where+    parseJSON = withObject "ContainerDefinition" $ \o -> ContainerDefinition+        <$> o .:? "command" .!= mempty+        <*> o .:? "cpu"+        <*> o .:? "entryPoint" .!= mempty+        <*> o .:? "environment" .!= mempty+        <*> o .:? "essential"+        <*> o .:? "image"+        <*> o .:? "links" .!= mempty+        <*> o .:? "memory"+        <*> o .:? "mountPoints" .!= mempty+        <*> o .:? "name"+        <*> o .:? "portMappings" .!= mempty+        <*> o .:? "volumesFrom" .!= mempty++instance ToJSON ContainerDefinition where+    toJSON ContainerDefinition{..} = object+        [ "name"         .= _cdName+        , "image"        .= _cdImage+        , "cpu"          .= _cdCpu+        , "memory"       .= _cdMemory+        , "links"        .= _cdLinks+        , "portMappings" .= _cdPortMappings+        , "essential"    .= _cdEssential+        , "entryPoint"   .= _cdEntryPoint+        , "command"      .= _cdCommand+        , "environment"  .= _cdEnvironment+        , "mountPoints"  .= _cdMountPoints+        , "volumesFrom"  .= _cdVolumesFrom         ]  data Resource = Resource@@ -626,7 +782,7 @@     , _rIntegerValue   :: Maybe Int     , _rLongValue      :: Maybe Integer     , _rName           :: Maybe Text-    , _rStringSetValue :: List "member" Text+    , _rStringSetValue :: List "stringSetValue" Text     , _rType           :: Maybe Text     } deriving (Eq, Ord, Read, Show) @@ -685,29 +841,29 @@ 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 FromJSON Resource where+    parseJSON = withObject "Resource" $ \o -> Resource+        <$> o .:? "doubleValue"+        <*> o .:? "integerValue"+        <*> o .:? "longValue"+        <*> o .:? "name"+        <*> o .:? "stringSetValue" .!= mempty+        <*> o .:? "type" -instance ToQuery Resource where-    toQuery Resource{..} = mconcat-        [ "doubleValue"    =? _rDoubleValue-        , "integerValue"   =? _rIntegerValue-        , "longValue"      =? _rLongValue-        , "name"           =? _rName-        , "stringSetValue" =? _rStringSetValue-        , "type"           =? _rType+instance ToJSON Resource where+    toJSON Resource{..} = object+        [ "name"           .= _rName+        , "type"           .= _rType+        , "doubleValue"    .= _rDoubleValue+        , "longValue"      .= _rLongValue+        , "integerValue"   .= _rIntegerValue+        , "stringSetValue" .= _rStringSetValue         ]  data Task = Task     { _tClusterArn           :: Maybe Text     , _tContainerInstanceArn :: Maybe Text-    , _tContainers           :: List "member" Container+    , _tContainers           :: List "containers" Container     , _tDesiredStatus        :: Maybe Text     , _tLastStatus           :: Maybe Text     , _tOverrides            :: Maybe TaskOverride@@ -782,27 +938,27 @@ 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 FromJSON Task where+    parseJSON = withObject "Task" $ \o -> Task+        <$> o .:? "clusterArn"+        <*> o .:? "containerInstanceArn"+        <*> o .:? "containers" .!= mempty+        <*> o .:? "desiredStatus"+        <*> o .:? "lastStatus"+        <*> o .:? "overrides"+        <*> o .:? "taskArn"+        <*> o .:? "taskDefinitionArn" -instance ToQuery Task where-    toQuery Task{..} = mconcat-        [ "clusterArn"           =? _tClusterArn-        , "containerInstanceArn" =? _tContainerInstanceArn-        , "containers"           =? _tContainers-        , "desiredStatus"        =? _tDesiredStatus-        , "lastStatus"           =? _tLastStatus-        , "overrides"            =? _tOverrides-        , "taskArn"              =? _tTaskArn-        , "taskDefinitionArn"    =? _tTaskDefinitionArn+instance ToJSON Task where+    toJSON Task{..} = object+        [ "taskArn"              .= _tTaskArn+        , "clusterArn"           .= _tClusterArn+        , "taskDefinitionArn"    .= _tTaskDefinitionArn+        , "containerInstanceArn" .= _tContainerInstanceArn+        , "overrides"            .= _tOverrides+        , "lastStatus"           .= _tLastStatus+        , "desiredStatus"        .= _tDesiredStatus+        , "containers"           .= _tContainers         ]  data PortMapping = PortMapping@@ -824,30 +980,48 @@     , _pmHostPort      = Nothing     } --- | The port number on the container that should be used with the port mapping.+-- | The port number on the container that is bound to the user-specified or+-- automatically assigned host port. If you specify a container port and not a+-- host port, your container will automatically receive a host port in the 49153+-- to 65535 port range. 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.+-- | The port number on the container instance to reserve for your container. You+-- can specify a non-reserved host port for your container port mapping, or you+-- can omit the 'hostPort' while specifying a 'containerPort' and your container+-- will automatically receive a port in the 49153 to 65535 port range. You+-- should not attempt to specify a host port in the 49153 to 65535 port range,+-- since these are reserved for automatic assignment.+--+-- The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376,+-- and the Amazon ECS Container Agent port 51678. Any host port that was+-- previously specified in a running task is also reserved while the task is+-- running (once a task stops, the host port is released).The current reserved+-- ports are displayed in the 'remainingResources' of 'DescribeContainerInstances'+-- output, and a container instance may have up to 50 reserved ports at a time,+-- including the default reserved ports (automatically assigned ports do not+-- count toward this limit). 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 FromJSON PortMapping where+    parseJSON = withObject "PortMapping" $ \o -> PortMapping+        <$> o .:? "containerPort"+        <*> o .:? "hostPort" -instance ToQuery PortMapping where-    toQuery PortMapping{..} = mconcat-        [ "containerPort" =? _pmContainerPort-        , "hostPort"      =? _pmHostPort+instance ToJSON PortMapping where+    toJSON PortMapping{..} = object+        [ "containerPort" .= _pmContainerPort+        , "hostPort"      .= _pmHostPort         ]  data TaskDefinition = TaskDefinition-    { _tdContainerDefinitions :: List "member" ContainerDefinition+    { _tdContainerDefinitions :: List "containerDefinitions" ContainerDefinition     , _tdFamily               :: Maybe Text     , _tdRevision             :: Maybe Int     , _tdTaskDefinitionArn    :: Maybe Text+    , _tdVolumes              :: List "volumes" Volume     } deriving (Eq, Read, Show)  -- | 'TaskDefinition' constructor.@@ -862,16 +1036,20 @@ -- -- * 'tdTaskDefinitionArn' @::@ 'Maybe' 'Text' --+-- * 'tdVolumes' @::@ ['Volume']+-- taskDefinition :: TaskDefinition taskDefinition = TaskDefinition     { _tdTaskDefinitionArn    = Nothing     , _tdContainerDefinitions = mempty     , _tdFamily               = Nothing     , _tdRevision             = Nothing+    , _tdVolumes              = mempty     }  -- | A list of container definitions in JSON format that describe the different--- containers that make up your task.+-- containers that make up your task. For more information on container+-- definition parameters and defaults, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html Amazon ECS Task Definitions> in the /Amazon EC2 Container Service Developer Guide/. tdContainerDefinitions :: Lens' TaskDefinition [ContainerDefinition] tdContainerDefinitions =     lens _tdContainerDefinitions (\s a -> s { _tdContainerDefinitions = a })@@ -895,19 +1073,26 @@ tdTaskDefinitionArn =     lens _tdTaskDefinitionArn (\s a -> s { _tdTaskDefinitionArn = a }) -instance FromXML TaskDefinition where-    parseXML x = TaskDefinition-        <$> x .@? "containerDefinitions" .!@ mempty-        <*> x .@? "family"-        <*> x .@? "revision"-        <*> x .@? "taskDefinitionArn"+-- | The list of volumes in a task. For more information on volume definition+-- parameters and defaults, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html Amazon ECS Task Definitions> in the /Amazon EC2Container Service Developer Guide/.+tdVolumes :: Lens' TaskDefinition [Volume]+tdVolumes = lens _tdVolumes (\s a -> s { _tdVolumes = a }) . _List -instance ToQuery TaskDefinition where-    toQuery TaskDefinition{..} = mconcat-        [ "containerDefinitions" =? _tdContainerDefinitions-        , "family"               =? _tdFamily-        , "revision"             =? _tdRevision-        , "taskDefinitionArn"    =? _tdTaskDefinitionArn+instance FromJSON TaskDefinition where+    parseJSON = withObject "TaskDefinition" $ \o -> TaskDefinition+        <$> o .:? "containerDefinitions" .!= mempty+        <*> o .:? "family"+        <*> o .:? "revision"+        <*> o .:? "taskDefinitionArn"+        <*> o .:? "volumes" .!= mempty++instance ToJSON TaskDefinition where+    toJSON TaskDefinition{..} = object+        [ "taskDefinitionArn"    .= _tdTaskDefinitionArn+        , "containerDefinitions" .= _tdContainerDefinitions+        , "family"               .= _tdFamily+        , "revision"             .= _tdRevision+        , "volumes"              .= _tdVolumes         ]  data Failure = Failure@@ -937,23 +1122,23 @@ 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 FromJSON Failure where+    parseJSON = withObject "Failure" $ \o -> Failure+        <$> o .:? "arn"+        <*> o .:? "reason" -instance ToQuery Failure where-    toQuery Failure{..} = mconcat-        [ "arn"    =? _fArn-        , "reason" =? _fReason+instance ToJSON Failure where+    toJSON Failure{..} = object+        [ "arn"    .= _fArn+        , "reason" .= _fReason         ]  data ContainerInstance = ContainerInstance     { _ciAgentConnected       :: Maybe Bool     , _ciContainerInstanceArn :: Maybe Text     , _ciEc2InstanceId        :: Maybe Text-    , _ciRegisteredResources  :: List "member" Resource-    , _ciRemainingResources   :: List "member" Resource+    , _ciRegisteredResources  :: List "registeredResources" Resource+    , _ciRemainingResources   :: List "remainingResources" Resource     , _ciStatus               :: Maybe Text     } deriving (Eq, Read, Show) @@ -1021,21 +1206,71 @@ 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 FromJSON ContainerInstance where+    parseJSON = withObject "ContainerInstance" $ \o -> ContainerInstance+        <$> o .:? "agentConnected"+        <*> o .:? "containerInstanceArn"+        <*> o .:? "ec2InstanceId"+        <*> o .:? "registeredResources" .!= mempty+        <*> o .:? "remainingResources" .!= mempty+        <*> o .:? "status" -instance ToQuery ContainerInstance where-    toQuery ContainerInstance{..} = mconcat-        [ "agentConnected"       =? _ciAgentConnected-        , "containerInstanceArn" =? _ciContainerInstanceArn-        , "ec2InstanceId"        =? _ciEc2InstanceId-        , "registeredResources"  =? _ciRegisteredResources-        , "remainingResources"   =? _ciRemainingResources-        , "status"               =? _ciStatus+instance ToJSON ContainerInstance where+    toJSON ContainerInstance{..} = object+        [ "containerInstanceArn" .= _ciContainerInstanceArn+        , "ec2InstanceId"        .= _ciEc2InstanceId+        , "remainingResources"   .= _ciRemainingResources+        , "registeredResources"  .= _ciRegisteredResources+        , "status"               .= _ciStatus+        , "agentConnected"       .= _ciAgentConnected+        ]++data MountPoint = MountPoint+    { _mpContainerPath :: Maybe Text+    , _mpReadOnly      :: Maybe Bool+    , _mpSourceVolume  :: Maybe Text+    } deriving (Eq, Ord, Read, Show)++-- | 'MountPoint' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mpContainerPath' @::@ 'Maybe' 'Text'+--+-- * 'mpReadOnly' @::@ 'Maybe' 'Bool'+--+-- * 'mpSourceVolume' @::@ 'Maybe' 'Text'+--+mountPoint :: MountPoint+mountPoint = MountPoint+    { _mpSourceVolume  = Nothing+    , _mpContainerPath = Nothing+    , _mpReadOnly      = Nothing+    }++-- | The path on the container to mount the host volume at.+mpContainerPath :: Lens' MountPoint (Maybe Text)+mpContainerPath = lens _mpContainerPath (\s a -> s { _mpContainerPath = a })++-- | If this value is 'true', the container has read-only access to the volume. If+-- this value is 'false', then the container can write to the volume. The default+-- value is 'false'.+mpReadOnly :: Lens' MountPoint (Maybe Bool)+mpReadOnly = lens _mpReadOnly (\s a -> s { _mpReadOnly = a })++-- | The name of the volume to mount.+mpSourceVolume :: Lens' MountPoint (Maybe Text)+mpSourceVolume = lens _mpSourceVolume (\s a -> s { _mpSourceVolume = a })++instance FromJSON MountPoint where+    parseJSON = withObject "MountPoint" $ \o -> MountPoint+        <$> o .:? "containerPath"+        <*> o .:? "readOnly"+        <*> o .:? "sourceVolume"++instance ToJSON MountPoint where+    toJSON MountPoint{..} = object+        [ "sourceVolume"  .= _mpSourceVolume+        , "containerPath" .= _mpContainerPath+        , "readOnly"      .= _mpReadOnly         ]