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 +3/−2
- gen/Network/AWS/ECS.hs +2/−0
- gen/Network/AWS/ECS/CreateCluster.hs +11/−8
- gen/Network/AWS/ECS/DeleteCluster.hs +13/−9
- gen/Network/AWS/ECS/DeregisterContainerInstance.hs +13/−10
- gen/Network/AWS/ECS/DeregisterTaskDefinition.hs +14/−9
- gen/Network/AWS/ECS/DescribeClusters.hs +15/−12
- gen/Network/AWS/ECS/DescribeContainerInstances.hs +16/−13
- gen/Network/AWS/ECS/DescribeTaskDefinition.hs +17/−11
- gen/Network/AWS/ECS/DescribeTasks.hs +16/−13
- gen/Network/AWS/ECS/DiscoverPollEndpoint.hs +24/−11
- gen/Network/AWS/ECS/ListClusters.hs +14/−11
- gen/Network/AWS/ECS/ListContainerInstances.hs +15/−12
- gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs +150/−0
- gen/Network/AWS/ECS/ListTaskDefinitions.hs +18/−15
- gen/Network/AWS/ECS/ListTasks.hs +17/−14
- gen/Network/AWS/ECS/RegisterContainerInstance.hs +15/−12
- gen/Network/AWS/ECS/RegisterTaskDefinition.hs +28/−12
- gen/Network/AWS/ECS/RunTask.hs +17/−14
- gen/Network/AWS/ECS/StartTask.hs +18/−15
- gen/Network/AWS/ECS/StopTask.hs +12/−9
- gen/Network/AWS/ECS/SubmitContainerStateChange.hs +18/−15
- gen/Network/AWS/ECS/SubmitTaskStateChange.hs +14/−11
- gen/Network/AWS/ECS/Types.hs +431/−196
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 ]