amazonka-ecs 1.4.5 → 1.5.0
raw patch · 48 files changed
+5003/−3232 lines, 48 filesdep ~amazonka-coredep ~amazonka-ecsdep ~amazonka-testPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: amazonka-core, amazonka-ecs, amazonka-test
API changes (from Hackage documentation)
- Network.AWS.ECS: All :: TaskDefinitionFamilyStatus
- Network.AWS.ECS: Inactive :: TaskDefinitionFamilyStatus
- Network.AWS.ECS.Types: All :: TaskDefinitionFamilyStatus
- Network.AWS.ECS.Types: Inactive :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS: Binpack :: PlacementStrategyType
+ Network.AWS.ECS: ContainerInstance :: TargetType
+ Network.AWS.ECS: Draining :: ContainerInstanceStatus
+ Network.AWS.ECS: MemberOf :: TaskDefinitionPlacementConstraintType
+ Network.AWS.ECS: Mknod :: DeviceCgroupPermission
+ Network.AWS.ECS: PCTDistinctInstance :: PlacementConstraintType
+ Network.AWS.ECS: PCTMemberOf :: PlacementConstraintType
+ Network.AWS.ECS: Random :: PlacementStrategyType
+ Network.AWS.ECS: Read :: DeviceCgroupPermission
+ Network.AWS.ECS: Spread :: PlacementStrategyType
+ Network.AWS.ECS: TDFSActive :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS: TDFSAll :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS: TDFSInactive :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS: Write :: DeviceCgroupPermission
+ Network.AWS.ECS: _AttributeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ECS: _TargetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ECS: aTargetId :: Lens' Attribute (Maybe Text)
+ Network.AWS.ECS: aTargetType :: Lens' Attribute (Maybe TargetType)
+ Network.AWS.ECS: cdLinuxParameters :: Lens' ContainerDefinition (Maybe LinuxParameters)
+ Network.AWS.ECS: ciRegisteredAt :: Lens' ContainerInstance (Maybe UTCTime)
+ Network.AWS.ECS: coCpu :: Lens' ContainerOverride (Maybe Int)
+ Network.AWS.ECS: coMemory :: Lens' ContainerOverride (Maybe Int)
+ Network.AWS.ECS: coMemoryReservation :: Lens' ContainerOverride (Maybe Int)
+ Network.AWS.ECS: csPlacementConstraints :: Lens' ContainerService [PlacementConstraint]
+ Network.AWS.ECS: csPlacementStrategy :: Lens' ContainerService [PlacementStrategy]
+ Network.AWS.ECS: dContainerPath :: Lens' Device (Maybe Text)
+ Network.AWS.ECS: dHostPath :: Lens' Device Text
+ Network.AWS.ECS: dPermissions :: Lens' Device [DeviceCgroupPermission]
+ Network.AWS.ECS: data ContainerInstanceStatus
+ Network.AWS.ECS: data Device
+ Network.AWS.ECS: data DeviceCgroupPermission
+ Network.AWS.ECS: data KernelCapabilities
+ Network.AWS.ECS: data LinuxParameters
+ Network.AWS.ECS: data PlacementConstraint
+ Network.AWS.ECS: data PlacementConstraintType
+ Network.AWS.ECS: data PlacementStrategy
+ Network.AWS.ECS: data PlacementStrategyType
+ Network.AWS.ECS: data TargetType
+ Network.AWS.ECS: data TaskDefinitionPlacementConstraint
+ Network.AWS.ECS: data TaskDefinitionPlacementConstraintType
+ Network.AWS.ECS: device :: Text -> Device
+ Network.AWS.ECS: kcAdd :: Lens' KernelCapabilities [Text]
+ Network.AWS.ECS: kcDrop :: Lens' KernelCapabilities [Text]
+ Network.AWS.ECS: kernelCapabilities :: KernelCapabilities
+ Network.AWS.ECS: linuxParameters :: LinuxParameters
+ Network.AWS.ECS: lpCapabilities :: Lens' LinuxParameters (Maybe KernelCapabilities)
+ Network.AWS.ECS: lpDevices :: Lens' LinuxParameters [Device]
+ Network.AWS.ECS: lpInitProcessEnabled :: Lens' LinuxParameters (Maybe Bool)
+ Network.AWS.ECS: pcExpression :: Lens' PlacementConstraint (Maybe Text)
+ Network.AWS.ECS: pcType :: Lens' PlacementConstraint (Maybe PlacementConstraintType)
+ Network.AWS.ECS: placementConstraint :: PlacementConstraint
+ Network.AWS.ECS: placementStrategy :: PlacementStrategy
+ Network.AWS.ECS: psField :: Lens' PlacementStrategy (Maybe Text)
+ Network.AWS.ECS: psType :: Lens' PlacementStrategy (Maybe PlacementStrategyType)
+ Network.AWS.ECS: tGroup :: Lens' Task (Maybe Text)
+ Network.AWS.ECS: taskDefinitionPlacementConstraint :: TaskDefinitionPlacementConstraint
+ Network.AWS.ECS: tdPlacementConstraints :: Lens' TaskDefinition [TaskDefinitionPlacementConstraint]
+ Network.AWS.ECS: tdpcExpression :: Lens' TaskDefinitionPlacementConstraint (Maybe Text)
+ Network.AWS.ECS: tdpcType :: Lens' TaskDefinitionPlacementConstraint (Maybe TaskDefinitionPlacementConstraintType)
+ Network.AWS.ECS.CreateService: cPlacementConstraints :: Lens' CreateService [PlacementConstraint]
+ Network.AWS.ECS.CreateService: cPlacementStrategy :: Lens' CreateService [PlacementStrategy]
+ Network.AWS.ECS.DeleteAttributes: daAttributes :: Lens' DeleteAttributes [Attribute]
+ Network.AWS.ECS.DeleteAttributes: daCluster :: Lens' DeleteAttributes (Maybe Text)
+ Network.AWS.ECS.DeleteAttributes: darsAttributes :: Lens' DeleteAttributesResponse [Attribute]
+ Network.AWS.ECS.DeleteAttributes: darsResponseStatus :: Lens' DeleteAttributesResponse Int
+ Network.AWS.ECS.DeleteAttributes: data DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: data DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: deleteAttributes :: DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: deleteAttributesResponse :: Int -> DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance Control.DeepSeq.NFData Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance Control.DeepSeq.NFData Network.AWS.ECS.DeleteAttributes.DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance Data.Data.Data Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance Data.Data.Data Network.AWS.ECS.DeleteAttributes.DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance Data.Hashable.Class.Hashable Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Classes.Eq Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Classes.Eq Network.AWS.ECS.DeleteAttributes.DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Generics.Generic Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Generics.Generic Network.AWS.ECS.DeleteAttributes.DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Read.Read Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Read.Read Network.AWS.ECS.DeleteAttributes.DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Show.Show Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance GHC.Show.Show Network.AWS.ECS.DeleteAttributes.DeleteAttributesResponse
+ Network.AWS.ECS.DeleteAttributes: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.DeleteAttributes: instance Network.AWS.Types.AWSRequest Network.AWS.ECS.DeleteAttributes.DeleteAttributes
+ Network.AWS.ECS.ListAttributes: data ListAttributes
+ Network.AWS.ECS.ListAttributes: data ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance Control.DeepSeq.NFData Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance Control.DeepSeq.NFData Network.AWS.ECS.ListAttributes.ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance Data.Data.Data Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance Data.Data.Data Network.AWS.ECS.ListAttributes.ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance Data.Hashable.Class.Hashable Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance GHC.Classes.Eq Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance GHC.Classes.Eq Network.AWS.ECS.ListAttributes.ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance GHC.Generics.Generic Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance GHC.Generics.Generic Network.AWS.ECS.ListAttributes.ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance GHC.Read.Read Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance GHC.Read.Read Network.AWS.ECS.ListAttributes.ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance GHC.Show.Show Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance GHC.Show.Show Network.AWS.ECS.ListAttributes.ListAttributesResponse
+ Network.AWS.ECS.ListAttributes: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: instance Network.AWS.Types.AWSRequest Network.AWS.ECS.ListAttributes.ListAttributes
+ Network.AWS.ECS.ListAttributes: laAttributeName :: Lens' ListAttributes (Maybe Text)
+ Network.AWS.ECS.ListAttributes: laAttributeValue :: Lens' ListAttributes (Maybe Text)
+ Network.AWS.ECS.ListAttributes: laCluster :: Lens' ListAttributes (Maybe Text)
+ Network.AWS.ECS.ListAttributes: laMaxResults :: Lens' ListAttributes (Maybe Int)
+ Network.AWS.ECS.ListAttributes: laNextToken :: Lens' ListAttributes (Maybe Text)
+ Network.AWS.ECS.ListAttributes: laTargetType :: Lens' ListAttributes TargetType
+ Network.AWS.ECS.ListAttributes: larsAttributes :: Lens' ListAttributesResponse [Attribute]
+ Network.AWS.ECS.ListAttributes: larsNextToken :: Lens' ListAttributesResponse (Maybe Text)
+ Network.AWS.ECS.ListAttributes: larsResponseStatus :: Lens' ListAttributesResponse Int
+ Network.AWS.ECS.ListAttributes: listAttributes :: TargetType -> ListAttributes
+ Network.AWS.ECS.ListAttributes: listAttributesResponse :: Int -> ListAttributesResponse
+ Network.AWS.ECS.ListContainerInstances: lciFilter :: Lens' ListContainerInstances (Maybe Text)
+ Network.AWS.ECS.ListContainerInstances: lciStatus :: Lens' ListContainerInstances (Maybe ContainerInstanceStatus)
+ Network.AWS.ECS.PutAttributes: data PutAttributes
+ Network.AWS.ECS.PutAttributes: data PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance Control.DeepSeq.NFData Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance Control.DeepSeq.NFData Network.AWS.ECS.PutAttributes.PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance Data.Data.Data Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance Data.Data.Data Network.AWS.ECS.PutAttributes.PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance Data.Hashable.Class.Hashable Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance GHC.Classes.Eq Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance GHC.Classes.Eq Network.AWS.ECS.PutAttributes.PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance GHC.Generics.Generic Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance GHC.Generics.Generic Network.AWS.ECS.PutAttributes.PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance GHC.Read.Read Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance GHC.Read.Read Network.AWS.ECS.PutAttributes.PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance GHC.Show.Show Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance GHC.Show.Show Network.AWS.ECS.PutAttributes.PutAttributesResponse
+ Network.AWS.ECS.PutAttributes: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: instance Network.AWS.Types.AWSRequest Network.AWS.ECS.PutAttributes.PutAttributes
+ Network.AWS.ECS.PutAttributes: paAttributes :: Lens' PutAttributes [Attribute]
+ Network.AWS.ECS.PutAttributes: paCluster :: Lens' PutAttributes (Maybe Text)
+ Network.AWS.ECS.PutAttributes: parsAttributes :: Lens' PutAttributesResponse [Attribute]
+ Network.AWS.ECS.PutAttributes: parsResponseStatus :: Lens' PutAttributesResponse Int
+ Network.AWS.ECS.PutAttributes: putAttributes :: PutAttributes
+ Network.AWS.ECS.PutAttributes: putAttributesResponse :: Int -> PutAttributesResponse
+ Network.AWS.ECS.RegisterTaskDefinition: rtdPlacementConstraints :: Lens' RegisterTaskDefinition [TaskDefinitionPlacementConstraint]
+ Network.AWS.ECS.RunTask: rtGroup :: Lens' RunTask (Maybe Text)
+ Network.AWS.ECS.RunTask: rtPlacementConstraints :: Lens' RunTask [PlacementConstraint]
+ Network.AWS.ECS.RunTask: rtPlacementStrategy :: Lens' RunTask [PlacementStrategy]
+ Network.AWS.ECS.StartTask: sGroup :: Lens' StartTask (Maybe Text)
+ Network.AWS.ECS.Types: Binpack :: PlacementStrategyType
+ Network.AWS.ECS.Types: ContainerInstance :: TargetType
+ Network.AWS.ECS.Types: Draining :: ContainerInstanceStatus
+ Network.AWS.ECS.Types: MemberOf :: TaskDefinitionPlacementConstraintType
+ Network.AWS.ECS.Types: Mknod :: DeviceCgroupPermission
+ Network.AWS.ECS.Types: PCTDistinctInstance :: PlacementConstraintType
+ Network.AWS.ECS.Types: PCTMemberOf :: PlacementConstraintType
+ Network.AWS.ECS.Types: Random :: PlacementStrategyType
+ Network.AWS.ECS.Types: Read :: DeviceCgroupPermission
+ Network.AWS.ECS.Types: Spread :: PlacementStrategyType
+ Network.AWS.ECS.Types: TDFSActive :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS.Types: TDFSAll :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS.Types: TDFSInactive :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS.Types: Write :: DeviceCgroupPermission
+ Network.AWS.ECS.Types: _AttributeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ECS.Types: _TargetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.ECS.Types: aTargetId :: Lens' Attribute (Maybe Text)
+ Network.AWS.ECS.Types: aTargetType :: Lens' Attribute (Maybe TargetType)
+ Network.AWS.ECS.Types: cdLinuxParameters :: Lens' ContainerDefinition (Maybe LinuxParameters)
+ Network.AWS.ECS.Types: ciRegisteredAt :: Lens' ContainerInstance (Maybe UTCTime)
+ Network.AWS.ECS.Types: coCpu :: Lens' ContainerOverride (Maybe Int)
+ Network.AWS.ECS.Types: coMemory :: Lens' ContainerOverride (Maybe Int)
+ Network.AWS.ECS.Types: coMemoryReservation :: Lens' ContainerOverride (Maybe Int)
+ Network.AWS.ECS.Types: csPlacementConstraints :: Lens' ContainerService [PlacementConstraint]
+ Network.AWS.ECS.Types: csPlacementStrategy :: Lens' ContainerService [PlacementStrategy]
+ Network.AWS.ECS.Types: dContainerPath :: Lens' Device (Maybe Text)
+ Network.AWS.ECS.Types: dHostPath :: Lens' Device Text
+ Network.AWS.ECS.Types: dPermissions :: Lens' Device [DeviceCgroupPermission]
+ Network.AWS.ECS.Types: data ContainerInstanceStatus
+ Network.AWS.ECS.Types: data Device
+ Network.AWS.ECS.Types: data DeviceCgroupPermission
+ Network.AWS.ECS.Types: data KernelCapabilities
+ Network.AWS.ECS.Types: data LinuxParameters
+ Network.AWS.ECS.Types: data PlacementConstraint
+ Network.AWS.ECS.Types: data PlacementConstraintType
+ Network.AWS.ECS.Types: data PlacementStrategy
+ Network.AWS.ECS.Types: data PlacementStrategyType
+ Network.AWS.ECS.Types: data TargetType
+ Network.AWS.ECS.Types: data TaskDefinitionPlacementConstraint
+ Network.AWS.ECS.Types: data TaskDefinitionPlacementConstraintType
+ Network.AWS.ECS.Types: device :: Text -> Device
+ Network.AWS.ECS.Types: kcAdd :: Lens' KernelCapabilities [Text]
+ Network.AWS.ECS.Types: kcDrop :: Lens' KernelCapabilities [Text]
+ Network.AWS.ECS.Types: kernelCapabilities :: KernelCapabilities
+ Network.AWS.ECS.Types: linuxParameters :: LinuxParameters
+ Network.AWS.ECS.Types: lpCapabilities :: Lens' LinuxParameters (Maybe KernelCapabilities)
+ Network.AWS.ECS.Types: lpDevices :: Lens' LinuxParameters [Device]
+ Network.AWS.ECS.Types: lpInitProcessEnabled :: Lens' LinuxParameters (Maybe Bool)
+ Network.AWS.ECS.Types: pcExpression :: Lens' PlacementConstraint (Maybe Text)
+ Network.AWS.ECS.Types: pcType :: Lens' PlacementConstraint (Maybe PlacementConstraintType)
+ Network.AWS.ECS.Types: placementConstraint :: PlacementConstraint
+ Network.AWS.ECS.Types: placementStrategy :: PlacementStrategy
+ Network.AWS.ECS.Types: psField :: Lens' PlacementStrategy (Maybe Text)
+ Network.AWS.ECS.Types: psType :: Lens' PlacementStrategy (Maybe PlacementStrategyType)
+ Network.AWS.ECS.Types: tGroup :: Lens' Task (Maybe Text)
+ Network.AWS.ECS.Types: taskDefinitionPlacementConstraint :: TaskDefinitionPlacementConstraint
+ Network.AWS.ECS.Types: tdPlacementConstraints :: Lens' TaskDefinition [TaskDefinitionPlacementConstraint]
+ Network.AWS.ECS.Types: tdpcExpression :: Lens' TaskDefinitionPlacementConstraint (Maybe Text)
+ Network.AWS.ECS.Types: tdpcType :: Lens' TaskDefinitionPlacementConstraint (Maybe TaskDefinitionPlacementConstraintType)
+ Network.AWS.ECS.UpdateContainerInstancesState: data UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: data UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Control.DeepSeq.NFData Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Control.DeepSeq.NFData Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Data.Data.Data Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Data.Data.Data Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Data.Hashable.Class.Hashable Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Classes.Eq Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Classes.Eq Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Generics.Generic Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Generics.Generic Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Read.Read Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Read.Read Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Show.Show Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance GHC.Show.Show Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesStateResponse
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Network.AWS.Data.Path.ToPath Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Network.AWS.Data.Query.ToQuery Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: instance Network.AWS.Types.AWSRequest Network.AWS.ECS.UpdateContainerInstancesState.UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: ucisCluster :: Lens' UpdateContainerInstancesState (Maybe Text)
+ Network.AWS.ECS.UpdateContainerInstancesState: ucisContainerInstances :: Lens' UpdateContainerInstancesState [Text]
+ Network.AWS.ECS.UpdateContainerInstancesState: ucisStatus :: Lens' UpdateContainerInstancesState ContainerInstanceStatus
+ Network.AWS.ECS.UpdateContainerInstancesState: ucisrsContainerInstances :: Lens' UpdateContainerInstancesStateResponse [ContainerInstance]
+ Network.AWS.ECS.UpdateContainerInstancesState: ucisrsFailures :: Lens' UpdateContainerInstancesStateResponse [Failure]
+ Network.AWS.ECS.UpdateContainerInstancesState: ucisrsResponseStatus :: Lens' UpdateContainerInstancesStateResponse Int
+ Network.AWS.ECS.UpdateContainerInstancesState: updateContainerInstancesState :: ContainerInstanceStatus -> UpdateContainerInstancesState
+ Network.AWS.ECS.UpdateContainerInstancesState: updateContainerInstancesStateResponse :: Int -> UpdateContainerInstancesStateResponse
- Network.AWS.ECS: Active :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS: Active :: ContainerInstanceStatus
- Network.AWS.ECS.Types: Active :: TaskDefinitionFamilyStatus
+ Network.AWS.ECS.Types: Active :: ContainerInstanceStatus
Files
- README.md +1/−1
- amazonka-ecs.cabal +20/−11
- fixture/DeleteAttributes.yaml +10/−0
- fixture/DeleteAttributesResponse.proto +0/−0
- fixture/ListAttributes.yaml +10/−0
- fixture/ListAttributesResponse.proto +0/−0
- fixture/PutAttributes.yaml +10/−0
- fixture/PutAttributesResponse.proto +0/−0
- fixture/UpdateContainerInstancesState.yaml +10/−0
- fixture/UpdateContainerInstancesStateResponse.proto +0/−0
- gen/Network/AWS/ECS.hs +120/−31
- gen/Network/AWS/ECS/CreateCluster.hs +23/−24
- gen/Network/AWS/ECS/CreateService.hs +69/−42
- gen/Network/AWS/ECS/DeleteAttributes.hs +143/−0
- gen/Network/AWS/ECS/DeleteCluster.hs +23/−24
- gen/Network/AWS/ECS/DeleteService.hs +26/−27
- gen/Network/AWS/ECS/DeregisterContainerInstance.hs +31/−28
- gen/Network/AWS/ECS/DeregisterTaskDefinition.hs +23/−22
- gen/Network/AWS/ECS/DescribeClusters.hs +29/−28
- gen/Network/AWS/ECS/DescribeContainerInstances.hs +31/−28
- gen/Network/AWS/ECS/DescribeServices.hs +30/−30
- gen/Network/AWS/ECS/DescribeTaskDefinition.hs +23/−23
- gen/Network/AWS/ECS/DescribeTasks.hs +30/−30
- gen/Network/AWS/ECS/DiscoverPollEndpoint.hs +30/−29
- gen/Network/AWS/ECS/ListAttributes.hs +199/−0
- gen/Network/AWS/ECS/ListClusters.hs +29/−29
- gen/Network/AWS/ECS/ListContainerInstances.hs +56/−32
- gen/Network/AWS/ECS/ListServices.hs +33/−32
- gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs +36/−31
- gen/Network/AWS/ECS/ListTaskDefinitions.hs +38/−34
- gen/Network/AWS/ECS/ListTasks.hs +44/−40
- gen/Network/AWS/ECS/PutAttributes.hs +142/−0
- gen/Network/AWS/ECS/RegisterContainerInstance.hs +37/−34
- gen/Network/AWS/ECS/RegisterTaskDefinition.hs +44/−31
- gen/Network/AWS/ECS/RunTask.hs +74/−37
- gen/Network/AWS/ECS/StartTask.hs +51/−37
- gen/Network/AWS/ECS/StopTask.hs +25/−28
- gen/Network/AWS/ECS/SubmitContainerStateChange.hs +37/−34
- gen/Network/AWS/ECS/SubmitTaskStateChange.hs +31/−29
- gen/Network/AWS/ECS/Types.hs +134/−39
- gen/Network/AWS/ECS/Types/Product.hs +2652/−2207
- gen/Network/AWS/ECS/Types/Sum.hs +247/−61
- gen/Network/AWS/ECS/UpdateContainerAgent.hs +25/−25
- gen/Network/AWS/ECS/UpdateContainerInstancesState.hs +192/−0
- gen/Network/AWS/ECS/UpdateService.hs +50/−34
- gen/Network/AWS/ECS/Waiters.hs +57/−54
- test/Main.hs +2/−2
- test/Test/AWS/Gen/ECS.hs +76/−4
README.md view
@@ -8,7 +8,7 @@ ## Version -`1.4.5`+`1.5.0` ## Description
amazonka-ecs.cabal view
@@ -1,13 +1,13 @@ name: amazonka-ecs-version: 1.4.5+version: 1.5.0 synopsis: Amazon EC2 Container Service SDK. homepage: https://github.com/brendanhay/amazonka bug-reports: https://github.com/brendanhay/amazonka/issues-license: OtherLicense+license: MPL-2.0 license-file: LICENSE author: Brendan Hay-maintainer: Brendan Hay <brendan.g.hay@gmail.com>-copyright: Copyright (c) 2013-2016 Brendan Hay+maintainer: Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright: Copyright (c) 2013-2017 Brendan Hay category: Network, AWS, Cloud, Distributed Computing build-type: Simple cabal-version: >= 1.10@@ -29,19 +29,25 @@ to get started. source-repository head- type: git- location: git://github.com/brendanhay/amazonka.git+ type: git+ location: git://github.com/brendanhay/amazonka.git+ subdir: amazonka-ecs library default-language: Haskell2010 hs-source-dirs: src gen - ghc-options: -Wall+ ghc-options:+ -Wall+ -fwarn-incomplete-uni-patterns+ -fwarn-incomplete-record-updates+ -funbox-strict-fields exposed-modules: Network.AWS.ECS , Network.AWS.ECS.CreateCluster , Network.AWS.ECS.CreateService+ , Network.AWS.ECS.DeleteAttributes , Network.AWS.ECS.DeleteCluster , Network.AWS.ECS.DeleteService , Network.AWS.ECS.DeregisterContainerInstance@@ -52,12 +58,14 @@ , Network.AWS.ECS.DescribeTaskDefinition , Network.AWS.ECS.DescribeTasks , Network.AWS.ECS.DiscoverPollEndpoint+ , Network.AWS.ECS.ListAttributes , Network.AWS.ECS.ListClusters , Network.AWS.ECS.ListContainerInstances , Network.AWS.ECS.ListServices , Network.AWS.ECS.ListTaskDefinitionFamilies , Network.AWS.ECS.ListTaskDefinitions , Network.AWS.ECS.ListTasks+ , Network.AWS.ECS.PutAttributes , Network.AWS.ECS.RegisterContainerInstance , Network.AWS.ECS.RegisterTaskDefinition , Network.AWS.ECS.RunTask@@ -67,6 +75,7 @@ , Network.AWS.ECS.SubmitTaskStateChange , Network.AWS.ECS.Types , Network.AWS.ECS.UpdateContainerAgent+ , Network.AWS.ECS.UpdateContainerInstancesState , Network.AWS.ECS.UpdateService , Network.AWS.ECS.Waiters @@ -75,7 +84,7 @@ , Network.AWS.ECS.Types.Sum build-depends:- amazonka-core == 1.4.5.*+ amazonka-core == 1.5.0.* , base >= 4.7 && < 5 test-suite amazonka-ecs-test@@ -95,9 +104,9 @@ , Test.AWS.ECS.Internal build-depends:- amazonka-core == 1.4.5.*- , amazonka-test == 1.4.5.*- , amazonka-ecs == 1.4.5.*+ amazonka-core == 1.5.0.*+ , amazonka-test == 1.5.0.*+ , amazonka-ecs , base , bytestring , tasty
+ fixture/DeleteAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ecs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ecs.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/DeleteAttributesResponse.proto view
+ fixture/ListAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ecs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ecs.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListAttributesResponse.proto view
+ fixture/PutAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ecs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ecs.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/PutAttributesResponse.proto view
+ fixture/UpdateContainerInstancesState.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ecs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ecs.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UpdateContainerInstancesStateResponse.proto view
gen/Network/AWS/ECS.hs view
@@ -5,9 +5,9 @@ -- | -- Module : Network.AWS.ECS--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -54,6 +54,12 @@ -- ** UpdateInProgressException , _UpdateInProgressException + -- ** TargetNotFoundException+ , _TargetNotFoundException++ -- ** AttributeLimitExceededException+ , _AttributeLimitExceededException+ -- ** ClientException , _ClientException @@ -102,6 +108,9 @@ -- ** DescribeContainerInstances , module Network.AWS.ECS.DescribeContainerInstances + -- ** UpdateContainerInstancesState+ , module Network.AWS.ECS.UpdateContainerInstancesState+ -- ** DeleteCluster , module Network.AWS.ECS.DeleteCluster @@ -132,6 +141,9 @@ -- ** StartTask , module Network.AWS.ECS.StartTask + -- ** ListAttributes+ , module Network.AWS.ECS.ListAttributes+ -- ** DeregisterTaskDefinition , module Network.AWS.ECS.DeregisterTaskDefinition @@ -147,6 +159,12 @@ -- ** DeregisterContainerInstance , module Network.AWS.ECS.DeregisterContainerInstance + -- ** DeleteAttributes+ , module Network.AWS.ECS.DeleteAttributes++ -- ** PutAttributes+ , module Network.AWS.ECS.PutAttributes+ -- ** RegisterTaskDefinition , module Network.AWS.ECS.RegisterTaskDefinition @@ -158,21 +176,39 @@ -- ** AgentUpdateStatus , AgentUpdateStatus (..) + -- ** ContainerInstanceStatus+ , ContainerInstanceStatus (..)+ -- ** DesiredStatus , DesiredStatus (..) + -- ** DeviceCgroupPermission+ , DeviceCgroupPermission (..)+ -- ** LogDriver , LogDriver (..) -- ** NetworkMode , NetworkMode (..) + -- ** PlacementConstraintType+ , PlacementConstraintType (..)++ -- ** PlacementStrategyType+ , PlacementStrategyType (..)+ -- ** SortOrder , SortOrder (..) + -- ** TargetType+ , TargetType (..)+ -- ** TaskDefinitionFamilyStatus , TaskDefinitionFamilyStatus (..) + -- ** TaskDefinitionPlacementConstraintType+ , TaskDefinitionPlacementConstraintType (..)+ -- ** TaskDefinitionStatus , TaskDefinitionStatus (..) @@ -185,7 +221,9 @@ -- ** Attribute , Attribute , attribute+ , aTargetId , aValue+ , aTargetType , aName -- ** Cluster@@ -231,6 +269,7 @@ , cdUser , cdDnsSearchDomains , cdLogConfiguration+ , cdLinuxParameters , cdName , cdDnsServers , cdMountPoints@@ -254,6 +293,7 @@ , ciAttributes , ciVersion , ciPendingTasksCount+ , ciRegisteredAt , ciRegisteredResources -- ** ContainerOverride@@ -261,7 +301,10 @@ , containerOverride , coCommand , coEnvironment+ , coMemory , coName+ , coCpu+ , coMemoryReservation -- ** ContainerService , ContainerService@@ -273,7 +316,9 @@ , csDesiredCount , csLoadBalancers , csPendingCount+ , csPlacementConstraints , csEvents+ , csPlacementStrategy , csDeployments , csServiceName , csServiceARN@@ -299,6 +344,13 @@ , dcMinimumHealthyPercent , dcMaximumPercent + -- ** Device+ , Device+ , device+ , dContainerPath+ , dPermissions+ , dHostPath+ -- ** Failure , Failure , failure@@ -316,12 +368,25 @@ , hostVolumeProperties , hvpSourcePath + -- ** KernelCapabilities+ , KernelCapabilities+ , kernelCapabilities+ , kcDrop+ , kcAdd+ -- ** KeyValuePair , KeyValuePair , keyValuePair , kvpValue , kvpName + -- ** LinuxParameters+ , LinuxParameters+ , linuxParameters+ , lpInitProcessEnabled+ , lpDevices+ , lpCapabilities+ -- ** LoadBalancer , LoadBalancer , loadBalancer@@ -351,6 +416,18 @@ , nbHostPort , nbContainerPort + -- ** PlacementConstraint+ , PlacementConstraint+ , placementConstraint+ , pcExpression+ , pcType++ -- ** PlacementStrategy+ , PlacementStrategy+ , placementStrategy+ , psField+ , psType+ -- ** PortMapping , PortMapping , portMapping@@ -382,6 +459,7 @@ , tDesiredStatus , tOverrides , tClusterARN+ , tGroup , tCreatedAt , tTaskARN , tContainerInstanceARN@@ -400,12 +478,19 @@ , tdFamily , tdContainerDefinitions , tdTaskRoleARN+ , tdPlacementConstraints , tdNetworkMode , tdTaskDefinitionARN , tdRevision , tdVolumes , tdRequiresAttributes + -- ** TaskDefinitionPlacementConstraint+ , TaskDefinitionPlacementConstraint+ , taskDefinitionPlacementConstraint+ , tdpcExpression+ , tdpcType+ -- ** TaskOverride , TaskOverride , taskOverride@@ -439,35 +524,39 @@ , vfReadOnly ) where -import Network.AWS.ECS.CreateCluster-import Network.AWS.ECS.CreateService-import Network.AWS.ECS.DeleteCluster-import Network.AWS.ECS.DeleteService-import Network.AWS.ECS.DeregisterContainerInstance-import Network.AWS.ECS.DeregisterTaskDefinition-import Network.AWS.ECS.DescribeClusters-import Network.AWS.ECS.DescribeContainerInstances-import Network.AWS.ECS.DescribeServices-import Network.AWS.ECS.DescribeTaskDefinition-import Network.AWS.ECS.DescribeTasks-import Network.AWS.ECS.DiscoverPollEndpoint-import Network.AWS.ECS.ListClusters-import Network.AWS.ECS.ListContainerInstances-import Network.AWS.ECS.ListServices-import Network.AWS.ECS.ListTaskDefinitionFamilies-import Network.AWS.ECS.ListTaskDefinitions-import Network.AWS.ECS.ListTasks-import Network.AWS.ECS.RegisterContainerInstance-import Network.AWS.ECS.RegisterTaskDefinition-import Network.AWS.ECS.RunTask-import Network.AWS.ECS.StartTask-import Network.AWS.ECS.StopTask-import Network.AWS.ECS.SubmitContainerStateChange-import Network.AWS.ECS.SubmitTaskStateChange-import Network.AWS.ECS.Types-import Network.AWS.ECS.UpdateContainerAgent-import Network.AWS.ECS.UpdateService-import Network.AWS.ECS.Waiters+import Network.AWS.ECS.CreateCluster+import Network.AWS.ECS.CreateService+import Network.AWS.ECS.DeleteAttributes+import Network.AWS.ECS.DeleteCluster+import Network.AWS.ECS.DeleteService+import Network.AWS.ECS.DeregisterContainerInstance+import Network.AWS.ECS.DeregisterTaskDefinition+import Network.AWS.ECS.DescribeClusters+import Network.AWS.ECS.DescribeContainerInstances+import Network.AWS.ECS.DescribeServices+import Network.AWS.ECS.DescribeTaskDefinition+import Network.AWS.ECS.DescribeTasks+import Network.AWS.ECS.DiscoverPollEndpoint+import Network.AWS.ECS.ListAttributes+import Network.AWS.ECS.ListClusters+import Network.AWS.ECS.ListContainerInstances+import Network.AWS.ECS.ListServices+import Network.AWS.ECS.ListTaskDefinitionFamilies+import Network.AWS.ECS.ListTaskDefinitions+import Network.AWS.ECS.ListTasks+import Network.AWS.ECS.PutAttributes+import Network.AWS.ECS.RegisterContainerInstance+import Network.AWS.ECS.RegisterTaskDefinition+import Network.AWS.ECS.RunTask+import Network.AWS.ECS.StartTask+import Network.AWS.ECS.StopTask+import Network.AWS.ECS.SubmitContainerStateChange+import Network.AWS.ECS.SubmitTaskStateChange+import Network.AWS.ECS.Types+import Network.AWS.ECS.UpdateContainerAgent+import Network.AWS.ECS.UpdateContainerInstancesState+import Network.AWS.ECS.UpdateService+import Network.AWS.ECS.Waiters {- $errors Error matchers are designed for use with the functions provided by
gen/Network/AWS/ECS/CreateCluster.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.CreateCluster--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , ccrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'createCluster' smart constructor. newtype CreateCluster = CreateCluster'- { _ccClusterName :: Maybe Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ccClusterName :: Maybe Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -56,11 +57,9 @@ -- * 'ccClusterName' - The name of your cluster. If you do not specify a name for your cluster, you create a cluster named @default@ . Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. createCluster :: CreateCluster-createCluster =- CreateCluster'- { _ccClusterName = Nothing- }+createCluster = CreateCluster' {_ccClusterName = Nothing} + -- | The name of your cluster. If you do not specify a name for your cluster, you create a cluster named @default@ . Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. ccClusterName :: Lens' CreateCluster (Maybe Text) ccClusterName = lens _ccClusterName (\ s a -> s{_ccClusterName = a});@@ -74,9 +73,9 @@ CreateClusterResponse' <$> (x .?> "cluster") <*> (pure (fromEnum s))) -instance Hashable CreateCluster+instance Hashable CreateCluster where -instance NFData CreateCluster+instance NFData CreateCluster where instance ToHeaders CreateCluster where toHeaders@@ -101,10 +100,11 @@ -- | /See:/ 'createClusterResponse' smart constructor. data CreateClusterResponse = CreateClusterResponse'- { _ccrsCluster :: !(Maybe Cluster)- , _ccrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ccrsCluster :: !(Maybe Cluster)+ , _ccrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -116,11 +116,10 @@ :: Int -- ^ 'ccrsResponseStatus' -> CreateClusterResponse createClusterResponse pResponseStatus_ =- CreateClusterResponse'- { _ccrsCluster = Nothing- , _ccrsResponseStatus = pResponseStatus_- }+ CreateClusterResponse'+ {_ccrsCluster = Nothing, _ccrsResponseStatus = pResponseStatus_} + -- | The full description of your new cluster. ccrsCluster :: Lens' CreateClusterResponse (Maybe Cluster) ccrsCluster = lens _ccrsCluster (\ s a -> s{_ccrsCluster = a});@@ -129,4 +128,4 @@ ccrsResponseStatus :: Lens' CreateClusterResponse Int ccrsResponseStatus = lens _ccrsResponseStatus (\ s a -> s{_ccrsResponseStatus = a}); -instance NFData CreateClusterResponse+instance NFData CreateClusterResponse where
gen/Network/AWS/ECS/CreateService.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.CreateService--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -25,20 +25,24 @@ -- -- You can optionally specify a deployment configuration for your service. During a deployment (which is triggered by changing the task definition or the desired count of a service with an 'UpdateService' operation), the service scheduler uses the @minimumHealthyPercent@ and @maximumPercent@ parameters to determine the deployment strategy. ----- The @minimumHealthyPercent@ represents a lower limit on the number of your service's tasks that must remain in the @RUNNING@ state during a deployment, as a percentage of the @desiredCount@ (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a @desiredCount@ of four tasks and a @minimumHealthyPercent@ of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that /do not/ use a load balancer are considered healthy if they are in the @RUNNING@ state; tasks for services that /do/ use a load balancer are considered healthy if they are in the @RUNNING@ state and the container instance it is hosted on is reported as healthy by the load balancer. The default value for @minimumHealthyPercent@ is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs.+-- The @minimumHealthyPercent@ represents a lower limit on the number of your service's tasks that must remain in the @RUNNING@ state during a deployment, as a percentage of the @desiredCount@ (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a @desiredCount@ of four tasks and a @minimumHealthyPercent@ of 50%, the scheduler can stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that /do not/ use a load balancer are considered healthy if they are in the @RUNNING@ state. Tasks for services that /do/ use a load balancer are considered healthy if they are in the @RUNNING@ state and the container instance they are hosted on is reported as healthy by the load balancer. The default value for @minimumHealthyPercent@ is 50% in the console and 100% for the AWS CLI, the AWS SDKs, and the APIs. ----- The @maximumPercent@ parameter represents an upper limit on the number of your service's tasks that are allowed in the @RUNNING@ or @PENDING@ state during a deployment, as a percentage of the @desiredCount@ (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a @desiredCount@ of four tasks and a @maximumPercent@ value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for @maximumPercent@ is 200%.+-- The @maximumPercent@ parameter represents an upper limit on the number of your service's tasks that are allowed in the @RUNNING@ or @PENDING@ state during a deployment, as a percentage of the @desiredCount@ (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service has a @desiredCount@ of four tasks and a @maximumPercent@ value of 200%, the scheduler can start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for @maximumPercent@ is 200%. ----- When the service scheduler launches new tasks, it attempts to balance them across the Availability Zones in your cluster with the following logic:+-- When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic: -- -- * Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). --+-- * By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy) with the @placementStrategy@ parameter):+-- -- * Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. -- -- * Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. -- -- --+--+-- module Network.AWS.ECS.CreateService ( -- * Creating a Request@@ -49,6 +53,8 @@ , cClientToken , cLoadBalancers , cRole+ , cPlacementConstraints+ , cPlacementStrategy , cDeploymentConfiguration , cServiceName , cTaskDefinition@@ -62,25 +68,28 @@ , csrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'createService' smart constructor. data CreateService = CreateService'- { _cCluster :: !(Maybe Text)- , _cClientToken :: !(Maybe Text)- , _cLoadBalancers :: !(Maybe [LoadBalancer])- , _cRole :: !(Maybe Text)- , _cDeploymentConfiguration :: !(Maybe DeploymentConfiguration)- , _cServiceName :: !Text- , _cTaskDefinition :: !Text- , _cDesiredCount :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _cCluster :: !(Maybe Text)+ , _cClientToken :: !(Maybe Text)+ , _cLoadBalancers :: !(Maybe [LoadBalancer])+ , _cRole :: !(Maybe Text)+ , _cPlacementConstraints :: !(Maybe [PlacementConstraint])+ , _cPlacementStrategy :: !(Maybe [PlacementStrategy])+ , _cDeploymentConfiguration :: !(Maybe DeploymentConfiguration)+ , _cServiceName :: !Text+ , _cTaskDefinition :: !Text+ , _cDesiredCount :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateService' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -89,10 +98,14 @@ -- -- * 'cClientToken' - Unique, case-sensitive identifier you provide to ensure the idempotency of the request. Up to 32 ASCII characters are allowed. ----- * 'cLoadBalancers' - A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer per service. After you create a service, the load balancer name, container name, and container port specified in the service definition are immutable. For Elastic Load Balancing Classic load balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. For Elastic Load Balancing Application load balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.+-- * 'cLoadBalancers' - A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here. -- -- * 'cRole' - The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is required if you are using a load balancer with your service. If you specify the @role@ parameter, you must also specify a load balancer object with the @loadBalancers@ parameter. If your specified role has a path other than @/@ , then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name @bar@ has a path of @/foo/@ then you would specify @/foo/bar@ as the role name. For more information, see <http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names Friendly Names and Paths> in the /IAM User Guide/ . --+-- * 'cPlacementConstraints' - An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time).+--+-- * 'cPlacementStrategy' - The placement strategy objects to use for tasks in your service. You can specify a maximum of 5 strategy rules per service.+-- -- * 'cDeploymentConfiguration' - Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. -- -- * 'cServiceName' - The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.@@ -106,17 +119,20 @@ -> Int -- ^ 'cDesiredCount' -> CreateService createService pServiceName_ pTaskDefinition_ pDesiredCount_ =- CreateService'- { _cCluster = Nothing- , _cClientToken = Nothing- , _cLoadBalancers = Nothing- , _cRole = Nothing- , _cDeploymentConfiguration = Nothing- , _cServiceName = pServiceName_- , _cTaskDefinition = pTaskDefinition_- , _cDesiredCount = pDesiredCount_- }+ CreateService'+ { _cCluster = Nothing+ , _cClientToken = Nothing+ , _cLoadBalancers = Nothing+ , _cRole = Nothing+ , _cPlacementConstraints = Nothing+ , _cPlacementStrategy = Nothing+ , _cDeploymentConfiguration = Nothing+ , _cServiceName = pServiceName_+ , _cTaskDefinition = pTaskDefinition_+ , _cDesiredCount = pDesiredCount_+ } + -- | The short name or full Amazon Resource Name (ARN) of the cluster on which to run your service. If you do not specify a cluster, the default cluster is assumed. cCluster :: Lens' CreateService (Maybe Text) cCluster = lens _cCluster (\ s a -> s{_cCluster = a});@@ -125,7 +141,7 @@ cClientToken :: Lens' CreateService (Maybe Text) cClientToken = lens _cClientToken (\ s a -> s{_cClientToken = a}); --- | A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer per service. After you create a service, the load balancer name, container name, and container port specified in the service definition are immutable. For Elastic Load Balancing Classic load balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. For Elastic Load Balancing Application load balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here.+-- | A load balancer object representing the load balancer to use with your service. Currently, you are limited to one load balancer or target group per service. After you create a service, the load balancer name or target group ARN, container name, and container port specified in the service definition are immutable. For Classic Load Balancers, this object must contain the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance is registered with the load balancer specified here. For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name (as it appears in a container definition), and the container port to access from the load balancer. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group specified here. cLoadBalancers :: Lens' CreateService [LoadBalancer] cLoadBalancers = lens _cLoadBalancers (\ s a -> s{_cLoadBalancers = a}) . _Default . _Coerce; @@ -133,6 +149,14 @@ cRole :: Lens' CreateService (Maybe Text) cRole = lens _cRole (\ s a -> s{_cRole = a}); +-- | An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time).+cPlacementConstraints :: Lens' CreateService [PlacementConstraint]+cPlacementConstraints = lens _cPlacementConstraints (\ s a -> s{_cPlacementConstraints = a}) . _Default . _Coerce;++-- | The placement strategy objects to use for tasks in your service. You can specify a maximum of 5 strategy rules per service.+cPlacementStrategy :: Lens' CreateService [PlacementStrategy]+cPlacementStrategy = lens _cPlacementStrategy (\ s a -> s{_cPlacementStrategy = a}) . _Default . _Coerce;+ -- | Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. cDeploymentConfiguration :: Lens' CreateService (Maybe DeploymentConfiguration) cDeploymentConfiguration = lens _cDeploymentConfiguration (\ s a -> s{_cDeploymentConfiguration = a});@@ -158,9 +182,9 @@ CreateServiceResponse' <$> (x .?> "service") <*> (pure (fromEnum s))) -instance Hashable CreateService+instance Hashable CreateService where -instance NFData CreateService+instance NFData CreateService where instance ToHeaders CreateService where toHeaders@@ -180,6 +204,9 @@ ("clientToken" .=) <$> _cClientToken, ("loadBalancers" .=) <$> _cLoadBalancers, ("role" .=) <$> _cRole,+ ("placementConstraints" .=) <$>+ _cPlacementConstraints,+ ("placementStrategy" .=) <$> _cPlacementStrategy, ("deploymentConfiguration" .=) <$> _cDeploymentConfiguration, Just ("serviceName" .= _cServiceName),@@ -194,10 +221,11 @@ -- | /See:/ 'createServiceResponse' smart constructor. data CreateServiceResponse = CreateServiceResponse'- { _csrsService :: !(Maybe ContainerService)- , _csrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _csrsService :: !(Maybe ContainerService)+ , _csrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'CreateServiceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -209,11 +237,10 @@ :: Int -- ^ 'csrsResponseStatus' -> CreateServiceResponse createServiceResponse pResponseStatus_ =- CreateServiceResponse'- { _csrsService = Nothing- , _csrsResponseStatus = pResponseStatus_- }+ CreateServiceResponse'+ {_csrsService = Nothing, _csrsResponseStatus = pResponseStatus_} + -- | The full description of your service following the create call. csrsService :: Lens' CreateServiceResponse (Maybe ContainerService) csrsService = lens _csrsService (\ s a -> s{_csrsService = a});@@ -222,4 +249,4 @@ csrsResponseStatus :: Lens' CreateServiceResponse Int csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a}); -instance NFData CreateServiceResponse+instance NFData CreateServiceResponse where
+ gen/Network/AWS/ECS/DeleteAttributes.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECS.DeleteAttributes+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes one or more custom attributes from an Amazon ECS resource.+--+--+module Network.AWS.ECS.DeleteAttributes+ (+ -- * Creating a Request+ deleteAttributes+ , DeleteAttributes+ -- * Request Lenses+ , daCluster+ , daAttributes++ -- * Destructuring the Response+ , deleteAttributesResponse+ , DeleteAttributesResponse+ -- * Response Lenses+ , darsAttributes+ , darsResponseStatus+ ) where++import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteAttributes' smart constructor.+data DeleteAttributes = DeleteAttributes'+ { _daCluster :: !(Maybe Text)+ , _daAttributes :: ![Attribute]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed.+--+-- * 'daAttributes' - The attributes to delete from your resource. You can specify up to 10 attributes per request. For custom attributes, specify the attribute name and target ID, but do not specify the value. If you specify the target ID using the short form, you must also specify the target type.+deleteAttributes+ :: DeleteAttributes+deleteAttributes =+ DeleteAttributes' {_daCluster = Nothing, _daAttributes = mempty}+++-- | The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to delete attributes. If you do not specify a cluster, the default cluster is assumed.+daCluster :: Lens' DeleteAttributes (Maybe Text)+daCluster = lens _daCluster (\ s a -> s{_daCluster = a});++-- | The attributes to delete from your resource. You can specify up to 10 attributes per request. For custom attributes, specify the attribute name and target ID, but do not specify the value. If you specify the target ID using the short form, you must also specify the target type.+daAttributes :: Lens' DeleteAttributes [Attribute]+daAttributes = lens _daAttributes (\ s a -> s{_daAttributes = a}) . _Coerce;++instance AWSRequest DeleteAttributes where+ type Rs DeleteAttributes = DeleteAttributesResponse+ request = postJSON ecs+ response+ = receiveJSON+ (\ s h x ->+ DeleteAttributesResponse' <$>+ (x .?> "attributes" .!@ mempty) <*>+ (pure (fromEnum s)))++instance Hashable DeleteAttributes where++instance NFData DeleteAttributes where++instance ToHeaders DeleteAttributes where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerServiceV20141113.DeleteAttributes"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteAttributes where+ toJSON DeleteAttributes'{..}+ = object+ (catMaybes+ [("cluster" .=) <$> _daCluster,+ Just ("attributes" .= _daAttributes)])++instance ToPath DeleteAttributes where+ toPath = const "/"++instance ToQuery DeleteAttributes where+ toQuery = const mempty++-- | /See:/ 'deleteAttributesResponse' smart constructor.+data DeleteAttributesResponse = DeleteAttributesResponse'+ { _darsAttributes :: !(Maybe [Attribute])+ , _darsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'darsAttributes' - A list of attribute objects that were successfully deleted from your resource.+--+-- * 'darsResponseStatus' - -- | The response status code.+deleteAttributesResponse+ :: Int -- ^ 'darsResponseStatus'+ -> DeleteAttributesResponse+deleteAttributesResponse pResponseStatus_ =+ DeleteAttributesResponse'+ {_darsAttributes = Nothing, _darsResponseStatus = pResponseStatus_}+++-- | A list of attribute objects that were successfully deleted from your resource.+darsAttributes :: Lens' DeleteAttributesResponse [Attribute]+darsAttributes = lens _darsAttributes (\ s a -> s{_darsAttributes = a}) . _Default . _Coerce;++-- | -- | The response status code.+darsResponseStatus :: Lens' DeleteAttributesResponse Int+darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});++instance NFData DeleteAttributesResponse where
gen/Network/AWS/ECS/DeleteCluster.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DeleteCluster--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , drsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'deleteCluster' smart constructor. newtype DeleteCluster = DeleteCluster'- { _dcCluster :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dcCluster :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteCluster' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -57,11 +58,9 @@ deleteCluster :: Text -- ^ 'dcCluster' -> DeleteCluster-deleteCluster pCluster_ =- DeleteCluster'- { _dcCluster = pCluster_- }+deleteCluster pCluster_ = DeleteCluster' {_dcCluster = pCluster_} + -- | The short name or full Amazon Resource Name (ARN) of the cluster to delete. dcCluster :: Lens' DeleteCluster Text dcCluster = lens _dcCluster (\ s a -> s{_dcCluster = a});@@ -75,9 +74,9 @@ DeleteClusterResponse' <$> (x .?> "cluster") <*> (pure (fromEnum s))) -instance Hashable DeleteCluster+instance Hashable DeleteCluster where -instance NFData DeleteCluster+instance NFData DeleteCluster where instance ToHeaders DeleteCluster where toHeaders@@ -101,10 +100,11 @@ -- | /See:/ 'deleteClusterResponse' smart constructor. data DeleteClusterResponse = DeleteClusterResponse'- { _drsCluster :: !(Maybe Cluster)- , _drsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _drsCluster :: !(Maybe Cluster)+ , _drsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteClusterResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -116,11 +116,10 @@ :: Int -- ^ 'drsResponseStatus' -> DeleteClusterResponse deleteClusterResponse pResponseStatus_ =- DeleteClusterResponse'- { _drsCluster = Nothing- , _drsResponseStatus = pResponseStatus_- }+ DeleteClusterResponse'+ {_drsCluster = Nothing, _drsResponseStatus = pResponseStatus_} + -- | The full description of the deleted cluster. drsCluster :: Lens' DeleteClusterResponse (Maybe Cluster) drsCluster = lens _drsCluster (\ s a -> s{_drsCluster = a});@@ -129,4 +128,4 @@ drsResponseStatus :: Lens' DeleteClusterResponse Int drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a}); -instance NFData DeleteClusterResponse+instance NFData DeleteClusterResponse where
gen/Network/AWS/ECS/DeleteService.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DeleteService--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,36 +38,35 @@ , dsrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'deleteService' smart constructor. data DeleteService = DeleteService'- { _dsCluster :: !(Maybe Text)- , _dsService :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dsCluster :: !(Maybe Text)+ , _dsService :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteService' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dsCluster' - The name of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed.+-- * 'dsCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed. -- -- * 'dsService' - The name of the service to delete. deleteService :: Text -- ^ 'dsService' -> DeleteService deleteService pService_ =- DeleteService'- { _dsCluster = Nothing- , _dsService = pService_- }+ DeleteService' {_dsCluster = Nothing, _dsService = pService_} --- | The name of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed.++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed. dsCluster :: Lens' DeleteService (Maybe Text) dsCluster = lens _dsCluster (\ s a -> s{_dsCluster = a}); @@ -84,9 +83,9 @@ DeleteServiceResponse' <$> (x .?> "service") <*> (pure (fromEnum s))) -instance Hashable DeleteService+instance Hashable DeleteService where -instance NFData DeleteService+instance NFData DeleteService where instance ToHeaders DeleteService where toHeaders@@ -113,10 +112,11 @@ -- | /See:/ 'deleteServiceResponse' smart constructor. data DeleteServiceResponse = DeleteServiceResponse'- { _dsrsService :: !(Maybe ContainerService)- , _dsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dsrsService :: !(Maybe ContainerService)+ , _dsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeleteServiceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -128,11 +128,10 @@ :: Int -- ^ 'dsrsResponseStatus' -> DeleteServiceResponse deleteServiceResponse pResponseStatus_ =- DeleteServiceResponse'- { _dsrsService = Nothing- , _dsrsResponseStatus = pResponseStatus_- }+ DeleteServiceResponse'+ {_dsrsService = Nothing, _dsrsResponseStatus = pResponseStatus_} + -- | The full description of the deleted service. dsrsService :: Lens' DeleteServiceResponse (Maybe ContainerService) dsrsService = lens _dsrsService (\ s a -> s{_dsrsService = a});@@ -141,4 +140,4 @@ dsrsResponseStatus :: Lens' DeleteServiceResponse Int dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a}); -instance NFData DeleteServiceResponse+instance NFData DeleteServiceResponse where
gen/Network/AWS/ECS/DeregisterContainerInstance.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DeregisterContainerInstance--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,44 +43,46 @@ , dcirsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'deregisterContainerInstance' smart constructor. data DeregisterContainerInstance = DeregisterContainerInstance'- { _derCluster :: !(Maybe Text)- , _derForce :: !(Maybe Bool)- , _derContainerInstance :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _derCluster :: !(Maybe Text)+ , _derForce :: !(Maybe Bool)+ , _derContainerInstance :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeregisterContainerInstance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'derCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed. ----- * 'derForce' - Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the @force@ option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible. Any containers in orphaned service tasks that are registered with a Classic load balancer or an Application load balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group.+-- * 'derForce' - Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the @force@ option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible. Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group. -- -- * 'derContainerInstance' - The container instance ID or full Amazon Resource Name (ARN) of the container instance to deregister. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the @container-instance@ namespace, and then the container instance ID. For example, @arn:aws:ecs:/region/ :/aws_account_id/ :container-instance//container_instance_ID/ @ . deregisterContainerInstance :: Text -- ^ 'derContainerInstance' -> DeregisterContainerInstance deregisterContainerInstance pContainerInstance_ =- DeregisterContainerInstance'- { _derCluster = Nothing- , _derForce = Nothing- , _derContainerInstance = pContainerInstance_- }+ DeregisterContainerInstance'+ { _derCluster = Nothing+ , _derForce = Nothing+ , _derContainerInstance = pContainerInstance_+ } + -- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to deregister. If you do not specify a cluster, the default cluster is assumed. derCluster :: Lens' DeregisterContainerInstance (Maybe Text) derCluster = lens _derCluster (\ s a -> s{_derCluster = a}); --- | Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the @force@ option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible. Any containers in orphaned service tasks that are registered with a Classic load balancer or an Application load balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group.+-- | Forces the deregistration of the container instance. If you have tasks running on the container instance when you deregister it with the @force@ option, these tasks remain running until you terminate the instance or the tasks stop through some other means, but they are orphaned (no longer monitored or accounted for by Amazon ECS). If an orphaned task on your container instance is part of an Amazon ECS service, then the service scheduler starts another copy of that task, on a different container instance if possible. Any containers in orphaned service tasks that are registered with a Classic Load Balancer or an Application Load Balancer target group are deregistered, and they will begin connection draining according to the settings on the load balancer or target group. derForce :: Lens' DeregisterContainerInstance (Maybe Bool) derForce = lens _derForce (\ s a -> s{_derForce = a}); @@ -98,9 +100,9 @@ DeregisterContainerInstanceResponse' <$> (x .?> "containerInstance") <*> (pure (fromEnum s))) -instance Hashable DeregisterContainerInstance+instance Hashable DeregisterContainerInstance where -instance NFData DeregisterContainerInstance+instance NFData DeregisterContainerInstance where instance ToHeaders DeregisterContainerInstance where toHeaders@@ -128,10 +130,11 @@ -- | /See:/ 'deregisterContainerInstanceResponse' smart constructor. data DeregisterContainerInstanceResponse = DeregisterContainerInstanceResponse'- { _dcirsContainerInstance :: !(Maybe ContainerInstance)- , _dcirsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dcirsContainerInstance :: !(Maybe ContainerInstance)+ , _dcirsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeregisterContainerInstanceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -143,11 +146,10 @@ :: Int -- ^ 'dcirsResponseStatus' -> DeregisterContainerInstanceResponse deregisterContainerInstanceResponse pResponseStatus_ =- DeregisterContainerInstanceResponse'- { _dcirsContainerInstance = Nothing- , _dcirsResponseStatus = pResponseStatus_- }+ DeregisterContainerInstanceResponse'+ {_dcirsContainerInstance = Nothing, _dcirsResponseStatus = pResponseStatus_} + -- | The container instance that was deregistered. dcirsContainerInstance :: Lens' DeregisterContainerInstanceResponse (Maybe ContainerInstance) dcirsContainerInstance = lens _dcirsContainerInstance (\ s a -> s{_dcirsContainerInstance = a});@@ -157,3 +159,4 @@ dcirsResponseStatus = lens _dcirsResponseStatus (\ s a -> s{_dcirsResponseStatus = a}); instance NFData DeregisterContainerInstanceResponse+ where
gen/Network/AWS/ECS/DeregisterTaskDefinition.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DeregisterTaskDefinition--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,18 +39,19 @@ , dtdrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'deregisterTaskDefinition' smart constructor. newtype DeregisterTaskDefinition = DeregisterTaskDefinition'- { _derTaskDefinition :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _derTaskDefinition :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeregisterTaskDefinition' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -60,10 +61,9 @@ :: Text -- ^ 'derTaskDefinition' -> DeregisterTaskDefinition deregisterTaskDefinition pTaskDefinition_ =- DeregisterTaskDefinition'- { _derTaskDefinition = pTaskDefinition_- }+ DeregisterTaskDefinition' {_derTaskDefinition = pTaskDefinition_} + -- | The @family@ and @revision@ (@family:revision@ ) or full Amazon Resource Name (ARN) of the task definition to deregister. You must specify a @revision@ . derTaskDefinition :: Lens' DeregisterTaskDefinition Text derTaskDefinition = lens _derTaskDefinition (\ s a -> s{_derTaskDefinition = a});@@ -78,9 +78,9 @@ DeregisterTaskDefinitionResponse' <$> (x .?> "taskDefinition") <*> (pure (fromEnum s))) -instance Hashable DeregisterTaskDefinition+instance Hashable DeregisterTaskDefinition where -instance NFData DeregisterTaskDefinition+instance NFData DeregisterTaskDefinition where instance ToHeaders DeregisterTaskDefinition where toHeaders@@ -106,10 +106,11 @@ -- | /See:/ 'deregisterTaskDefinitionResponse' smart constructor. data DeregisterTaskDefinitionResponse = DeregisterTaskDefinitionResponse'- { _dtdrsTaskDefinition :: !(Maybe TaskDefinition)- , _dtdrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dtdrsTaskDefinition :: !(Maybe TaskDefinition)+ , _dtdrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DeregisterTaskDefinitionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -121,11 +122,10 @@ :: Int -- ^ 'dtdrsResponseStatus' -> DeregisterTaskDefinitionResponse deregisterTaskDefinitionResponse pResponseStatus_ =- DeregisterTaskDefinitionResponse'- { _dtdrsTaskDefinition = Nothing- , _dtdrsResponseStatus = pResponseStatus_- }+ DeregisterTaskDefinitionResponse'+ {_dtdrsTaskDefinition = Nothing, _dtdrsResponseStatus = pResponseStatus_} + -- | The full description of the deregistered task. dtdrsTaskDefinition :: Lens' DeregisterTaskDefinitionResponse (Maybe TaskDefinition) dtdrsTaskDefinition = lens _dtdrsTaskDefinition (\ s a -> s{_dtdrsTaskDefinition = a});@@ -135,3 +135,4 @@ dtdrsResponseStatus = lens _dtdrsResponseStatus (\ s a -> s{_dtdrsResponseStatus = a}); instance NFData DeregisterTaskDefinitionResponse+ where
gen/Network/AWS/ECS/DescribeClusters.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DescribeClusters--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -38,31 +38,30 @@ , dcrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'describeClusters' smart constructor. newtype DescribeClusters = DescribeClusters'- { _dcClusters :: Maybe [Text]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dcClusters :: Maybe [Text]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClusters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dcClusters' - A space-separated list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.+-- * 'dcClusters' - A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed. describeClusters :: DescribeClusters-describeClusters =- DescribeClusters'- { _dcClusters = Nothing- }+describeClusters = DescribeClusters' {_dcClusters = Nothing} --- | A space-separated list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed.++-- | A list of up to 100 cluster names or full cluster Amazon Resource Name (ARN) entries. If you do not specify a cluster, the default cluster is assumed. dcClusters :: Lens' DescribeClusters [Text] dcClusters = lens _dcClusters (\ s a -> s{_dcClusters = a}) . _Default . _Coerce; @@ -77,9 +76,9 @@ (x .?> "clusters" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable DescribeClusters+instance Hashable DescribeClusters where -instance NFData DescribeClusters+instance NFData DescribeClusters where instance ToHeaders DescribeClusters where toHeaders@@ -104,11 +103,12 @@ -- | /See:/ 'describeClustersResponse' smart constructor. data DescribeClustersResponse = DescribeClustersResponse'- { _dcrsFailures :: !(Maybe [Failure])- , _dcrsClusters :: !(Maybe [Cluster])- , _dcrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dcrsFailures :: !(Maybe [Failure])+ , _dcrsClusters :: !(Maybe [Cluster])+ , _dcrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeClustersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -122,12 +122,13 @@ :: Int -- ^ 'dcrsResponseStatus' -> DescribeClustersResponse describeClustersResponse pResponseStatus_ =- DescribeClustersResponse'- { _dcrsFailures = Nothing- , _dcrsClusters = Nothing- , _dcrsResponseStatus = pResponseStatus_- }+ DescribeClustersResponse'+ { _dcrsFailures = Nothing+ , _dcrsClusters = Nothing+ , _dcrsResponseStatus = pResponseStatus_+ } + -- | Any failures associated with the call. dcrsFailures :: Lens' DescribeClustersResponse [Failure] dcrsFailures = lens _dcrsFailures (\ s a -> s{_dcrsFailures = a}) . _Default . _Coerce;@@ -140,4 +141,4 @@ dcrsResponseStatus :: Lens' DescribeClustersResponse Int dcrsResponseStatus = lens _dcrsResponseStatus (\ s a -> s{_dcrsResponseStatus = a}); -instance NFData DescribeClustersResponse+instance NFData DescribeClustersResponse where
gen/Network/AWS/ECS/DescribeContainerInstances.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DescribeContainerInstances--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,39 +39,39 @@ , dcisrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'describeContainerInstances' smart constructor. data DescribeContainerInstances = DescribeContainerInstances'- { _dciCluster :: !(Maybe Text)- , _dciContainerInstances :: ![Text]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dciCluster :: !(Maybe Text)+ , _dciContainerInstances :: ![Text]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeContainerInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dciCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. ----- * 'dciContainerInstances' - A space-separated list of container instance IDs or full Amazon Resource Name (ARN) entries.+-- * 'dciContainerInstances' - A list of container instance IDs or full Amazon Resource Name (ARN) entries. describeContainerInstances :: DescribeContainerInstances describeContainerInstances =- DescribeContainerInstances'- { _dciCluster = Nothing- , _dciContainerInstances = mempty- }+ DescribeContainerInstances'+ {_dciCluster = Nothing, _dciContainerInstances = mempty} + -- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to describe. If you do not specify a cluster, the default cluster is assumed. dciCluster :: Lens' DescribeContainerInstances (Maybe Text) dciCluster = lens _dciCluster (\ s a -> s{_dciCluster = a}); --- | A space-separated list of container instance IDs or full Amazon Resource Name (ARN) entries.+-- | A list of container instance IDs or full Amazon Resource Name (ARN) entries. dciContainerInstances :: Lens' DescribeContainerInstances [Text] dciContainerInstances = lens _dciContainerInstances (\ s a -> s{_dciContainerInstances = a}) . _Coerce; @@ -87,9 +87,9 @@ (x .?> "containerInstances" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable DescribeContainerInstances+instance Hashable DescribeContainerInstances where -instance NFData DescribeContainerInstances+instance NFData DescribeContainerInstances where instance ToHeaders DescribeContainerInstances where toHeaders@@ -117,11 +117,12 @@ -- | /See:/ 'describeContainerInstancesResponse' smart constructor. data DescribeContainerInstancesResponse = DescribeContainerInstancesResponse'- { _dcisrsFailures :: !(Maybe [Failure])- , _dcisrsContainerInstances :: !(Maybe [ContainerInstance])- , _dcisrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dcisrsFailures :: !(Maybe [Failure])+ , _dcisrsContainerInstances :: !(Maybe [ContainerInstance])+ , _dcisrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeContainerInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -135,12 +136,13 @@ :: Int -- ^ 'dcisrsResponseStatus' -> DescribeContainerInstancesResponse describeContainerInstancesResponse pResponseStatus_ =- DescribeContainerInstancesResponse'- { _dcisrsFailures = Nothing- , _dcisrsContainerInstances = Nothing- , _dcisrsResponseStatus = pResponseStatus_- }+ DescribeContainerInstancesResponse'+ { _dcisrsFailures = Nothing+ , _dcisrsContainerInstances = Nothing+ , _dcisrsResponseStatus = pResponseStatus_+ } + -- | Any failures associated with the call. dcisrsFailures :: Lens' DescribeContainerInstancesResponse [Failure] dcisrsFailures = lens _dcisrsFailures (\ s a -> s{_dcisrsFailures = a}) . _Default . _Coerce;@@ -154,3 +156,4 @@ dcisrsResponseStatus = lens _dcisrsResponseStatus (\ s a -> s{_dcisrsResponseStatus = a}); instance NFData DescribeContainerInstancesResponse+ where
gen/Network/AWS/ECS/DescribeServices.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DescribeServices--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,35 +39,33 @@ , dssrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'describeServices' smart constructor. data DescribeServices = DescribeServices'- { _dCluster :: !(Maybe Text)- , _dServices :: ![Text]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dCluster :: !(Maybe Text)+ , _dServices :: ![Text]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeServices' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dCluster' - The name of the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed.+-- * 'dCluster' - The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed. -- -- * 'dServices' - A list of services to describe. You may specify up to 10 services to describe in a single operation. describeServices :: DescribeServices-describeServices =- DescribeServices'- { _dCluster = Nothing- , _dServices = mempty- }+describeServices = DescribeServices' {_dCluster = Nothing, _dServices = mempty} --- | The name of the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed.++-- | The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed. dCluster :: Lens' DescribeServices (Maybe Text) dCluster = lens _dCluster (\ s a -> s{_dCluster = a}); @@ -86,9 +84,9 @@ (x .?> "services" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable DescribeServices+instance Hashable DescribeServices where -instance NFData DescribeServices+instance NFData DescribeServices where instance ToHeaders DescribeServices where toHeaders@@ -115,11 +113,12 @@ -- | /See:/ 'describeServicesResponse' smart constructor. data DescribeServicesResponse = DescribeServicesResponse'- { _dssrsFailures :: !(Maybe [Failure])- , _dssrsServices :: !(Maybe [ContainerService])- , _dssrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dssrsFailures :: !(Maybe [Failure])+ , _dssrsServices :: !(Maybe [ContainerService])+ , _dssrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeServicesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -133,12 +132,13 @@ :: Int -- ^ 'dssrsResponseStatus' -> DescribeServicesResponse describeServicesResponse pResponseStatus_ =- DescribeServicesResponse'- { _dssrsFailures = Nothing- , _dssrsServices = Nothing- , _dssrsResponseStatus = pResponseStatus_- }+ DescribeServicesResponse'+ { _dssrsFailures = Nothing+ , _dssrsServices = Nothing+ , _dssrsResponseStatus = pResponseStatus_+ } + -- | Any failures associated with the call. dssrsFailures :: Lens' DescribeServicesResponse [Failure] dssrsFailures = lens _dssrsFailures (\ s a -> s{_dssrsFailures = a}) . _Default . _Coerce;@@ -151,4 +151,4 @@ dssrsResponseStatus :: Lens' DescribeServicesResponse Int dssrsResponseStatus = lens _dssrsResponseStatus (\ s a -> s{_dssrsResponseStatus = a}); -instance NFData DescribeServicesResponse+instance NFData DescribeServicesResponse where
gen/Network/AWS/ECS/DescribeTaskDefinition.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DescribeTaskDefinition--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -37,18 +37,19 @@ , desrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'describeTaskDefinition' smart constructor. newtype DescribeTaskDefinition = DescribeTaskDefinition'- { _dtdTaskDefinition :: Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dtdTaskDefinition :: Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTaskDefinition' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -58,10 +59,9 @@ :: Text -- ^ 'dtdTaskDefinition' -> DescribeTaskDefinition describeTaskDefinition pTaskDefinition_ =- DescribeTaskDefinition'- { _dtdTaskDefinition = pTaskDefinition_- }+ DescribeTaskDefinition' {_dtdTaskDefinition = pTaskDefinition_} + -- | The @family@ for the latest @ACTIVE@ revision, @family@ and @revision@ (@family:revision@ ) for a specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to describe. dtdTaskDefinition :: Lens' DescribeTaskDefinition Text dtdTaskDefinition = lens _dtdTaskDefinition (\ s a -> s{_dtdTaskDefinition = a});@@ -76,9 +76,9 @@ DescribeTaskDefinitionResponse' <$> (x .?> "taskDefinition") <*> (pure (fromEnum s))) -instance Hashable DescribeTaskDefinition+instance Hashable DescribeTaskDefinition where -instance NFData DescribeTaskDefinition+instance NFData DescribeTaskDefinition where instance ToHeaders DescribeTaskDefinition where toHeaders@@ -104,10 +104,11 @@ -- | /See:/ 'describeTaskDefinitionResponse' smart constructor. data DescribeTaskDefinitionResponse = DescribeTaskDefinitionResponse'- { _desrsTaskDefinition :: !(Maybe TaskDefinition)- , _desrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _desrsTaskDefinition :: !(Maybe TaskDefinition)+ , _desrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTaskDefinitionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -119,11 +120,10 @@ :: Int -- ^ 'desrsResponseStatus' -> DescribeTaskDefinitionResponse describeTaskDefinitionResponse pResponseStatus_ =- DescribeTaskDefinitionResponse'- { _desrsTaskDefinition = Nothing- , _desrsResponseStatus = pResponseStatus_- }+ DescribeTaskDefinitionResponse'+ {_desrsTaskDefinition = Nothing, _desrsResponseStatus = pResponseStatus_} + -- | The full task definition description. desrsTaskDefinition :: Lens' DescribeTaskDefinitionResponse (Maybe TaskDefinition) desrsTaskDefinition = lens _desrsTaskDefinition (\ s a -> s{_desrsTaskDefinition = a});@@ -132,4 +132,4 @@ desrsResponseStatus :: Lens' DescribeTaskDefinitionResponse Int desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a}); -instance NFData DescribeTaskDefinitionResponse+instance NFData DescribeTaskDefinitionResponse where
gen/Network/AWS/ECS/DescribeTasks.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DescribeTasks--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,39 +39,37 @@ , dtrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'describeTasks' smart constructor. data DescribeTasks = DescribeTasks'- { _dtCluster :: !(Maybe Text)- , _dtTasks :: ![Text]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dtCluster :: !(Maybe Text)+ , _dtTasks :: ![Text]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dtCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to describe. If you do not specify a cluster, the default cluster is assumed. ----- * 'dtTasks' - A space-separated list of task IDs or full Amazon Resource Name (ARN) entries.+-- * 'dtTasks' - A list of up to 100 task IDs or full Amazon Resource Name (ARN) entries. describeTasks :: DescribeTasks-describeTasks =- DescribeTasks'- { _dtCluster = Nothing- , _dtTasks = mempty- }+describeTasks = DescribeTasks' {_dtCluster = Nothing, _dtTasks = mempty} + -- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to describe. If you do not specify a cluster, the default cluster is assumed. dtCluster :: Lens' DescribeTasks (Maybe Text) dtCluster = lens _dtCluster (\ s a -> s{_dtCluster = a}); --- | A space-separated list of task IDs or full Amazon Resource Name (ARN) entries.+-- | A list of up to 100 task IDs or full Amazon Resource Name (ARN) entries. dtTasks :: Lens' DescribeTasks [Text] dtTasks = lens _dtTasks (\ s a -> s{_dtTasks = a}) . _Coerce; @@ -86,9 +84,9 @@ (x .?> "tasks" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable DescribeTasks+instance Hashable DescribeTasks where -instance NFData DescribeTasks+instance NFData DescribeTasks where instance ToHeaders DescribeTasks where toHeaders@@ -115,11 +113,12 @@ -- | /See:/ 'describeTasksResponse' smart constructor. data DescribeTasksResponse = DescribeTasksResponse'- { _dtrsFailures :: !(Maybe [Failure])- , _dtrsTasks :: !(Maybe [Task])- , _dtrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dtrsFailures :: !(Maybe [Failure])+ , _dtrsTasks :: !(Maybe [Task])+ , _dtrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DescribeTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -133,12 +132,13 @@ :: Int -- ^ 'dtrsResponseStatus' -> DescribeTasksResponse describeTasksResponse pResponseStatus_ =- DescribeTasksResponse'- { _dtrsFailures = Nothing- , _dtrsTasks = Nothing- , _dtrsResponseStatus = pResponseStatus_- }+ DescribeTasksResponse'+ { _dtrsFailures = Nothing+ , _dtrsTasks = Nothing+ , _dtrsResponseStatus = pResponseStatus_+ } + -- | Any failures associated with the call. dtrsFailures :: Lens' DescribeTasksResponse [Failure] dtrsFailures = lens _dtrsFailures (\ s a -> s{_dtrsFailures = a}) . _Default . _Coerce;@@ -151,4 +151,4 @@ dtrsResponseStatus :: Lens' DescribeTasksResponse Int dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a}); -instance NFData DescribeTasksResponse+instance NFData DescribeTasksResponse where
gen/Network/AWS/ECS/DiscoverPollEndpoint.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.DiscoverPollEndpoint--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -39,35 +39,34 @@ , dpersResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'discoverPollEndpoint' smart constructor. data DiscoverPollEndpoint = DiscoverPollEndpoint'- { _dpeCluster :: !(Maybe Text)- , _dpeContainerInstance :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dpeCluster :: !(Maybe Text)+ , _dpeContainerInstance :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DiscoverPollEndpoint' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: ----- * 'dpeCluster' - The cluster that the container instance belongs to.+-- * 'dpeCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs to. -- -- * 'dpeContainerInstance' - The container instance ID or full Amazon Resource Name (ARN) of the container instance. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the @container-instance@ namespace, and then the container instance ID. For example, @arn:aws:ecs:/region/ :/aws_account_id/ :container-instance//container_instance_ID/ @ . discoverPollEndpoint :: DiscoverPollEndpoint discoverPollEndpoint =- DiscoverPollEndpoint'- { _dpeCluster = Nothing- , _dpeContainerInstance = Nothing- }+ DiscoverPollEndpoint' {_dpeCluster = Nothing, _dpeContainerInstance = Nothing} --- | The cluster that the container instance belongs to.++-- | The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs to. dpeCluster :: Lens' DiscoverPollEndpoint (Maybe Text) dpeCluster = lens _dpeCluster (\ s a -> s{_dpeCluster = a}); @@ -86,9 +85,9 @@ (x .?> "telemetryEndpoint") <*> (x .?> "endpoint") <*> (pure (fromEnum s))) -instance Hashable DiscoverPollEndpoint+instance Hashable DiscoverPollEndpoint where -instance NFData DiscoverPollEndpoint+instance NFData DiscoverPollEndpoint where instance ToHeaders DiscoverPollEndpoint where toHeaders@@ -115,11 +114,12 @@ -- | /See:/ 'discoverPollEndpointResponse' smart constructor. data DiscoverPollEndpointResponse = DiscoverPollEndpointResponse'- { _dpersTelemetryEndpoint :: !(Maybe Text)- , _dpersEndpoint :: !(Maybe Text)- , _dpersResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _dpersTelemetryEndpoint :: !(Maybe Text)+ , _dpersEndpoint :: !(Maybe Text)+ , _dpersResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'DiscoverPollEndpointResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -133,12 +133,13 @@ :: Int -- ^ 'dpersResponseStatus' -> DiscoverPollEndpointResponse discoverPollEndpointResponse pResponseStatus_ =- DiscoverPollEndpointResponse'- { _dpersTelemetryEndpoint = Nothing- , _dpersEndpoint = Nothing- , _dpersResponseStatus = pResponseStatus_- }+ DiscoverPollEndpointResponse'+ { _dpersTelemetryEndpoint = Nothing+ , _dpersEndpoint = Nothing+ , _dpersResponseStatus = pResponseStatus_+ } + -- | The telemetry endpoint for the Amazon ECS agent. dpersTelemetryEndpoint :: Lens' DiscoverPollEndpointResponse (Maybe Text) dpersTelemetryEndpoint = lens _dpersTelemetryEndpoint (\ s a -> s{_dpersTelemetryEndpoint = a});@@ -151,4 +152,4 @@ dpersResponseStatus :: Lens' DiscoverPollEndpointResponse Int dpersResponseStatus = lens _dpersResponseStatus (\ s a -> s{_dpersResponseStatus = a}); -instance NFData DiscoverPollEndpointResponse+instance NFData DiscoverPollEndpointResponse where
+ gen/Network/AWS/ECS/ListAttributes.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECS.ListAttributes+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the attributes for Amazon ECS resources within a specified target type and cluster. When you specify a target type and cluster, @ListAttributes@ returns a list of attribute objects, one for each attribute on each resource. You can filter the list of results to a single attribute name to only return results that have that name. You can also filter the results by attribute name and value, for example, to see which container instances in a cluster are running a Linux AMI (@ecs.os-type=linux@ ).+--+--+module Network.AWS.ECS.ListAttributes+ (+ -- * Creating a Request+ listAttributes+ , ListAttributes+ -- * Request Lenses+ , laAttributeValue+ , laCluster+ , laNextToken+ , laAttributeName+ , laMaxResults+ , laTargetType++ -- * Destructuring the Response+ , listAttributesResponse+ , ListAttributesResponse+ -- * Response Lenses+ , larsNextToken+ , larsAttributes+ , larsResponseStatus+ ) where++import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listAttributes' smart constructor.+data ListAttributes = ListAttributes'+ { _laAttributeValue :: !(Maybe Text)+ , _laCluster :: !(Maybe Text)+ , _laNextToken :: !(Maybe Text)+ , _laAttributeName :: !(Maybe Text)+ , _laMaxResults :: !(Maybe Int)+ , _laTargetType :: !TargetType+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'laAttributeValue' - The value of the attribute with which to filter results. You must also specify an attribute name to use this parameter.+--+-- * 'laCluster' - The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. If you do not specify a cluster, the default cluster is assumed.+--+-- * 'laNextToken' - The @nextToken@ value returned from a previous paginated @ListAttributes@ 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.+--+-- * 'laAttributeName' - The name of the attribute with which to filter the results.+--+-- * 'laMaxResults' - The maximum number of cluster results returned by @ListAttributes@ in paginated output. When this parameter is used, @ListAttributes@ 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 @ListAttributes@ request with the returned @nextToken@ value. This value can be between 1 and 100. If this parameter is not used, then @ListAttributes@ returns up to 100 results and a @nextToken@ value if applicable.+--+-- * 'laTargetType' - The type of the target with which to list attributes.+listAttributes+ :: TargetType -- ^ 'laTargetType'+ -> ListAttributes+listAttributes pTargetType_ =+ ListAttributes'+ { _laAttributeValue = Nothing+ , _laCluster = Nothing+ , _laNextToken = Nothing+ , _laAttributeName = Nothing+ , _laMaxResults = Nothing+ , _laTargetType = pTargetType_+ }+++-- | The value of the attribute with which to filter results. You must also specify an attribute name to use this parameter.+laAttributeValue :: Lens' ListAttributes (Maybe Text)+laAttributeValue = lens _laAttributeValue (\ s a -> s{_laAttributeValue = a});++-- | The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. If you do not specify a cluster, the default cluster is assumed.+laCluster :: Lens' ListAttributes (Maybe Text)+laCluster = lens _laCluster (\ s a -> s{_laCluster = a});++-- | The @nextToken@ value returned from a previous paginated @ListAttributes@ 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.+laNextToken :: Lens' ListAttributes (Maybe Text)+laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});++-- | The name of the attribute with which to filter the results.+laAttributeName :: Lens' ListAttributes (Maybe Text)+laAttributeName = lens _laAttributeName (\ s a -> s{_laAttributeName = a});++-- | The maximum number of cluster results returned by @ListAttributes@ in paginated output. When this parameter is used, @ListAttributes@ 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 @ListAttributes@ request with the returned @nextToken@ value. This value can be between 1 and 100. If this parameter is not used, then @ListAttributes@ returns up to 100 results and a @nextToken@ value if applicable.+laMaxResults :: Lens' ListAttributes (Maybe Int)+laMaxResults = lens _laMaxResults (\ s a -> s{_laMaxResults = a});++-- | The type of the target with which to list attributes.+laTargetType :: Lens' ListAttributes TargetType+laTargetType = lens _laTargetType (\ s a -> s{_laTargetType = a});++instance AWSRequest ListAttributes where+ type Rs ListAttributes = ListAttributesResponse+ request = postJSON ecs+ response+ = receiveJSON+ (\ s h x ->+ ListAttributesResponse' <$>+ (x .?> "nextToken") <*>+ (x .?> "attributes" .!@ mempty)+ <*> (pure (fromEnum s)))++instance Hashable ListAttributes where++instance NFData ListAttributes where++instance ToHeaders ListAttributes where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerServiceV20141113.ListAttributes"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListAttributes where+ toJSON ListAttributes'{..}+ = object+ (catMaybes+ [("attributeValue" .=) <$> _laAttributeValue,+ ("cluster" .=) <$> _laCluster,+ ("nextToken" .=) <$> _laNextToken,+ ("attributeName" .=) <$> _laAttributeName,+ ("maxResults" .=) <$> _laMaxResults,+ Just ("targetType" .= _laTargetType)])++instance ToPath ListAttributes where+ toPath = const "/"++instance ToQuery ListAttributes where+ toQuery = const mempty++-- | /See:/ 'listAttributesResponse' smart constructor.+data ListAttributesResponse = ListAttributesResponse'+ { _larsNextToken :: !(Maybe Text)+ , _larsAttributes :: !(Maybe [Attribute])+ , _larsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'larsNextToken' - The @nextToken@ value to include in a future @ListAttributes@ request. When the results of a @ListAttributes@ 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.+--+-- * 'larsAttributes' - A list of attribute objects that meet the criteria of the request.+--+-- * 'larsResponseStatus' - -- | The response status code.+listAttributesResponse+ :: Int -- ^ 'larsResponseStatus'+ -> ListAttributesResponse+listAttributesResponse pResponseStatus_ =+ ListAttributesResponse'+ { _larsNextToken = Nothing+ , _larsAttributes = Nothing+ , _larsResponseStatus = pResponseStatus_+ }+++-- | The @nextToken@ value to include in a future @ListAttributes@ request. When the results of a @ListAttributes@ 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.+larsNextToken :: Lens' ListAttributesResponse (Maybe Text)+larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});++-- | A list of attribute objects that meet the criteria of the request.+larsAttributes :: Lens' ListAttributesResponse [Attribute]+larsAttributes = lens _larsAttributes (\ s a -> s{_larsAttributes = a}) . _Default . _Coerce;++-- | -- | The response status code.+larsResponseStatus :: Lens' ListAttributesResponse Int+larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});++instance NFData ListAttributesResponse where
gen/Network/AWS/ECS/ListClusters.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.ListClusters--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -41,20 +41,21 @@ , lcrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'listClusters' smart constructor. data ListClusters = ListClusters'- { _lcNextToken :: !(Maybe Text)- , _lcMaxResults :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lcNextToken :: !(Maybe Text)+ , _lcMaxResults :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListClusters' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,12 +65,9 @@ -- * 'lcMaxResults' - The maximum number of cluster results returned by @ListClusters@ in paginated output. When this parameter is used, @ListClusters@ only returns @maxResults@ results in a single page along with a @nextToken@ response element. The remaining results of the initial request can be seen by sending another @ListClusters@ request with the returned @nextToken@ value. This value can be between 1 and 100. If this parameter is not used, then @ListClusters@ returns up to 100 results and a @nextToken@ value if applicable. listClusters :: ListClusters-listClusters =- ListClusters'- { _lcNextToken = Nothing- , _lcMaxResults = Nothing- }+listClusters = ListClusters' {_lcNextToken = Nothing, _lcMaxResults = Nothing} + -- | The @nextToken@ value returned from a previous paginated @ListClusters@ request where @maxResults@ was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the @nextToken@ value. This value is @null@ when there are no more results to return. lcNextToken :: Lens' ListClusters (Maybe Text) lcNextToken = lens _lcNextToken (\ s a -> s{_lcNextToken = a});@@ -96,9 +94,9 @@ (x .?> "nextToken") <*> (pure (fromEnum s))) -instance Hashable ListClusters+instance Hashable ListClusters where -instance NFData ListClusters+instance NFData ListClusters where instance ToHeaders ListClusters where toHeaders@@ -125,11 +123,12 @@ -- | /See:/ 'listClustersResponse' smart constructor. data ListClustersResponse = ListClustersResponse'- { _lcrsClusterARNs :: !(Maybe [Text])- , _lcrsNextToken :: !(Maybe Text)- , _lcrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lcrsClusterARNs :: !(Maybe [Text])+ , _lcrsNextToken :: !(Maybe Text)+ , _lcrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListClustersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -143,12 +142,13 @@ :: Int -- ^ 'lcrsResponseStatus' -> ListClustersResponse listClustersResponse pResponseStatus_ =- ListClustersResponse'- { _lcrsClusterARNs = Nothing- , _lcrsNextToken = Nothing- , _lcrsResponseStatus = pResponseStatus_- }+ ListClustersResponse'+ { _lcrsClusterARNs = Nothing+ , _lcrsNextToken = Nothing+ , _lcrsResponseStatus = pResponseStatus_+ } + -- | The list of full Amazon Resource Name (ARN) entries for each cluster associated with your account. lcrsClusterARNs :: Lens' ListClustersResponse [Text] lcrsClusterARNs = lens _lcrsClusterARNs (\ s a -> s{_lcrsClusterARNs = a}) . _Default . _Coerce;@@ -161,4 +161,4 @@ lcrsResponseStatus :: Lens' ListClustersResponse Int lcrsResponseStatus = lens _lcrsResponseStatus (\ s a -> s{_lcrsResponseStatus = a}); -instance NFData ListClustersResponse+instance NFData ListClustersResponse where
gen/Network/AWS/ECS/ListContainerInstances.hs view
@@ -12,13 +12,13 @@ -- | -- Module : Network.AWS.ECS.ListContainerInstances--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Returns a list of container instances in a specified cluster.+-- Returns a list of container instances in a specified cluster. You can filter the results of a @ListContainerInstances@ operation with cluster query language statements inside the @filter@ parameter. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ . -- -- --@@ -29,8 +29,10 @@ listContainerInstances , ListContainerInstances -- * Request Lenses+ , lciStatus , lciCluster , lciNextToken+ , lciFilter , lciMaxResults -- * Destructuring the Response@@ -42,39 +44,53 @@ , lcirsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'listContainerInstances' smart constructor. data ListContainerInstances = ListContainerInstances'- { _lciCluster :: !(Maybe Text)- , _lciNextToken :: !(Maybe Text)- , _lciMaxResults :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lciStatus :: !(Maybe ContainerInstanceStatus)+ , _lciCluster :: !(Maybe Text)+ , _lciNextToken :: !(Maybe Text)+ , _lciFilter :: !(Maybe Text)+ , _lciMaxResults :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListContainerInstances' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'lciStatus' - Filters the container instances by status. For example, if you specify the @DRAINING@ status, the results include only container instances that have been set to @DRAINING@ using 'UpdateContainerInstancesState' . If you do not specify this parameter, the default is to include container instances set to @ACTIVE@ and @DRAINING@ .+-- -- * 'lciCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed. -- -- * 'lciNextToken' - The @nextToken@ value returned from a previous paginated @ListContainerInstances@ request where @maxResults@ was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the @nextToken@ value. This value is @null@ when there are no more results to return. --+-- * 'lciFilter' - You can filter the results of a @ListContainerInstances@ operation with cluster query language statements. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ .+-- -- * 'lciMaxResults' - The maximum number of container instance results returned by @ListContainerInstances@ in paginated output. When this parameter is used, @ListContainerInstances@ only returns @maxResults@ results in a single page along with a @nextToken@ response element. The remaining results of the initial request can be seen by sending another @ListContainerInstances@ request with the returned @nextToken@ value. This value can be between 1 and 100. If this parameter is not used, then @ListContainerInstances@ returns up to 100 results and a @nextToken@ value if applicable. listContainerInstances :: ListContainerInstances listContainerInstances =- ListContainerInstances'- { _lciCluster = Nothing- , _lciNextToken = Nothing- , _lciMaxResults = Nothing- }+ ListContainerInstances'+ { _lciStatus = Nothing+ , _lciCluster = Nothing+ , _lciNextToken = Nothing+ , _lciFilter = Nothing+ , _lciMaxResults = Nothing+ } ++-- | Filters the container instances by status. For example, if you specify the @DRAINING@ status, the results include only container instances that have been set to @DRAINING@ using 'UpdateContainerInstancesState' . If you do not specify this parameter, the default is to include container instances set to @ACTIVE@ and @DRAINING@ .+lciStatus :: Lens' ListContainerInstances (Maybe ContainerInstanceStatus)+lciStatus = lens _lciStatus (\ s a -> s{_lciStatus = a});+ -- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to list. If you do not specify a cluster, the default cluster is assumed. lciCluster :: Lens' ListContainerInstances (Maybe Text) lciCluster = lens _lciCluster (\ s a -> s{_lciCluster = a});@@ -83,6 +99,10 @@ lciNextToken :: Lens' ListContainerInstances (Maybe Text) lciNextToken = lens _lciNextToken (\ s a -> s{_lciNextToken = a}); +-- | You can filter the results of a @ListContainerInstances@ operation with cluster query language statements. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ .+lciFilter :: Lens' ListContainerInstances (Maybe Text)+lciFilter = lens _lciFilter (\ s a -> s{_lciFilter = a});+ -- | The maximum number of container instance results returned by @ListContainerInstances@ in paginated output. When this parameter is used, @ListContainerInstances@ only returns @maxResults@ results in a single page along with a @nextToken@ response element. The remaining results of the initial request can be seen by sending another @ListContainerInstances@ request with the returned @nextToken@ value. This value can be between 1 and 100. If this parameter is not used, then @ListContainerInstances@ returns up to 100 results and a @nextToken@ value if applicable. lciMaxResults :: Lens' ListContainerInstances (Maybe Int) lciMaxResults = lens _lciMaxResults (\ s a -> s{_lciMaxResults = a});@@ -106,9 +126,9 @@ (x .?> "nextToken") <*> (pure (fromEnum s))) -instance Hashable ListContainerInstances+instance Hashable ListContainerInstances where -instance NFData ListContainerInstances+instance NFData ListContainerInstances where instance ToHeaders ListContainerInstances where toHeaders@@ -124,8 +144,10 @@ toJSON ListContainerInstances'{..} = object (catMaybes- [("cluster" .=) <$> _lciCluster,+ [("status" .=) <$> _lciStatus,+ ("cluster" .=) <$> _lciCluster, ("nextToken" .=) <$> _lciNextToken,+ ("filter" .=) <$> _lciFilter, ("maxResults" .=) <$> _lciMaxResults]) instance ToPath ListContainerInstances where@@ -136,11 +158,12 @@ -- | /See:/ 'listContainerInstancesResponse' smart constructor. data ListContainerInstancesResponse = ListContainerInstancesResponse'- { _lcirsContainerInstanceARNs :: !(Maybe [Text])- , _lcirsNextToken :: !(Maybe Text)- , _lcirsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lcirsContainerInstanceARNs :: !(Maybe [Text])+ , _lcirsNextToken :: !(Maybe Text)+ , _lcirsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListContainerInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -154,12 +177,13 @@ :: Int -- ^ 'lcirsResponseStatus' -> ListContainerInstancesResponse listContainerInstancesResponse pResponseStatus_ =- ListContainerInstancesResponse'- { _lcirsContainerInstanceARNs = Nothing- , _lcirsNextToken = Nothing- , _lcirsResponseStatus = pResponseStatus_- }+ ListContainerInstancesResponse'+ { _lcirsContainerInstanceARNs = Nothing+ , _lcirsNextToken = Nothing+ , _lcirsResponseStatus = pResponseStatus_+ } + -- | The list of container instances with full Amazon Resource Name (ARN) entries for each container instance associated with the specified cluster. lcirsContainerInstanceARNs :: Lens' ListContainerInstancesResponse [Text] lcirsContainerInstanceARNs = lens _lcirsContainerInstanceARNs (\ s a -> s{_lcirsContainerInstanceARNs = a}) . _Default . _Coerce;@@ -172,4 +196,4 @@ lcirsResponseStatus :: Lens' ListContainerInstancesResponse Int lcirsResponseStatus = lens _lcirsResponseStatus (\ s a -> s{_lcirsResponseStatus = a}); -instance NFData ListContainerInstancesResponse+instance NFData ListContainerInstancesResponse where
gen/Network/AWS/ECS/ListServices.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.ListServices--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -42,21 +42,22 @@ , lsrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'listServices' smart constructor. data ListServices = ListServices'- { _lsCluster :: !(Maybe Text)- , _lsNextToken :: !(Maybe Text)- , _lsMaxResults :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lsCluster :: !(Maybe Text)+ , _lsNextToken :: !(Maybe Text)+ , _lsMaxResults :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListServices' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -65,16 +66,14 @@ -- -- * 'lsNextToken' - The @nextToken@ value returned from a previous paginated @ListServices@ 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. ----- * 'lsMaxResults' - The maximum number of container instance results returned by @ListServices@ in paginated output. When this parameter is used, @ListServices@ 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 @ListServices@ request with the returned @nextToken@ value. This value can be between 1 and 10. If this parameter is not used, then @ListServices@ returns up to 10 results and a @nextToken@ value if applicable.+-- * 'lsMaxResults' - The maximum number of service results returned by @ListServices@ in paginated output. When this parameter is used, @ListServices@ 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 @ListServices@ request with the returned @nextToken@ value. This value can be between 1 and 10. If this parameter is not used, then @ListServices@ returns up to 10 results and a @nextToken@ value if applicable. listServices :: ListServices listServices =- ListServices'- { _lsCluster = Nothing- , _lsNextToken = Nothing- , _lsMaxResults = Nothing- }+ ListServices'+ {_lsCluster = Nothing, _lsNextToken = Nothing, _lsMaxResults = Nothing} + -- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the services to list. If you do not specify a cluster, the default cluster is assumed. lsCluster :: Lens' ListServices (Maybe Text) lsCluster = lens _lsCluster (\ s a -> s{_lsCluster = a});@@ -83,7 +82,7 @@ lsNextToken :: Lens' ListServices (Maybe Text) lsNextToken = lens _lsNextToken (\ s a -> s{_lsNextToken = a}); --- | The maximum number of container instance results returned by @ListServices@ in paginated output. When this parameter is used, @ListServices@ 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 @ListServices@ request with the returned @nextToken@ value. This value can be between 1 and 10. If this parameter is not used, then @ListServices@ returns up to 10 results and a @nextToken@ value if applicable.+-- | The maximum number of service results returned by @ListServices@ in paginated output. When this parameter is used, @ListServices@ 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 @ListServices@ request with the returned @nextToken@ value. This value can be between 1 and 10. If this parameter is not used, then @ListServices@ returns up to 10 results and a @nextToken@ value if applicable. lsMaxResults :: Lens' ListServices (Maybe Int) lsMaxResults = lens _lsMaxResults (\ s a -> s{_lsMaxResults = a}); @@ -105,9 +104,9 @@ (x .?> "nextToken") <*> (pure (fromEnum s))) -instance Hashable ListServices+instance Hashable ListServices where -instance NFData ListServices+instance NFData ListServices where instance ToHeaders ListServices where toHeaders@@ -135,11 +134,12 @@ -- | /See:/ 'listServicesResponse' smart constructor. data ListServicesResponse = ListServicesResponse'- { _lsrsServiceARNs :: !(Maybe [Text])- , _lsrsNextToken :: !(Maybe Text)- , _lsrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _lsrsServiceARNs :: !(Maybe [Text])+ , _lsrsNextToken :: !(Maybe Text)+ , _lsrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListServicesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -153,12 +153,13 @@ :: Int -- ^ 'lsrsResponseStatus' -> ListServicesResponse listServicesResponse pResponseStatus_ =- ListServicesResponse'- { _lsrsServiceARNs = Nothing- , _lsrsNextToken = Nothing- , _lsrsResponseStatus = pResponseStatus_- }+ ListServicesResponse'+ { _lsrsServiceARNs = Nothing+ , _lsrsNextToken = Nothing+ , _lsrsResponseStatus = pResponseStatus_+ } + -- | The list of full Amazon Resource Name (ARN) entries for each service associated with the specified cluster. lsrsServiceARNs :: Lens' ListServicesResponse [Text] lsrsServiceARNs = lens _lsrsServiceARNs (\ s a -> s{_lsrsServiceARNs = a}) . _Default . _Coerce;@@ -171,4 +172,4 @@ lsrsResponseStatus :: Lens' ListServicesResponse Int lsrsResponseStatus = lens _lsrsResponseStatus (\ s a -> s{_lsrsResponseStatus = a}); -instance NFData ListServicesResponse+instance NFData ListServicesResponse where
gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.ListTaskDefinitionFamilies--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -45,22 +45,23 @@ , ltdfrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'listTaskDefinitionFamilies' smart constructor. data ListTaskDefinitionFamilies = ListTaskDefinitionFamilies'- { _ltdfStatus :: !(Maybe TaskDefinitionFamilyStatus)- , _ltdfFamilyPrefix :: !(Maybe Text)- , _ltdfNextToken :: !(Maybe Text)- , _ltdfMaxResults :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ltdfStatus :: !(Maybe TaskDefinitionFamilyStatus)+ , _ltdfFamilyPrefix :: !(Maybe Text)+ , _ltdfNextToken :: !(Maybe Text)+ , _ltdfMaxResults :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTaskDefinitionFamilies' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -75,13 +76,14 @@ listTaskDefinitionFamilies :: ListTaskDefinitionFamilies listTaskDefinitionFamilies =- ListTaskDefinitionFamilies'- { _ltdfStatus = Nothing- , _ltdfFamilyPrefix = Nothing- , _ltdfNextToken = Nothing- , _ltdfMaxResults = Nothing- }+ ListTaskDefinitionFamilies'+ { _ltdfStatus = Nothing+ , _ltdfFamilyPrefix = Nothing+ , _ltdfNextToken = Nothing+ , _ltdfMaxResults = Nothing+ } + -- | The task definition family status with which to filter the @ListTaskDefinitionFamilies@ results. By default, both @ACTIVE@ and @INACTIVE@ task definition families are listed. If this parameter is set to @ACTIVE@ , only task definition families that have an @ACTIVE@ task definition revision are returned. If this parameter is set to @INACTIVE@ , only task definition families that do not have any @ACTIVE@ task definition revisions are returned. If you paginate the resulting output, be sure to keep the @status@ value constant in each subsequent request. ltdfStatus :: Lens' ListTaskDefinitionFamilies (Maybe TaskDefinitionFamilyStatus) ltdfStatus = lens _ltdfStatus (\ s a -> s{_ltdfStatus = a});@@ -116,9 +118,9 @@ (x .?> "families" .!@ mempty) <*> (x .?> "nextToken") <*> (pure (fromEnum s))) -instance Hashable ListTaskDefinitionFamilies+instance Hashable ListTaskDefinitionFamilies where -instance NFData ListTaskDefinitionFamilies+instance NFData ListTaskDefinitionFamilies where instance ToHeaders ListTaskDefinitionFamilies where toHeaders@@ -147,11 +149,12 @@ -- | /See:/ 'listTaskDefinitionFamiliesResponse' smart constructor. data ListTaskDefinitionFamiliesResponse = ListTaskDefinitionFamiliesResponse'- { _ltdfrsFamilies :: !(Maybe [Text])- , _ltdfrsNextToken :: !(Maybe Text)- , _ltdfrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ltdfrsFamilies :: !(Maybe [Text])+ , _ltdfrsNextToken :: !(Maybe Text)+ , _ltdfrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTaskDefinitionFamiliesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -165,12 +168,13 @@ :: Int -- ^ 'ltdfrsResponseStatus' -> ListTaskDefinitionFamiliesResponse listTaskDefinitionFamiliesResponse pResponseStatus_ =- ListTaskDefinitionFamiliesResponse'- { _ltdfrsFamilies = Nothing- , _ltdfrsNextToken = Nothing- , _ltdfrsResponseStatus = pResponseStatus_- }+ ListTaskDefinitionFamiliesResponse'+ { _ltdfrsFamilies = Nothing+ , _ltdfrsNextToken = Nothing+ , _ltdfrsResponseStatus = pResponseStatus_+ } + -- | The list of task definition family names that match the @ListTaskDefinitionFamilies@ request. ltdfrsFamilies :: Lens' ListTaskDefinitionFamiliesResponse [Text] ltdfrsFamilies = lens _ltdfrsFamilies (\ s a -> s{_ltdfrsFamilies = a}) . _Default . _Coerce;@@ -184,3 +188,4 @@ ltdfrsResponseStatus = lens _ltdfrsResponseStatus (\ s a -> s{_ltdfrsResponseStatus = a}); instance NFData ListTaskDefinitionFamiliesResponse+ where
gen/Network/AWS/ECS/ListTaskDefinitions.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.ListTaskDefinitions--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -44,23 +44,24 @@ , ltdrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'listTaskDefinitions' smart constructor. data ListTaskDefinitions = ListTaskDefinitions'- { _ltdStatus :: !(Maybe TaskDefinitionStatus)- , _ltdFamilyPrefix :: !(Maybe Text)- , _ltdNextToken :: !(Maybe Text)- , _ltdSort :: !(Maybe SortOrder)- , _ltdMaxResults :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ltdStatus :: !(Maybe TaskDefinitionStatus)+ , _ltdFamilyPrefix :: !(Maybe Text)+ , _ltdNextToken :: !(Maybe Text)+ , _ltdSort :: !(Maybe SortOrder)+ , _ltdMaxResults :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTaskDefinitions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -77,14 +78,15 @@ listTaskDefinitions :: ListTaskDefinitions listTaskDefinitions =- ListTaskDefinitions'- { _ltdStatus = Nothing- , _ltdFamilyPrefix = Nothing- , _ltdNextToken = Nothing- , _ltdSort = Nothing- , _ltdMaxResults = Nothing- }+ ListTaskDefinitions'+ { _ltdStatus = Nothing+ , _ltdFamilyPrefix = Nothing+ , _ltdNextToken = Nothing+ , _ltdSort = Nothing+ , _ltdMaxResults = Nothing+ } + -- | The task definition status with which to filter the @ListTaskDefinitions@ results. By default, only @ACTIVE@ task definitions are listed. By setting this parameter to @INACTIVE@ , you can view task definitions that are @INACTIVE@ as long as an active task or service still references them. If you paginate the resulting output, be sure to keep the @status@ value constant in each subsequent request. ltdStatus :: Lens' ListTaskDefinitions (Maybe TaskDefinitionStatus) ltdStatus = lens _ltdStatus (\ s a -> s{_ltdStatus = a});@@ -124,9 +126,9 @@ (x .?> "nextToken") <*> (pure (fromEnum s))) -instance Hashable ListTaskDefinitions+instance Hashable ListTaskDefinitions where -instance NFData ListTaskDefinitions+instance NFData ListTaskDefinitions where instance ToHeaders ListTaskDefinitions where toHeaders@@ -156,11 +158,12 @@ -- | /See:/ 'listTaskDefinitionsResponse' smart constructor. data ListTaskDefinitionsResponse = ListTaskDefinitionsResponse'- { _ltdrsTaskDefinitionARNs :: !(Maybe [Text])- , _ltdrsNextToken :: !(Maybe Text)- , _ltdrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ltdrsTaskDefinitionARNs :: !(Maybe [Text])+ , _ltdrsNextToken :: !(Maybe Text)+ , _ltdrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTaskDefinitionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -174,12 +177,13 @@ :: Int -- ^ 'ltdrsResponseStatus' -> ListTaskDefinitionsResponse listTaskDefinitionsResponse pResponseStatus_ =- ListTaskDefinitionsResponse'- { _ltdrsTaskDefinitionARNs = Nothing- , _ltdrsNextToken = Nothing- , _ltdrsResponseStatus = pResponseStatus_- }+ ListTaskDefinitionsResponse'+ { _ltdrsTaskDefinitionARNs = Nothing+ , _ltdrsNextToken = Nothing+ , _ltdrsResponseStatus = pResponseStatus_+ } + -- | The list of task definition Amazon Resource Name (ARN) entries for the @ListTaskDefinitions@ request. ltdrsTaskDefinitionARNs :: Lens' ListTaskDefinitionsResponse [Text] ltdrsTaskDefinitionARNs = lens _ltdrsTaskDefinitionARNs (\ s a -> s{_ltdrsTaskDefinitionARNs = a}) . _Default . _Coerce;@@ -192,4 +196,4 @@ ltdrsResponseStatus :: Lens' ListTaskDefinitionsResponse Int ltdrsResponseStatus = lens _ltdrsResponseStatus (\ s a -> s{_ltdrsResponseStatus = a}); -instance NFData ListTaskDefinitionsResponse+instance NFData ListTaskDefinitionsResponse where
gen/Network/AWS/ECS/ListTasks.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.ListTasks--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -49,26 +49,27 @@ , ltrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'listTasks' smart constructor. data ListTasks = ListTasks'- { _ltDesiredStatus :: !(Maybe DesiredStatus)- , _ltCluster :: !(Maybe Text)- , _ltFamily :: !(Maybe Text)- , _ltNextToken :: !(Maybe Text)- , _ltStartedBy :: !(Maybe Text)- , _ltServiceName :: !(Maybe Text)- , _ltContainerInstance :: !(Maybe Text)- , _ltMaxResults :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ltDesiredStatus :: !(Maybe DesiredStatus)+ , _ltCluster :: !(Maybe Text)+ , _ltFamily :: !(Maybe Text)+ , _ltNextToken :: !(Maybe Text)+ , _ltStartedBy :: !(Maybe Text)+ , _ltServiceName :: !(Maybe Text)+ , _ltContainerInstance :: !(Maybe Text)+ , _ltMaxResults :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTasks' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -91,17 +92,18 @@ listTasks :: ListTasks listTasks =- ListTasks'- { _ltDesiredStatus = Nothing- , _ltCluster = Nothing- , _ltFamily = Nothing- , _ltNextToken = Nothing- , _ltStartedBy = Nothing- , _ltServiceName = Nothing- , _ltContainerInstance = Nothing- , _ltMaxResults = Nothing- }+ ListTasks'+ { _ltDesiredStatus = Nothing+ , _ltCluster = Nothing+ , _ltFamily = Nothing+ , _ltNextToken = Nothing+ , _ltStartedBy = Nothing+ , _ltServiceName = Nothing+ , _ltContainerInstance = Nothing+ , _ltMaxResults = Nothing+ } + -- | The task desired status with which to filter the @ListTasks@ results. Specifying a @desiredStatus@ of @STOPPED@ limits the results to tasks that ECS has set the desired status to @STOPPED@ , which can be useful for debugging tasks that are not starting properly or have died or finished. The default status filter is @RUNNING@ , which shows tasks that ECS has set the desired status to @RUNNING@ . ltDesiredStatus :: Lens' ListTasks (Maybe DesiredStatus) ltDesiredStatus = lens _ltDesiredStatus (\ s a -> s{_ltDesiredStatus = a});@@ -151,9 +153,9 @@ (x .?> "nextToken") <*> (x .?> "taskArns" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable ListTasks+instance Hashable ListTasks where -instance NFData ListTasks+instance NFData ListTasks where instance ToHeaders ListTasks where toHeaders@@ -186,11 +188,12 @@ -- | /See:/ 'listTasksResponse' smart constructor. data ListTasksResponse = ListTasksResponse'- { _ltrsNextToken :: !(Maybe Text)- , _ltrsTaskARNs :: !(Maybe [Text])- , _ltrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ltrsNextToken :: !(Maybe Text)+ , _ltrsTaskARNs :: !(Maybe [Text])+ , _ltrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'ListTasksResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -204,12 +207,13 @@ :: Int -- ^ 'ltrsResponseStatus' -> ListTasksResponse listTasksResponse pResponseStatus_ =- ListTasksResponse'- { _ltrsNextToken = Nothing- , _ltrsTaskARNs = Nothing- , _ltrsResponseStatus = pResponseStatus_- }+ ListTasksResponse'+ { _ltrsNextToken = Nothing+ , _ltrsTaskARNs = Nothing+ , _ltrsResponseStatus = pResponseStatus_+ } + -- | The @nextToken@ value to include in a future @ListTasks@ request. When the results of a @ListTasks@ request exceed @maxResults@ , this value can be used to retrieve the next page of results. This value is @null@ when there are no more results to return. ltrsNextToken :: Lens' ListTasksResponse (Maybe Text) ltrsNextToken = lens _ltrsNextToken (\ s a -> s{_ltrsNextToken = a});@@ -222,4 +226,4 @@ ltrsResponseStatus :: Lens' ListTasksResponse Int ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a}); -instance NFData ListTasksResponse+instance NFData ListTasksResponse where
+ gen/Network/AWS/ECS/PutAttributes.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECS.PutAttributes+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create or update an attribute on an Amazon ECS resource. If the attribute does not exist, it is created. If the attribute exists, its value is replaced with the specified value. To delete an attribute, use 'DeleteAttributes' . For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes Attributes> in the /Amazon EC2 Container Service Developer Guide/ .+--+--+module Network.AWS.ECS.PutAttributes+ (+ -- * Creating a Request+ putAttributes+ , PutAttributes+ -- * Request Lenses+ , paCluster+ , paAttributes++ -- * Destructuring the Response+ , putAttributesResponse+ , PutAttributesResponse+ -- * Response Lenses+ , parsAttributes+ , parsResponseStatus+ ) where++import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'putAttributes' smart constructor.+data PutAttributes = PutAttributes'+ { _paCluster :: !(Maybe Text)+ , _paAttributes :: ![Attribute]+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PutAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'paCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.+--+-- * 'paAttributes' - The attributes to apply to your resource. You can specify up to 10 custom attributes per resource. You can specify up to 10 attributes in a single call.+putAttributes+ :: PutAttributes+putAttributes = PutAttributes' {_paCluster = Nothing, _paAttributes = mempty}+++-- | The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply attributes. If you do not specify a cluster, the default cluster is assumed.+paCluster :: Lens' PutAttributes (Maybe Text)+paCluster = lens _paCluster (\ s a -> s{_paCluster = a});++-- | The attributes to apply to your resource. You can specify up to 10 custom attributes per resource. You can specify up to 10 attributes in a single call.+paAttributes :: Lens' PutAttributes [Attribute]+paAttributes = lens _paAttributes (\ s a -> s{_paAttributes = a}) . _Coerce;++instance AWSRequest PutAttributes where+ type Rs PutAttributes = PutAttributesResponse+ request = postJSON ecs+ response+ = receiveJSON+ (\ s h x ->+ PutAttributesResponse' <$>+ (x .?> "attributes" .!@ mempty) <*>+ (pure (fromEnum s)))++instance Hashable PutAttributes where++instance NFData PutAttributes where++instance ToHeaders PutAttributes where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerServiceV20141113.PutAttributes"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON PutAttributes where+ toJSON PutAttributes'{..}+ = object+ (catMaybes+ [("cluster" .=) <$> _paCluster,+ Just ("attributes" .= _paAttributes)])++instance ToPath PutAttributes where+ toPath = const "/"++instance ToQuery PutAttributes where+ toQuery = const mempty++-- | /See:/ 'putAttributesResponse' smart constructor.+data PutAttributesResponse = PutAttributesResponse'+ { _parsAttributes :: !(Maybe [Attribute])+ , _parsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PutAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'parsAttributes' - The attributes applied to your resource.+--+-- * 'parsResponseStatus' - -- | The response status code.+putAttributesResponse+ :: Int -- ^ 'parsResponseStatus'+ -> PutAttributesResponse+putAttributesResponse pResponseStatus_ =+ PutAttributesResponse'+ {_parsAttributes = Nothing, _parsResponseStatus = pResponseStatus_}+++-- | The attributes applied to your resource.+parsAttributes :: Lens' PutAttributesResponse [Attribute]+parsAttributes = lens _parsAttributes (\ s a -> s{_parsAttributes = a}) . _Default . _Coerce;++-- | -- | The response status code.+parsResponseStatus :: Lens' PutAttributesResponse Int+parsResponseStatus = lens _parsResponseStatus (\ s a -> s{_parsResponseStatus = a});++instance NFData PutAttributesResponse where
gen/Network/AWS/ECS/RegisterContainerInstance.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.RegisterContainerInstance--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,24 +43,25 @@ , rcirsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'registerContainerInstance' smart constructor. data RegisterContainerInstance = RegisterContainerInstance'- { _rciInstanceIdentityDocumentSignature :: !(Maybe Text)- , _rciCluster :: !(Maybe Text)- , _rciInstanceIdentityDocument :: !(Maybe Text)- , _rciContainerInstanceARN :: !(Maybe Text)- , _rciVersionInfo :: !(Maybe VersionInfo)- , _rciAttributes :: !(Maybe [Attribute])- , _rciTotalResources :: !(Maybe [Resource])- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _rciInstanceIdentityDocumentSignature :: !(Maybe Text)+ , _rciCluster :: !(Maybe Text)+ , _rciInstanceIdentityDocument :: !(Maybe Text)+ , _rciContainerInstanceARN :: !(Maybe Text)+ , _rciVersionInfo :: !(Maybe VersionInfo)+ , _rciAttributes :: !(Maybe [Attribute])+ , _rciTotalResources :: !(Maybe [Resource])+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RegisterContainerInstance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,16 +82,17 @@ registerContainerInstance :: RegisterContainerInstance registerContainerInstance =- RegisterContainerInstance'- { _rciInstanceIdentityDocumentSignature = Nothing- , _rciCluster = Nothing- , _rciInstanceIdentityDocument = Nothing- , _rciContainerInstanceARN = Nothing- , _rciVersionInfo = Nothing- , _rciAttributes = Nothing- , _rciTotalResources = Nothing- }+ RegisterContainerInstance'+ { _rciInstanceIdentityDocumentSignature = Nothing+ , _rciCluster = Nothing+ , _rciInstanceIdentityDocument = Nothing+ , _rciContainerInstanceARN = Nothing+ , _rciVersionInfo = Nothing+ , _rciAttributes = Nothing+ , _rciTotalResources = Nothing+ } + -- | The instance identity document signature for the EC2 instance to register. This signature can be found by running the following command from the instance: @curl http://169.254.169.254/latest/dynamic/instance-identity/signature/@ rciInstanceIdentityDocumentSignature :: Lens' RegisterContainerInstance (Maybe Text) rciInstanceIdentityDocumentSignature = lens _rciInstanceIdentityDocumentSignature (\ s a -> s{_rciInstanceIdentityDocumentSignature = a});@@ -129,9 +131,9 @@ RegisterContainerInstanceResponse' <$> (x .?> "containerInstance") <*> (pure (fromEnum s))) -instance Hashable RegisterContainerInstance+instance Hashable RegisterContainerInstance where -instance NFData RegisterContainerInstance+instance NFData RegisterContainerInstance where instance ToHeaders RegisterContainerInstance where toHeaders@@ -166,10 +168,11 @@ -- | /See:/ 'registerContainerInstanceResponse' smart constructor. data RegisterContainerInstanceResponse = RegisterContainerInstanceResponse'- { _rcirsContainerInstance :: !(Maybe ContainerInstance)- , _rcirsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _rcirsContainerInstance :: !(Maybe ContainerInstance)+ , _rcirsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RegisterContainerInstanceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -181,11 +184,10 @@ :: Int -- ^ 'rcirsResponseStatus' -> RegisterContainerInstanceResponse registerContainerInstanceResponse pResponseStatus_ =- RegisterContainerInstanceResponse'- { _rcirsContainerInstance = Nothing- , _rcirsResponseStatus = pResponseStatus_- }+ RegisterContainerInstanceResponse'+ {_rcirsContainerInstance = Nothing, _rcirsResponseStatus = pResponseStatus_} + -- | The container instance that was registered. rcirsContainerInstance :: Lens' RegisterContainerInstanceResponse (Maybe ContainerInstance) rcirsContainerInstance = lens _rcirsContainerInstance (\ s a -> s{_rcirsContainerInstance = a});@@ -195,3 +197,4 @@ rcirsResponseStatus = lens _rcirsResponseStatus (\ s a -> s{_rcirsResponseStatus = a}); instance NFData RegisterContainerInstanceResponse+ where
gen/Network/AWS/ECS/RegisterTaskDefinition.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.RegisterTaskDefinition--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -32,6 +32,7 @@ , RegisterTaskDefinition -- * Request Lenses , rtdTaskRoleARN+ , rtdPlacementConstraints , rtdNetworkMode , rtdVolumes , rtdFamily@@ -45,28 +46,32 @@ , rtdrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'registerTaskDefinition' smart constructor. data RegisterTaskDefinition = RegisterTaskDefinition'- { _rtdTaskRoleARN :: !(Maybe Text)- , _rtdNetworkMode :: !(Maybe NetworkMode)- , _rtdVolumes :: !(Maybe [Volume])- , _rtdFamily :: !Text- , _rtdContainerDefinitions :: ![ContainerDefinition]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _rtdTaskRoleARN :: !(Maybe Text)+ , _rtdPlacementConstraints :: !(Maybe [TaskDefinitionPlacementConstraint])+ , _rtdNetworkMode :: !(Maybe NetworkMode)+ , _rtdVolumes :: !(Maybe [Volume])+ , _rtdFamily :: !Text+ , _rtdContainerDefinitions :: ![ContainerDefinition]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RegisterTaskDefinition' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rtdTaskRoleARN' - The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html IAM Roles for Tasks> in the /Amazon EC2 Container Service Developer Guide/ . --+-- * 'rtdPlacementConstraints' - An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time).+-- -- * 'rtdNetworkMode' - The Docker networking mode to use for the containers in the task. The valid values are @none@ , @bridge@ , and @host@ . The default Docker network mode is @bridge@ . If the network mode is set to @none@ , you cannot specify port mappings in your container definitions, and the task's containers do not have external connectivity. The @host@ network mode offers the highest networking performance for containers because they use the host network stack instead of the virtualized network stack provided by the @bridge@ mode; however, exposed container ports are mapped directly to the corresponding host port, so you cannot take advantage of dynamic host port mappings or run multiple instantiations of the same task on a single container instance if port mappings are used. For more information, see <https://docs.docker.com/engine/reference/run/#network-settings Network settings> in the /Docker run reference/ . -- -- * 'rtdVolumes' - A list of volume definitions in JSON format that containers in your task may use.@@ -78,18 +83,24 @@ :: Text -- ^ 'rtdFamily' -> RegisterTaskDefinition registerTaskDefinition pFamily_ =- RegisterTaskDefinition'- { _rtdTaskRoleARN = Nothing- , _rtdNetworkMode = Nothing- , _rtdVolumes = Nothing- , _rtdFamily = pFamily_- , _rtdContainerDefinitions = mempty- }+ RegisterTaskDefinition'+ { _rtdTaskRoleARN = Nothing+ , _rtdPlacementConstraints = Nothing+ , _rtdNetworkMode = Nothing+ , _rtdVolumes = Nothing+ , _rtdFamily = pFamily_+ , _rtdContainerDefinitions = mempty+ } + -- | The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html IAM Roles for Tasks> in the /Amazon EC2 Container Service Developer Guide/ . rtdTaskRoleARN :: Lens' RegisterTaskDefinition (Maybe Text) rtdTaskRoleARN = lens _rtdTaskRoleARN (\ s a -> s{_rtdTaskRoleARN = a}); +-- | An array of placement constraint objects to use for the task. You can specify a maximum of 10 constraints per task (this limit includes constraints in the task definition and those specified at run time).+rtdPlacementConstraints :: Lens' RegisterTaskDefinition [TaskDefinitionPlacementConstraint]+rtdPlacementConstraints = lens _rtdPlacementConstraints (\ s a -> s{_rtdPlacementConstraints = a}) . _Default . _Coerce;+ -- | The Docker networking mode to use for the containers in the task. The valid values are @none@ , @bridge@ , and @host@ . The default Docker network mode is @bridge@ . If the network mode is set to @none@ , you cannot specify port mappings in your container definitions, and the task's containers do not have external connectivity. The @host@ network mode offers the highest networking performance for containers because they use the host network stack instead of the virtualized network stack provided by the @bridge@ mode; however, exposed container ports are mapped directly to the corresponding host port, so you cannot take advantage of dynamic host port mappings or run multiple instantiations of the same task on a single container instance if port mappings are used. For more information, see <https://docs.docker.com/engine/reference/run/#network-settings Network settings> in the /Docker run reference/ . rtdNetworkMode :: Lens' RegisterTaskDefinition (Maybe NetworkMode) rtdNetworkMode = lens _rtdNetworkMode (\ s a -> s{_rtdNetworkMode = a});@@ -116,9 +127,9 @@ RegisterTaskDefinitionResponse' <$> (x .?> "taskDefinition") <*> (pure (fromEnum s))) -instance Hashable RegisterTaskDefinition+instance Hashable RegisterTaskDefinition where -instance NFData RegisterTaskDefinition+instance NFData RegisterTaskDefinition where instance ToHeaders RegisterTaskDefinition where toHeaders@@ -135,6 +146,8 @@ = object (catMaybes [("taskRoleArn" .=) <$> _rtdTaskRoleARN,+ ("placementConstraints" .=) <$>+ _rtdPlacementConstraints, ("networkMode" .=) <$> _rtdNetworkMode, ("volumes" .=) <$> _rtdVolumes, Just ("family" .= _rtdFamily),@@ -150,10 +163,11 @@ -- | /See:/ 'registerTaskDefinitionResponse' smart constructor. data RegisterTaskDefinitionResponse = RegisterTaskDefinitionResponse'- { _rtdrsTaskDefinition :: !(Maybe TaskDefinition)- , _rtdrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _rtdrsTaskDefinition :: !(Maybe TaskDefinition)+ , _rtdrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RegisterTaskDefinitionResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -165,11 +179,10 @@ :: Int -- ^ 'rtdrsResponseStatus' -> RegisterTaskDefinitionResponse registerTaskDefinitionResponse pResponseStatus_ =- RegisterTaskDefinitionResponse'- { _rtdrsTaskDefinition = Nothing- , _rtdrsResponseStatus = pResponseStatus_- }+ RegisterTaskDefinitionResponse'+ {_rtdrsTaskDefinition = Nothing, _rtdrsResponseStatus = pResponseStatus_} + -- | The full description of the registered task definition. rtdrsTaskDefinition :: Lens' RegisterTaskDefinitionResponse (Maybe TaskDefinition) rtdrsTaskDefinition = lens _rtdrsTaskDefinition (\ s a -> s{_rtdrsTaskDefinition = a});@@ -178,4 +191,4 @@ rtdrsResponseStatus :: Lens' RegisterTaskDefinitionResponse Int rtdrsResponseStatus = lens _rtdrsResponseStatus (\ s a -> s{_rtdrsResponseStatus = a}); -instance NFData RegisterTaskDefinitionResponse+instance NFData RegisterTaskDefinitionResponse where
gen/Network/AWS/ECS/RunTask.hs view
@@ -12,17 +12,19 @@ -- | -- Module : Network.AWS.ECS.RunTask--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Start a task using random placement and the default Amazon ECS scheduler. To use your own scheduler or place a task on a specific container instance, use @StartTask@ instead.+-- Starts a new task using the specified task definition. -- ----- /Important:/ The @count@ parameter is limited to 10 tasks per call.+-- You can allow Amazon ECS to place tasks for you, or you can customize how Amazon ECS places tasks using placement constraints and placement strategies. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html Scheduling Tasks> in the /Amazon EC2 Container Service Developer Guide/ . --+-- Alternatively, you can use 'StartTask' to use your own scheduler or place tasks manually on specific container instances.+-- module Network.AWS.ECS.RunTask ( -- * Creating a Request@@ -30,8 +32,11 @@ , RunTask -- * Request Lenses , rtOverrides+ , rtGroup , rtCluster , rtCount+ , rtPlacementConstraints+ , rtPlacementStrategy , rtStartedBy , rtTaskDefinition @@ -44,32 +49,42 @@ , rtrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'runTask' smart constructor. data RunTask = RunTask'- { _rtOverrides :: !(Maybe TaskOverride)- , _rtCluster :: !(Maybe Text)- , _rtCount :: !(Maybe Int)- , _rtStartedBy :: !(Maybe Text)- , _rtTaskDefinition :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _rtOverrides :: !(Maybe TaskOverride)+ , _rtGroup :: !(Maybe Text)+ , _rtCluster :: !(Maybe Text)+ , _rtCount :: !(Maybe Int)+ , _rtPlacementConstraints :: !(Maybe [PlacementConstraint])+ , _rtPlacementStrategy :: !(Maybe [PlacementStrategy])+ , _rtStartedBy :: !(Maybe Text)+ , _rtTaskDefinition :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RunTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rtOverrides' - A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a @command@ override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an @environment@ override. --+-- * 'rtGroup' - The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).+-- -- * 'rtCluster' - The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed. ----- * 'rtCount' - The number of instantiations of the specified task to place on your cluster. /Important:/ The @count@ parameter is limited to 10 tasks per call.+-- * 'rtCount' - The number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks per call. --+-- * 'rtPlacementConstraints' - An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at run time).+--+-- * 'rtPlacementStrategy' - The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules per task.+-- -- * 'rtStartedBy' - An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the @startedBy@ parameter. You can then identify which tasks belong to that job by filtering the results of a 'ListTasks' call with the @startedBy@ value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it. -- -- * 'rtTaskDefinition' - The @family@ and @revision@ (@family:revision@ ) or full Amazon Resource Name (ARN) of the task definition to run. If a @revision@ is not specified, the latest @ACTIVE@ revision is used.@@ -77,26 +92,42 @@ :: Text -- ^ 'rtTaskDefinition' -> RunTask runTask pTaskDefinition_ =- RunTask'- { _rtOverrides = Nothing- , _rtCluster = Nothing- , _rtCount = Nothing- , _rtStartedBy = Nothing- , _rtTaskDefinition = pTaskDefinition_- }+ RunTask'+ { _rtOverrides = Nothing+ , _rtGroup = Nothing+ , _rtCluster = Nothing+ , _rtCount = Nothing+ , _rtPlacementConstraints = Nothing+ , _rtPlacementStrategy = Nothing+ , _rtStartedBy = Nothing+ , _rtTaskDefinition = pTaskDefinition_+ } + -- | A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a @command@ override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an @environment@ override. rtOverrides :: Lens' RunTask (Maybe TaskOverride) rtOverrides = lens _rtOverrides (\ s a -> s{_rtOverrides = a}); +-- | The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).+rtGroup :: Lens' RunTask (Maybe Text)+rtGroup = lens _rtGroup (\ s a -> s{_rtGroup = a});+ -- | The short name or full Amazon Resource Name (ARN) of the cluster on which to run your task. If you do not specify a cluster, the default cluster is assumed. rtCluster :: Lens' RunTask (Maybe Text) rtCluster = lens _rtCluster (\ s a -> s{_rtCluster = a}); --- | The number of instantiations of the specified task to place on your cluster. /Important:/ The @count@ parameter is limited to 10 tasks per call.+-- | The number of instantiations of the specified task to place on your cluster. You can specify up to 10 tasks per call. rtCount :: Lens' RunTask (Maybe Int) rtCount = lens _rtCount (\ s a -> s{_rtCount = a}); +-- | An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at run time).+rtPlacementConstraints :: Lens' RunTask [PlacementConstraint]+rtPlacementConstraints = lens _rtPlacementConstraints (\ s a -> s{_rtPlacementConstraints = a}) . _Default . _Coerce;++-- | The placement strategy objects to use for the task. You can specify a maximum of 5 strategy rules per task.+rtPlacementStrategy :: Lens' RunTask [PlacementStrategy]+rtPlacementStrategy = lens _rtPlacementStrategy (\ s a -> s{_rtPlacementStrategy = a}) . _Default . _Coerce;+ -- | An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the @startedBy@ parameter. You can then identify which tasks belong to that job by filtering the results of a 'ListTasks' call with the @startedBy@ value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it. rtStartedBy :: Lens' RunTask (Maybe Text) rtStartedBy = lens _rtStartedBy (\ s a -> s{_rtStartedBy = a});@@ -116,9 +147,9 @@ (x .?> "tasks" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable RunTask+instance Hashable RunTask where -instance NFData RunTask+instance NFData RunTask where instance ToHeaders RunTask where toHeaders@@ -135,8 +166,12 @@ = object (catMaybes [("overrides" .=) <$> _rtOverrides,+ ("group" .=) <$> _rtGroup, ("cluster" .=) <$> _rtCluster, ("count" .=) <$> _rtCount,+ ("placementConstraints" .=) <$>+ _rtPlacementConstraints,+ ("placementStrategy" .=) <$> _rtPlacementStrategy, ("startedBy" .=) <$> _rtStartedBy, Just ("taskDefinition" .= _rtTaskDefinition)]) @@ -148,11 +183,12 @@ -- | /See:/ 'runTaskResponse' smart constructor. data RunTaskResponse = RunTaskResponse'- { _rtrsFailures :: !(Maybe [Failure])- , _rtrsTasks :: !(Maybe [Task])- , _rtrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _rtrsFailures :: !(Maybe [Failure])+ , _rtrsTasks :: !(Maybe [Task])+ , _rtrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'RunTaskResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -166,12 +202,13 @@ :: Int -- ^ 'rtrsResponseStatus' -> RunTaskResponse runTaskResponse pResponseStatus_ =- RunTaskResponse'- { _rtrsFailures = Nothing- , _rtrsTasks = Nothing- , _rtrsResponseStatus = pResponseStatus_- }+ RunTaskResponse'+ { _rtrsFailures = Nothing+ , _rtrsTasks = Nothing+ , _rtrsResponseStatus = pResponseStatus_+ } + -- | Any failures associated with the call. rtrsFailures :: Lens' RunTaskResponse [Failure] rtrsFailures = lens _rtrsFailures (\ s a -> s{_rtrsFailures = a}) . _Default . _Coerce;@@ -184,4 +221,4 @@ rtrsResponseStatus :: Lens' RunTaskResponse Int rtrsResponseStatus = lens _rtrsResponseStatus (\ s a -> s{_rtrsResponseStatus = a}); -instance NFData RunTaskResponse+instance NFData RunTaskResponse where
gen/Network/AWS/ECS/StartTask.hs view
@@ -12,16 +12,16 @@ -- | -- Module : Network.AWS.ECS.StartTask--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Starts a new task from the specified task definition on the specified container instance or instances. To use the default Amazon ECS scheduler to place your task, use @RunTask@ instead.+-- Starts a new task from the specified task definition on the specified container instance or instances. -- ----- /Important:/ The list of container instances to start tasks on is limited to 10.+-- Alternatively, you can use 'RunTask' to place tasks for you. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html Scheduling Tasks> in the /Amazon EC2 Container Service Developer Guide/ . -- module Network.AWS.ECS.StartTask (@@ -30,6 +30,7 @@ , StartTask -- * Request Lenses , sOverrides+ , sGroup , sCluster , sStartedBy , sTaskDefinition@@ -44,51 +45,61 @@ , strsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'startTask' smart constructor. data StartTask = StartTask'- { _sOverrides :: !(Maybe TaskOverride)- , _sCluster :: !(Maybe Text)- , _sStartedBy :: !(Maybe Text)- , _sTaskDefinition :: !Text- , _sContainerInstances :: ![Text]- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _sOverrides :: !(Maybe TaskOverride)+ , _sGroup :: !(Maybe Text)+ , _sCluster :: !(Maybe Text)+ , _sStartedBy :: !(Maybe Text)+ , _sTaskDefinition :: !Text+ , _sContainerInstances :: ![Text]+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StartTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sOverrides' - A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a @command@ override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an @environment@ override. --+-- * 'sGroup' - The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).+-- -- * 'sCluster' - The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed. -- -- * 'sStartedBy' - An optional tag specified when a task is started. For example if you automatically trigger a task to run a batch process job, you could apply a unique identifier for that job to your task with the @startedBy@ parameter. You can then identify which tasks belong to that job by filtering the results of a 'ListTasks' call with the @startedBy@ value. Up to 36 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. If a task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it. -- -- * 'sTaskDefinition' - The @family@ and @revision@ (@family:revision@ ) or full Amazon Resource Name (ARN) of the task definition to start. If a @revision@ is not specified, the latest @ACTIVE@ revision is used. ----- * 'sContainerInstances' - The container instance IDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task. /Important:/ The list of container instances to start tasks on is limited to 10.+-- * 'sContainerInstances' - The container instance IDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task. You can specify up to 10 container instances. startTask :: Text -- ^ 'sTaskDefinition' -> StartTask startTask pTaskDefinition_ =- StartTask'- { _sOverrides = Nothing- , _sCluster = Nothing- , _sStartedBy = Nothing- , _sTaskDefinition = pTaskDefinition_- , _sContainerInstances = mempty- }+ StartTask'+ { _sOverrides = Nothing+ , _sGroup = Nothing+ , _sCluster = Nothing+ , _sStartedBy = Nothing+ , _sTaskDefinition = pTaskDefinition_+ , _sContainerInstances = mempty+ } + -- | A list of container overrides in JSON format that specify the name of a container in the specified task definition and the overrides it should receive. You can override the default command for a container (that is specified in the task definition or Docker image) with a @command@ override. You can also override existing environment variables (that are specified in the task definition or Docker image) on a container or add new environment variables to it with an @environment@ override. sOverrides :: Lens' StartTask (Maybe TaskOverride) sOverrides = lens _sOverrides (\ s a -> s{_sOverrides = a}); +-- | The name of the task group to associate with the task. The default value is the family name of the task definition (for example, family:my-family-name).+sGroup :: Lens' StartTask (Maybe Text)+sGroup = lens _sGroup (\ s a -> s{_sGroup = a});+ -- | The short name or full Amazon Resource Name (ARN) of the cluster on which to start your task. If you do not specify a cluster, the default cluster is assumed. sCluster :: Lens' StartTask (Maybe Text) sCluster = lens _sCluster (\ s a -> s{_sCluster = a});@@ -101,7 +112,7 @@ sTaskDefinition :: Lens' StartTask Text sTaskDefinition = lens _sTaskDefinition (\ s a -> s{_sTaskDefinition = a}); --- | The container instance IDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task. /Important:/ The list of container instances to start tasks on is limited to 10.+-- | The container instance IDs or full Amazon Resource Name (ARN) entries for the container instances on which you would like to place your task. You can specify up to 10 container instances. sContainerInstances :: Lens' StartTask [Text] sContainerInstances = lens _sContainerInstances (\ s a -> s{_sContainerInstances = a}) . _Coerce; @@ -116,9 +127,9 @@ (x .?> "tasks" .!@ mempty) <*> (pure (fromEnum s))) -instance Hashable StartTask+instance Hashable StartTask where -instance NFData StartTask+instance NFData StartTask where instance ToHeaders StartTask where toHeaders@@ -135,6 +146,7 @@ = object (catMaybes [("overrides" .=) <$> _sOverrides,+ ("group" .=) <$> _sGroup, ("cluster" .=) <$> _sCluster, ("startedBy" .=) <$> _sStartedBy, Just ("taskDefinition" .= _sTaskDefinition),@@ -148,11 +160,12 @@ -- | /See:/ 'startTaskResponse' smart constructor. data StartTaskResponse = StartTaskResponse'- { _strsFailures :: !(Maybe [Failure])- , _strsTasks :: !(Maybe [Task])- , _strsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _strsFailures :: !(Maybe [Failure])+ , _strsTasks :: !(Maybe [Task])+ , _strsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StartTaskResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -166,12 +179,13 @@ :: Int -- ^ 'strsResponseStatus' -> StartTaskResponse startTaskResponse pResponseStatus_ =- StartTaskResponse'- { _strsFailures = Nothing- , _strsTasks = Nothing- , _strsResponseStatus = pResponseStatus_- }+ StartTaskResponse'+ { _strsFailures = Nothing+ , _strsTasks = Nothing+ , _strsResponseStatus = pResponseStatus_+ } + -- | Any failures associated with the call. strsFailures :: Lens' StartTaskResponse [Failure] strsFailures = lens _strsFailures (\ s a -> s{_strsFailures = a}) . _Default . _Coerce;@@ -184,4 +198,4 @@ strsResponseStatus :: Lens' StartTaskResponse Int strsResponseStatus = lens _strsResponseStatus (\ s a -> s{_strsResponseStatus = a}); -instance NFData StartTaskResponse+instance NFData StartTaskResponse where
gen/Network/AWS/ECS/StopTask.hs view
@@ -12,16 +12,16 @@ -- | -- Module : Network.AWS.ECS.StopTask--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Stops a running task. -- ----- When 'StopTask' is called on a task, the equivalent of @docker stop@ is issued to the containers running in the task. This results in a @SIGTERM@ and a 30-second timeout, after which @SIGKILL@ is sent and the containers are forcibly stopped. If the container handles the @SIGTERM@ gracefully and exits within 30 seconds from receiving it, no @SIGKILL@ is sent.+-- When 'StopTask' is called on a task, the equivalent of @docker stop@ is issued to the containers running in the task. This results in a @SIGTERM@ and a default 30-second timeout, after which @SIGKILL@ is sent and the containers are forcibly stopped. If the container handles the @SIGTERM@ gracefully and exits within 30 seconds from receiving it, no @SIGKILL@ is sent. -- module Network.AWS.ECS.StopTask (@@ -41,20 +41,21 @@ , srsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'stopTask' smart constructor. data StopTask = StopTask'- { _stCluster :: !(Maybe Text)- , _stReason :: !(Maybe Text)- , _stTask :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _stCluster :: !(Maybe Text)+ , _stReason :: !(Maybe Text)+ , _stTask :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StopTask' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -68,12 +69,9 @@ :: Text -- ^ 'stTask' -> StopTask stopTask pTask_ =- StopTask'- { _stCluster = Nothing- , _stReason = Nothing- , _stTask = pTask_- }+ StopTask' {_stCluster = Nothing, _stReason = Nothing, _stTask = pTask_} + -- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. If you do not specify a cluster, the default cluster is assumed. stCluster :: Lens' StopTask (Maybe Text) stCluster = lens _stCluster (\ s a -> s{_stCluster = a});@@ -95,9 +93,9 @@ StopTaskResponse' <$> (x .?> "task") <*> (pure (fromEnum s))) -instance Hashable StopTask+instance Hashable StopTask where -instance NFData StopTask+instance NFData StopTask where instance ToHeaders StopTask where toHeaders@@ -125,10 +123,11 @@ -- | /See:/ 'stopTaskResponse' smart constructor. data StopTaskResponse = StopTaskResponse'- { _srsTask :: !(Maybe Task)- , _srsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _srsTask :: !(Maybe Task)+ , _srsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'StopTaskResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -140,11 +139,9 @@ :: Int -- ^ 'srsResponseStatus' -> StopTaskResponse stopTaskResponse pResponseStatus_ =- StopTaskResponse'- { _srsTask = Nothing- , _srsResponseStatus = pResponseStatus_- }+ StopTaskResponse' {_srsTask = Nothing, _srsResponseStatus = pResponseStatus_} + -- | The task that was stopped. srsTask :: Lens' StopTaskResponse (Maybe Task) srsTask = lens _srsTask (\ s a -> s{_srsTask = a});@@ -153,4 +150,4 @@ srsResponseStatus :: Lens' StopTaskResponse Int srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a}); -instance NFData StopTaskResponse+instance NFData StopTaskResponse where
gen/Network/AWS/ECS/SubmitContainerStateChange.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.SubmitContainerStateChange--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -43,24 +43,25 @@ , scscrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'submitContainerStateChange' smart constructor. data SubmitContainerStateChange = SubmitContainerStateChange'- { _scscNetworkBindings :: !(Maybe [NetworkBinding])- , _scscStatus :: !(Maybe Text)- , _scscCluster :: !(Maybe Text)- , _scscContainerName :: !(Maybe Text)- , _scscReason :: !(Maybe Text)- , _scscExitCode :: !(Maybe Int)- , _scscTask :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _scscNetworkBindings :: !(Maybe [NetworkBinding])+ , _scscStatus :: !(Maybe Text)+ , _scscCluster :: !(Maybe Text)+ , _scscContainerName :: !(Maybe Text)+ , _scscReason :: !(Maybe Text)+ , _scscExitCode :: !(Maybe Int)+ , _scscTask :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'SubmitContainerStateChange' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -81,16 +82,17 @@ submitContainerStateChange :: SubmitContainerStateChange submitContainerStateChange =- SubmitContainerStateChange'- { _scscNetworkBindings = Nothing- , _scscStatus = Nothing- , _scscCluster = Nothing- , _scscContainerName = Nothing- , _scscReason = Nothing- , _scscExitCode = Nothing- , _scscTask = Nothing- }+ SubmitContainerStateChange'+ { _scscNetworkBindings = Nothing+ , _scscStatus = Nothing+ , _scscCluster = Nothing+ , _scscContainerName = Nothing+ , _scscReason = Nothing+ , _scscExitCode = Nothing+ , _scscTask = Nothing+ } + -- | The network bindings of the container. scscNetworkBindings :: Lens' SubmitContainerStateChange [NetworkBinding] scscNetworkBindings = lens _scscNetworkBindings (\ s a -> s{_scscNetworkBindings = a}) . _Default . _Coerce;@@ -129,9 +131,9 @@ SubmitContainerStateChangeResponse' <$> (x .?> "acknowledgment") <*> (pure (fromEnum s))) -instance Hashable SubmitContainerStateChange+instance Hashable SubmitContainerStateChange where -instance NFData SubmitContainerStateChange+instance NFData SubmitContainerStateChange where instance ToHeaders SubmitContainerStateChange where toHeaders@@ -163,10 +165,11 @@ -- | /See:/ 'submitContainerStateChangeResponse' smart constructor. data SubmitContainerStateChangeResponse = SubmitContainerStateChangeResponse'- { _scscrsAcknowledgment :: !(Maybe Text)- , _scscrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _scscrsAcknowledgment :: !(Maybe Text)+ , _scscrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'SubmitContainerStateChangeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -178,11 +181,10 @@ :: Int -- ^ 'scscrsResponseStatus' -> SubmitContainerStateChangeResponse submitContainerStateChangeResponse pResponseStatus_ =- SubmitContainerStateChangeResponse'- { _scscrsAcknowledgment = Nothing- , _scscrsResponseStatus = pResponseStatus_- }+ SubmitContainerStateChangeResponse'+ {_scscrsAcknowledgment = Nothing, _scscrsResponseStatus = pResponseStatus_} + -- | Acknowledgement of the state change. scscrsAcknowledgment :: Lens' SubmitContainerStateChangeResponse (Maybe Text) scscrsAcknowledgment = lens _scscrsAcknowledgment (\ s a -> s{_scscrsAcknowledgment = a});@@ -192,3 +194,4 @@ scscrsResponseStatus = lens _scscrsResponseStatus (\ s a -> s{_scscrsResponseStatus = a}); instance NFData SubmitContainerStateChangeResponse+ where
gen/Network/AWS/ECS/SubmitTaskStateChange.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.SubmitTaskStateChange--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,21 +40,22 @@ , stscrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'submitTaskStateChange' smart constructor. data SubmitTaskStateChange = SubmitTaskStateChange'- { _stscStatus :: !(Maybe Text)- , _stscCluster :: !(Maybe Text)- , _stscReason :: !(Maybe Text)- , _stscTask :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _stscStatus :: !(Maybe Text)+ , _stscCluster :: !(Maybe Text)+ , _stscReason :: !(Maybe Text)+ , _stscTask :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'SubmitTaskStateChange' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -69,13 +70,14 @@ submitTaskStateChange :: SubmitTaskStateChange submitTaskStateChange =- SubmitTaskStateChange'- { _stscStatus = Nothing- , _stscCluster = Nothing- , _stscReason = Nothing- , _stscTask = Nothing- }+ SubmitTaskStateChange'+ { _stscStatus = Nothing+ , _stscCluster = Nothing+ , _stscReason = Nothing+ , _stscTask = Nothing+ } + -- | The status of the state change request. stscStatus :: Lens' SubmitTaskStateChange (Maybe Text) stscStatus = lens _stscStatus (\ s a -> s{_stscStatus = a});@@ -102,9 +104,9 @@ SubmitTaskStateChangeResponse' <$> (x .?> "acknowledgment") <*> (pure (fromEnum s))) -instance Hashable SubmitTaskStateChange+instance Hashable SubmitTaskStateChange where -instance NFData SubmitTaskStateChange+instance NFData SubmitTaskStateChange where instance ToHeaders SubmitTaskStateChange where toHeaders@@ -133,10 +135,11 @@ -- | /See:/ 'submitTaskStateChangeResponse' smart constructor. data SubmitTaskStateChangeResponse = SubmitTaskStateChangeResponse'- { _stscrsAcknowledgment :: !(Maybe Text)- , _stscrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _stscrsAcknowledgment :: !(Maybe Text)+ , _stscrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'SubmitTaskStateChangeResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -148,11 +151,10 @@ :: Int -- ^ 'stscrsResponseStatus' -> SubmitTaskStateChangeResponse submitTaskStateChangeResponse pResponseStatus_ =- SubmitTaskStateChangeResponse'- { _stscrsAcknowledgment = Nothing- , _stscrsResponseStatus = pResponseStatus_- }+ SubmitTaskStateChangeResponse'+ {_stscrsAcknowledgment = Nothing, _stscrsResponseStatus = pResponseStatus_} + -- | Acknowledgement of the state change. stscrsAcknowledgment :: Lens' SubmitTaskStateChangeResponse (Maybe Text) stscrsAcknowledgment = lens _stscrsAcknowledgment (\ s a -> s{_stscrsAcknowledgment = a});@@ -161,4 +163,4 @@ stscrsResponseStatus :: Lens' SubmitTaskStateChangeResponse Int stscrsResponseStatus = lens _stscrsResponseStatus (\ s a -> s{_stscrsResponseStatus = a}); -instance NFData SubmitTaskStateChangeResponse+instance NFData SubmitTaskStateChangeResponse where
gen/Network/AWS/ECS/Types.hs view
@@ -4,9 +4,9 @@ -- | -- Module : Network.AWS.ECS.Types--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -26,26 +26,46 @@ , _ServiceNotFoundException , _MissingVersionException , _UpdateInProgressException+ , _TargetNotFoundException+ , _AttributeLimitExceededException , _ClientException -- * AgentUpdateStatus , AgentUpdateStatus (..) + -- * ContainerInstanceStatus+ , ContainerInstanceStatus (..)+ -- * DesiredStatus , DesiredStatus (..) + -- * DeviceCgroupPermission+ , DeviceCgroupPermission (..)+ -- * LogDriver , LogDriver (..) -- * NetworkMode , NetworkMode (..) + -- * PlacementConstraintType+ , PlacementConstraintType (..)++ -- * PlacementStrategyType+ , PlacementStrategyType (..)+ -- * SortOrder , SortOrder (..) + -- * TargetType+ , TargetType (..)+ -- * TaskDefinitionFamilyStatus , TaskDefinitionFamilyStatus (..) + -- * TaskDefinitionPlacementConstraintType+ , TaskDefinitionPlacementConstraintType (..)+ -- * TaskDefinitionStatus , TaskDefinitionStatus (..) @@ -58,7 +78,9 @@ -- * Attribute , Attribute , attribute+ , aTargetId , aValue+ , aTargetType , aName -- * Cluster@@ -104,6 +126,7 @@ , cdUser , cdDnsSearchDomains , cdLogConfiguration+ , cdLinuxParameters , cdName , cdDnsServers , cdMountPoints@@ -127,6 +150,7 @@ , ciAttributes , ciVersion , ciPendingTasksCount+ , ciRegisteredAt , ciRegisteredResources -- * ContainerOverride@@ -134,7 +158,10 @@ , containerOverride , coCommand , coEnvironment+ , coMemory , coName+ , coCpu+ , coMemoryReservation -- * ContainerService , ContainerService@@ -146,7 +173,9 @@ , csDesiredCount , csLoadBalancers , csPendingCount+ , csPlacementConstraints , csEvents+ , csPlacementStrategy , csDeployments , csServiceName , csServiceARN@@ -172,6 +201,13 @@ , dcMinimumHealthyPercent , dcMaximumPercent + -- * Device+ , Device+ , device+ , dContainerPath+ , dPermissions+ , dHostPath+ -- * Failure , Failure , failure@@ -189,12 +225,25 @@ , hostVolumeProperties , hvpSourcePath + -- * KernelCapabilities+ , KernelCapabilities+ , kernelCapabilities+ , kcDrop+ , kcAdd+ -- * KeyValuePair , KeyValuePair , keyValuePair , kvpValue , kvpName + -- * LinuxParameters+ , LinuxParameters+ , linuxParameters+ , lpInitProcessEnabled+ , lpDevices+ , lpCapabilities+ -- * LoadBalancer , LoadBalancer , loadBalancer@@ -224,6 +273,18 @@ , nbHostPort , nbContainerPort + -- * PlacementConstraint+ , PlacementConstraint+ , placementConstraint+ , pcExpression+ , pcType++ -- * PlacementStrategy+ , PlacementStrategy+ , placementStrategy+ , psField+ , psType+ -- * PortMapping , PortMapping , portMapping@@ -255,6 +316,7 @@ , tDesiredStatus , tOverrides , tClusterARN+ , tGroup , tCreatedAt , tTaskARN , tContainerInstanceARN@@ -273,12 +335,19 @@ , tdFamily , tdContainerDefinitions , tdTaskRoleARN+ , tdPlacementConstraints , tdNetworkMode , tdTaskDefinitionARN , tdRevision , tdVolumes , tdRequiresAttributes + -- * TaskDefinitionPlacementConstraint+ , TaskDefinitionPlacementConstraint+ , taskDefinitionPlacementConstraint+ , tdpcExpression+ , tdpcType+ -- * TaskOverride , TaskOverride , taskOverride@@ -312,38 +381,40 @@ , vfReadOnly ) where -import Network.AWS.ECS.Types.Product-import Network.AWS.ECS.Types.Sum-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Sign.V4+import Network.AWS.ECS.Types.Product+import Network.AWS.ECS.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4 -- | API version @2014-11-13@ of the Amazon EC2 Container Service SDK configuration. ecs :: Service ecs =- Service- { _svcAbbrev = "ECS"- , _svcSigner = v4- , _svcPrefix = "ecs"- , _svcVersion = "2014-11-13"- , _svcEndpoint = defaultEndpoint ecs- , _svcTimeout = Just 70- , _svcCheck = statusSuccess- , _svcError = parseJSONError "ECS"- , _svcRetry = retry- }+ Service+ { _svcAbbrev = "ECS"+ , _svcSigner = v4+ , _svcPrefix = "ecs"+ , _svcVersion = "2014-11-13"+ , _svcEndpoint = defaultEndpoint ecs+ , _svcTimeout = Just 70+ , _svcCheck = statusSuccess+ , _svcError = parseJSONError "ECS"+ , _svcRetry = retry+ } where retry =- Exponential- { _retryBase = 5.0e-2- , _retryGrowth = 2- , _retryAttempts = 5- , _retryCheck = check- }+ Exponential+ { _retryBase = 5.0e-2+ , _retryGrowth = 2+ , _retryAttempts = 5+ , _retryCheck = check+ } check e+ | has (hasCode "ThrottledException" . hasStatus 400) e =+ Just "throttled_exception" | has (hasStatus 429) e = Just "too_many_requests" | has (hasCode "ThrottlingException" . hasStatus 400) e =- Just "throttling_exception"+ Just "throttling_exception" | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling" | has (hasStatus 504) e = Just "gateway_timeout" | has (hasStatus 502) e = Just "bad_gateway"@@ -352,74 +423,98 @@ | has (hasStatus 509) e = Just "limit_exceeded" | otherwise = Nothing + -- | The specified parameter is invalid. Review the available parameters for the API request. -- -- _InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidParameterException =- _ServiceError . hasCode "InvalidParameterException"+_InvalidParameterException = _MatchServiceError ecs "InvalidParameterException" + -- | These errors are usually caused by a server issue. -- -- _ServerException :: AsError a => Getting (First ServiceError) a ServiceError-_ServerException = _ServiceError . hasCode "ServerException"+_ServerException = _MatchServiceError ecs "ServerException" + -- | You cannot delete a cluster that contains services. You must first update the service to reduce its desired task count to 0 and then delete the service. For more information, see 'UpdateService' and 'DeleteService' . -- -- _ClusterContainsServicesException :: AsError a => Getting (First ServiceError) a ServiceError _ClusterContainsServicesException =- _ServiceError . hasCode "ClusterContainsServicesException"+ _MatchServiceError ecs "ClusterContainsServicesException" + -- | You cannot delete a cluster that has registered container instances. You must first deregister the container instances before you can delete the cluster. For more information, see 'DeregisterContainerInstance' . -- -- _ClusterContainsContainerInstancesException :: AsError a => Getting (First ServiceError) a ServiceError _ClusterContainsContainerInstancesException =- _ServiceError . hasCode "ClusterContainsContainerInstancesException"+ _MatchServiceError ecs "ClusterContainsContainerInstancesException" + -- | The specified service is not active. You cannot update a service that is not active. If you have previously deleted a service, you can re-create it with 'CreateService' . -- -- _ServiceNotActiveException :: AsError a => Getting (First ServiceError) a ServiceError-_ServiceNotActiveException =- _ServiceError . hasCode "ServiceNotActiveException"+_ServiceNotActiveException = _MatchServiceError ecs "ServiceNotActiveException" + -- | The specified cluster could not be found. You can view your available clusters with 'ListClusters' . Amazon ECS clusters are region-specific. -- -- _ClusterNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError-_ClusterNotFoundException = _ServiceError . hasCode "ClusterNotFoundException"+_ClusterNotFoundException = _MatchServiceError ecs "ClusterNotFoundException" + -- | There is no update available for this Amazon ECS container agent. This could be because the agent is already running the latest version, or it is so old that there is no update path to the current version. -- -- _NoUpdateAvailableException :: AsError a => Getting (First ServiceError) a ServiceError _NoUpdateAvailableException =- _ServiceError . hasCode "NoUpdateAvailableException"+ _MatchServiceError ecs "NoUpdateAvailableException" + -- | The specified service could not be found. You can view your available services with 'ListServices' . Amazon ECS services are cluster-specific and region-specific. -- -- _ServiceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError-_ServiceNotFoundException = _ServiceError . hasCode "ServiceNotFoundException"+_ServiceNotFoundException = _MatchServiceError ecs "ServiceNotFoundException" + -- | Amazon ECS is unable to determine the current version of the Amazon ECS container agent on the container instance and does not have enough information to proceed with an update. This could be because the agent running on the container instance is an older or custom version that does not use our version information. -- -- _MissingVersionException :: AsError a => Getting (First ServiceError) a ServiceError-_MissingVersionException = _ServiceError . hasCode "MissingVersionException"+_MissingVersionException = _MatchServiceError ecs "MissingVersionException" + -- | There is already a current Amazon ECS container agent update in progress on the specified container instance. If the container agent becomes disconnected while it is in a transitional stage, such as @PENDING@ or @STAGING@ , the update process can get stuck in that state. However, when the agent reconnects, it resumes where it stopped previously. -- -- _UpdateInProgressException :: AsError a => Getting (First ServiceError) a ServiceError-_UpdateInProgressException =- _ServiceError . hasCode "UpdateInProgressException"+_UpdateInProgressException = _MatchServiceError ecs "UpdateInProgressException" ++-- | The specified target could not be found. You can view your available container instances with 'ListContainerInstances' . Amazon ECS container instances are cluster-specific and region-specific.+--+--+_TargetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_TargetNotFoundException = _MatchServiceError ecs "TargetNotFoundException"+++-- | You can apply up to 10 custom attributes per resource. You can view the attributes of a resource with 'ListAttributes' . You can remove existing attributes on a resource with 'DeleteAttributes' .+--+--+_AttributeLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_AttributeLimitExceededException =+ _MatchServiceError ecs "AttributeLimitExceededException"++ -- | These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permission to use the action or resource, or specifying an identifier that is not valid. -- -- _ClientException :: AsError a => Getting (First ServiceError) a ServiceError-_ClientException = _ServiceError . hasCode "ClientException"+_ClientException = _MatchServiceError ecs "ClientException"+
gen/Network/AWS/ECS/Types/Product.hs view
@@ -9,2213 +9,2658 @@ -- | -- Module : Network.AWS.ECS.Types.Product--- Copyright : (c) 2013-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.AWS.ECS.Types.Product where--import Network.AWS.ECS.Types.Sum-import Network.AWS.Lens-import Network.AWS.Prelude---- | The attributes applicable to a container instance when it is registered.------------ /See:/ 'attribute' smart constructor.-data Attribute = Attribute'- { _aValue :: !(Maybe Text)- , _aName :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Attribute' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aValue' - The value of the container instance attribute (at this time, the value here is @Null@ , but this could change in future revisions for expandability).------ * 'aName' - The name of the container instance attribute.-attribute- :: Text -- ^ 'aName'- -> Attribute-attribute pName_ =- Attribute'- { _aValue = Nothing- , _aName = pName_- }---- | The value of the container instance attribute (at this time, the value here is @Null@ , but this could change in future revisions for expandability).-aValue :: Lens' Attribute (Maybe Text)-aValue = lens _aValue (\ s a -> s{_aValue = a});---- | The name of the container instance attribute.-aName :: Lens' Attribute Text-aName = lens _aName (\ s a -> s{_aName = a});--instance FromJSON Attribute where- parseJSON- = withObject "Attribute"- (\ x ->- Attribute' <$> (x .:? "value") <*> (x .: "name"))--instance Hashable Attribute--instance NFData Attribute--instance ToJSON Attribute where- toJSON Attribute'{..}- = object- (catMaybes- [("value" .=) <$> _aValue, Just ("name" .= _aName)])---- | A regional grouping of one or more container instances on which you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.------------ /See:/ 'cluster' smart constructor.-data Cluster = Cluster'- { _cStatus :: !(Maybe Text)- , _cClusterARN :: !(Maybe Text)- , _cRunningTasksCount :: !(Maybe Int)- , _cRegisteredContainerInstancesCount :: !(Maybe Int)- , _cPendingTasksCount :: !(Maybe Int)- , _cClusterName :: !(Maybe Text)- , _cActiveServicesCount :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Cluster' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cStatus' - The status of the cluster. The valid values are @ACTIVE@ or @INACTIVE@ . @ACTIVE@ indicates that you can register container instances with the cluster and the associated instances can accept tasks.------ * 'cClusterARN' - The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the cluster, the AWS account ID of the cluster owner, the @cluster@ namespace, and then the cluster name. For example, @arn:aws:ecs:/region/ :/012345678910/ :cluster//test/ @ ..------ * 'cRunningTasksCount' - The number of tasks in the cluster that are in the @RUNNING@ state.------ * 'cRegisteredContainerInstancesCount' - The number of container instances registered into the cluster.------ * 'cPendingTasksCount' - The number of tasks in the cluster that are in the @PENDING@ state.------ * 'cClusterName' - A user-generated string that you use to identify your cluster.------ * 'cActiveServicesCount' - The number of services that are running on the cluster in an @ACTIVE@ state. You can view these services with 'ListServices' .-cluster- :: Cluster-cluster =- Cluster'- { _cStatus = Nothing- , _cClusterARN = Nothing- , _cRunningTasksCount = Nothing- , _cRegisteredContainerInstancesCount = Nothing- , _cPendingTasksCount = Nothing- , _cClusterName = Nothing- , _cActiveServicesCount = Nothing- }---- | The status of the cluster. The valid values are @ACTIVE@ or @INACTIVE@ . @ACTIVE@ indicates that you can register container instances with the cluster and the associated instances can accept tasks.-cStatus :: Lens' Cluster (Maybe Text)-cStatus = lens _cStatus (\ s a -> s{_cStatus = a});---- | The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the cluster, the AWS account ID of the cluster owner, the @cluster@ namespace, and then the cluster name. For example, @arn:aws:ecs:/region/ :/012345678910/ :cluster//test/ @ ..-cClusterARN :: Lens' Cluster (Maybe Text)-cClusterARN = lens _cClusterARN (\ s a -> s{_cClusterARN = a});---- | The number of tasks in the cluster that are in the @RUNNING@ state.-cRunningTasksCount :: Lens' Cluster (Maybe Int)-cRunningTasksCount = lens _cRunningTasksCount (\ s a -> s{_cRunningTasksCount = a});---- | The number of container instances registered into the cluster.-cRegisteredContainerInstancesCount :: Lens' Cluster (Maybe Int)-cRegisteredContainerInstancesCount = lens _cRegisteredContainerInstancesCount (\ s a -> s{_cRegisteredContainerInstancesCount = a});---- | The number of tasks in the cluster that are in the @PENDING@ state.-cPendingTasksCount :: Lens' Cluster (Maybe Int)-cPendingTasksCount = lens _cPendingTasksCount (\ s a -> s{_cPendingTasksCount = a});---- | A user-generated string that you use to identify your cluster.-cClusterName :: Lens' Cluster (Maybe Text)-cClusterName = lens _cClusterName (\ s a -> s{_cClusterName = a});---- | The number of services that are running on the cluster in an @ACTIVE@ state. You can view these services with 'ListServices' .-cActiveServicesCount :: Lens' Cluster (Maybe Int)-cActiveServicesCount = lens _cActiveServicesCount (\ s a -> s{_cActiveServicesCount = a});--instance FromJSON Cluster where- parseJSON- = withObject "Cluster"- (\ x ->- Cluster' <$>- (x .:? "status") <*> (x .:? "clusterArn") <*>- (x .:? "runningTasksCount")- <*> (x .:? "registeredContainerInstancesCount")- <*> (x .:? "pendingTasksCount")- <*> (x .:? "clusterName")- <*> (x .:? "activeServicesCount"))--instance Hashable Cluster--instance NFData Cluster---- | A Docker container that is part of a task.------------ /See:/ 'container' smart constructor.-data Container = Container'- { _cNetworkBindings :: !(Maybe [NetworkBinding])- , _cContainerARN :: !(Maybe Text)- , _cTaskARN :: !(Maybe Text)- , _cLastStatus :: !(Maybe Text)- , _cReason :: !(Maybe Text)- , _cName :: !(Maybe Text)- , _cExitCode :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Container' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cNetworkBindings' - The network bindings associated with the container.------ * 'cContainerARN' - The Amazon Resource Name (ARN) of the container.------ * 'cTaskARN' - The Amazon Resource Name (ARN) of the task.------ * 'cLastStatus' - The last known status of the container.------ * 'cReason' - A short (255 max characters) human-readable string to provide additional detail about a running or stopped container.------ * 'cName' - The name of the container.------ * 'cExitCode' - The exit code returned from the container.-container- :: Container-container =- Container'- { _cNetworkBindings = Nothing- , _cContainerARN = Nothing- , _cTaskARN = Nothing- , _cLastStatus = Nothing- , _cReason = Nothing- , _cName = Nothing- , _cExitCode = Nothing- }---- | The network bindings associated with the container.-cNetworkBindings :: Lens' Container [NetworkBinding]-cNetworkBindings = lens _cNetworkBindings (\ s a -> s{_cNetworkBindings = a}) . _Default . _Coerce;---- | The Amazon Resource Name (ARN) of the container.-cContainerARN :: Lens' Container (Maybe Text)-cContainerARN = lens _cContainerARN (\ s a -> s{_cContainerARN = a});---- | The Amazon Resource Name (ARN) of the task.-cTaskARN :: Lens' Container (Maybe Text)-cTaskARN = lens _cTaskARN (\ s a -> s{_cTaskARN = a});---- | The last known status of the container.-cLastStatus :: Lens' Container (Maybe Text)-cLastStatus = lens _cLastStatus (\ s a -> s{_cLastStatus = a});---- | A short (255 max characters) human-readable string to provide additional detail about a running or stopped container.-cReason :: Lens' Container (Maybe Text)-cReason = lens _cReason (\ s a -> s{_cReason = a});---- | The name of the container.-cName :: Lens' Container (Maybe Text)-cName = lens _cName (\ s a -> s{_cName = a});---- | The exit code returned from the container.-cExitCode :: Lens' Container (Maybe Int)-cExitCode = lens _cExitCode (\ s a -> s{_cExitCode = a});--instance FromJSON Container where- parseJSON- = withObject "Container"- (\ x ->- Container' <$>- (x .:? "networkBindings" .!= mempty) <*>- (x .:? "containerArn")- <*> (x .:? "taskArn")- <*> (x .:? "lastStatus")- <*> (x .:? "reason")- <*> (x .:? "name")- <*> (x .:? "exitCode"))--instance Hashable Container--instance NFData Container---- | Container definitions are used in task definitions to describe the different containers that are launched as part of a task.------------ /See:/ 'containerDefinition' smart constructor.-data ContainerDefinition = ContainerDefinition'- { _cdImage :: !(Maybe Text)- , _cdCommand :: !(Maybe [Text])- , _cdHostname :: !(Maybe Text)- , _cdDockerSecurityOptions :: !(Maybe [Text])- , _cdDisableNetworking :: !(Maybe Bool)- , _cdVolumesFrom :: !(Maybe [VolumeFrom])- , _cdEnvironment :: !(Maybe [KeyValuePair])- , _cdEntryPoint :: !(Maybe [Text])- , _cdWorkingDirectory :: !(Maybe Text)- , _cdUlimits :: !(Maybe [Ulimit])- , _cdPrivileged :: !(Maybe Bool)- , _cdPortMappings :: !(Maybe [PortMapping])- , _cdDockerLabels :: !(Maybe (Map Text Text))- , _cdExtraHosts :: !(Maybe [HostEntry])- , _cdMemory :: !(Maybe Int)- , _cdUser :: !(Maybe Text)- , _cdDnsSearchDomains :: !(Maybe [Text])- , _cdLogConfiguration :: !(Maybe LogConfiguration)- , _cdName :: !(Maybe Text)- , _cdDnsServers :: !(Maybe [Text])- , _cdMountPoints :: !(Maybe [MountPoint])- , _cdLinks :: !(Maybe [Text])- , _cdReadonlyRootFilesystem :: !(Maybe Bool)- , _cdEssential :: !(Maybe Bool)- , _cdCpu :: !(Maybe Int)- , _cdMemoryReservation :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ContainerDefinition' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cdImage' - The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with @/repository-url/ //image/ :/tag/ @ . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to @Image@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @IMAGE@ parameter of <https://docs.docker.com/engine/reference/run/ docker run> . * Images in official repositories on Docker Hub use a single name (for example, @ubuntu@ or @mongo@ ). * Images in other repositories on Docker Hub are qualified with an organization name (for example, @amazon/amazon-ecs-agent@ ). * Images in other online repositories are qualified further by a domain name (for example, @quay.io/assemblyline/ubuntu@ ).------ * 'cdCommand' - The command that is passed to the container. This parameter maps to @Cmd@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @COMMAND@ parameter to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#cmd https://docs.docker.com/engine/reference/builder/#cmd> .------ * 'cdHostname' - The hostname to use for your container. This parameter maps to @Hostname@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--hostname@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdDockerSecurityOptions' - A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to @SecurityOpt@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--security-opt@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdDisableNetworking' - When this parameter is true, networking is disabled within the container. This parameter maps to @NetworkDisabled@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> .------ * 'cdVolumesFrom' - Data volumes to mount from another container. This parameter maps to @VolumesFrom@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--volumes-from@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdEnvironment' - The environment variables to pass to a container. This parameter maps to @Env@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--env@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ We do not recommend using plain text environment variables for sensitive information, such as credential data.------ * 'cdEntryPoint' - /Important:/ Early versions of the Amazon ECS container agent do not properly handle @entryPoint@ parameters. If you have problems using @entryPoint@ , update your container agent or enter your commands and arguments as @command@ array items instead. The entry point that is passed to the container. This parameter maps to @Entrypoint@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--entrypoint@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#entrypoint https://docs.docker.com/engine/reference/builder/#entrypoint> .------ * 'cdWorkingDirectory' - The working directory in which to run commands inside the container. This parameter maps to @WorkingDir@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--workdir@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdUlimits' - A list of @ulimits@ to set in the container. This parameter maps to @Ulimits@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--ulimit@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid naming values are displayed in the 'Ulimit' data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@------ * 'cdPrivileged' - When this parameter is true, the container is given elevated privileges on the host container instance (similar to the @root@ user). This parameter maps to @Privileged@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--privileged@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdPortMappings' - The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to @PortBindings@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--publish@ option to <https://docs.docker.com/engine/reference/run/ docker run> . If the network mode of a task definition is set to @none@ , then you cannot specify port mappings. If the network mode of a task definition is set to @host@ , then host ports must either be undefined or they must match the container port in the port mapping.------ * 'cdDockerLabels' - A key/value map of labels to add to the container. This parameter maps to @Labels@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--label@ option to <https://docs.docker.com/engine/reference/run/ docker run> . This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@------ * 'cdExtraHosts' - A list of hostnames and IP address mappings to append to the @/etc/hosts@ file on the container. This parameter maps to @ExtraHosts@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--add-host@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdMemory' - The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to @Memory@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--memory@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.------ * 'cdUser' - The user name to use inside the container. This parameter maps to @User@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--user@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdDnsSearchDomains' - A list of DNS search domains that are presented to the container. This parameter maps to @DnsSearch@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--dns-search@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdLogConfiguration' - The log configuration specification for the container. This parameter maps to @LogConfig@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--log-driver@ option to <https://docs.docker.com/engine/reference/run/ docker run> . By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see <https://docs.docker.com/engine/admin/logging/overview/ Configure logging drivers> in the Docker documentation. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@------ * 'cdName' - The name of a container. If you are linking multiple containers together in a task definition, the @name@ of one container can be entered in the @links@ of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to @name@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--name@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdDnsServers' - A list of DNS servers that are presented to the container. This parameter maps to @Dns@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--dns@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdMountPoints' - The mount points for data volumes in your container. This parameter maps to @Volumes@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--volume@ option to <https://docs.docker.com/engine/reference/run/ docker run> .------ * 'cdLinks' - The @link@ parameter allows containers to communicate with each other without the need for port mappings, using the @name@ parameter and optionally, an @alias@ for the link. This construct is analogous to @name:alias@ in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each @name@ and @alias@ . For more information on linking Docker containers, see <https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/ https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/> . This parameter maps to @Links@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--link@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.------ * 'cdReadonlyRootFilesystem' - When this parameter is true, the container is given read-only access to its root file system. This parameter maps to @ReadonlyRootfs@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--read-only@ option to @docker run@ .------ * 'cdEssential' - If the @essential@ parameter of a container is marked as @true@ , and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the @essential@ parameter of a container is marked as @false@ , then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html Application Architecture> in the /Amazon EC2 Container Service Developer Guide/ .------ * 'cdCpu' - The number of @cpu@ units reserved for the container. A container instance has 1,024 @cpu@ units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to @CpuShares@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--cpu-shares@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see <https://docs.docker.com/engine/reference/run/#cpu-share-constraint CPU share constraint> in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: * __Agent versions less than or equal to 1.1.0:__ Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares. * __Agent versions greater than or equal to 1.2.0:__ Null, zero, and CPU values of 1 are passed to Docker as 2.------ * 'cdMemoryReservation' - The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the @memory@ parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to @MemoryReservation@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--memory-reservation@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a @memoryReservation@ of 128 MiB, and a @memory@ hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.-containerDefinition- :: ContainerDefinition-containerDefinition =- ContainerDefinition'- { _cdImage = Nothing- , _cdCommand = Nothing- , _cdHostname = Nothing- , _cdDockerSecurityOptions = Nothing- , _cdDisableNetworking = Nothing- , _cdVolumesFrom = Nothing- , _cdEnvironment = Nothing- , _cdEntryPoint = Nothing- , _cdWorkingDirectory = Nothing- , _cdUlimits = Nothing- , _cdPrivileged = Nothing- , _cdPortMappings = Nothing- , _cdDockerLabels = Nothing- , _cdExtraHosts = Nothing- , _cdMemory = Nothing- , _cdUser = Nothing- , _cdDnsSearchDomains = Nothing- , _cdLogConfiguration = Nothing- , _cdName = Nothing- , _cdDnsServers = Nothing- , _cdMountPoints = Nothing- , _cdLinks = Nothing- , _cdReadonlyRootFilesystem = Nothing- , _cdEssential = Nothing- , _cdCpu = Nothing- , _cdMemoryReservation = Nothing- }---- | The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with @/repository-url/ //image/ :/tag/ @ . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to @Image@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @IMAGE@ parameter of <https://docs.docker.com/engine/reference/run/ docker run> . * Images in official repositories on Docker Hub use a single name (for example, @ubuntu@ or @mongo@ ). * Images in other repositories on Docker Hub are qualified with an organization name (for example, @amazon/amazon-ecs-agent@ ). * Images in other online repositories are qualified further by a domain name (for example, @quay.io/assemblyline/ubuntu@ ).-cdImage :: Lens' ContainerDefinition (Maybe Text)-cdImage = lens _cdImage (\ s a -> s{_cdImage = a});---- | The command that is passed to the container. This parameter maps to @Cmd@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @COMMAND@ parameter to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#cmd https://docs.docker.com/engine/reference/builder/#cmd> .-cdCommand :: Lens' ContainerDefinition [Text]-cdCommand = lens _cdCommand (\ s a -> s{_cdCommand = a}) . _Default . _Coerce;---- | The hostname to use for your container. This parameter maps to @Hostname@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--hostname@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdHostname :: Lens' ContainerDefinition (Maybe Text)-cdHostname = lens _cdHostname (\ s a -> s{_cdHostname = a});---- | A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to @SecurityOpt@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--security-opt@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdDockerSecurityOptions :: Lens' ContainerDefinition [Text]-cdDockerSecurityOptions = lens _cdDockerSecurityOptions (\ s a -> s{_cdDockerSecurityOptions = a}) . _Default . _Coerce;---- | When this parameter is true, networking is disabled within the container. This parameter maps to @NetworkDisabled@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> .-cdDisableNetworking :: Lens' ContainerDefinition (Maybe Bool)-cdDisableNetworking = lens _cdDisableNetworking (\ s a -> s{_cdDisableNetworking = a});---- | Data volumes to mount from another container. This parameter maps to @VolumesFrom@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--volumes-from@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom]-cdVolumesFrom = lens _cdVolumesFrom (\ s a -> s{_cdVolumesFrom = a}) . _Default . _Coerce;---- | The environment variables to pass to a container. This parameter maps to @Env@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--env@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ We do not recommend using plain text environment variables for sensitive information, such as credential data.-cdEnvironment :: Lens' ContainerDefinition [KeyValuePair]-cdEnvironment = lens _cdEnvironment (\ s a -> s{_cdEnvironment = a}) . _Default . _Coerce;---- | /Important:/ Early versions of the Amazon ECS container agent do not properly handle @entryPoint@ parameters. If you have problems using @entryPoint@ , update your container agent or enter your commands and arguments as @command@ array items instead. The entry point that is passed to the container. This parameter maps to @Entrypoint@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--entrypoint@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#entrypoint https://docs.docker.com/engine/reference/builder/#entrypoint> .-cdEntryPoint :: Lens' ContainerDefinition [Text]-cdEntryPoint = lens _cdEntryPoint (\ s a -> s{_cdEntryPoint = a}) . _Default . _Coerce;---- | The working directory in which to run commands inside the container. This parameter maps to @WorkingDir@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--workdir@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdWorkingDirectory :: Lens' ContainerDefinition (Maybe Text)-cdWorkingDirectory = lens _cdWorkingDirectory (\ s a -> s{_cdWorkingDirectory = a});---- | A list of @ulimits@ to set in the container. This parameter maps to @Ulimits@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--ulimit@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid naming values are displayed in the 'Ulimit' data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@-cdUlimits :: Lens' ContainerDefinition [Ulimit]-cdUlimits = lens _cdUlimits (\ s a -> s{_cdUlimits = a}) . _Default . _Coerce;---- | When this parameter is true, the container is given elevated privileges on the host container instance (similar to the @root@ user). This parameter maps to @Privileged@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--privileged@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdPrivileged :: Lens' ContainerDefinition (Maybe Bool)-cdPrivileged = lens _cdPrivileged (\ s a -> s{_cdPrivileged = a});---- | The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to @PortBindings@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--publish@ option to <https://docs.docker.com/engine/reference/run/ docker run> . If the network mode of a task definition is set to @none@ , then you cannot specify port mappings. If the network mode of a task definition is set to @host@ , then host ports must either be undefined or they must match the container port in the port mapping.-cdPortMappings :: Lens' ContainerDefinition [PortMapping]-cdPortMappings = lens _cdPortMappings (\ s a -> s{_cdPortMappings = a}) . _Default . _Coerce;---- | A key/value map of labels to add to the container. This parameter maps to @Labels@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--label@ option to <https://docs.docker.com/engine/reference/run/ docker run> . This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@-cdDockerLabels :: Lens' ContainerDefinition (HashMap Text Text)-cdDockerLabels = lens _cdDockerLabels (\ s a -> s{_cdDockerLabels = a}) . _Default . _Map;---- | A list of hostnames and IP address mappings to append to the @/etc/hosts@ file on the container. This parameter maps to @ExtraHosts@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--add-host@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdExtraHosts :: Lens' ContainerDefinition [HostEntry]-cdExtraHosts = lens _cdExtraHosts (\ s a -> s{_cdExtraHosts = a}) . _Default . _Coerce;---- | The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to @Memory@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--memory@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.-cdMemory :: Lens' ContainerDefinition (Maybe Int)-cdMemory = lens _cdMemory (\ s a -> s{_cdMemory = a});---- | The user name to use inside the container. This parameter maps to @User@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--user@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdUser :: Lens' ContainerDefinition (Maybe Text)-cdUser = lens _cdUser (\ s a -> s{_cdUser = a});---- | A list of DNS search domains that are presented to the container. This parameter maps to @DnsSearch@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--dns-search@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdDnsSearchDomains :: Lens' ContainerDefinition [Text]-cdDnsSearchDomains = lens _cdDnsSearchDomains (\ s a -> s{_cdDnsSearchDomains = a}) . _Default . _Coerce;---- | The log configuration specification for the container. This parameter maps to @LogConfig@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--log-driver@ option to <https://docs.docker.com/engine/reference/run/ docker run> . By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see <https://docs.docker.com/engine/admin/logging/overview/ Configure logging drivers> in the Docker documentation. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@-cdLogConfiguration :: Lens' ContainerDefinition (Maybe LogConfiguration)-cdLogConfiguration = lens _cdLogConfiguration (\ s a -> s{_cdLogConfiguration = a});---- | The name of a container. If you are linking multiple containers together in a task definition, the @name@ of one container can be entered in the @links@ of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to @name@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--name@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdName :: Lens' ContainerDefinition (Maybe Text)-cdName = lens _cdName (\ s a -> s{_cdName = a});---- | A list of DNS servers that are presented to the container. This parameter maps to @Dns@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--dns@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdDnsServers :: Lens' ContainerDefinition [Text]-cdDnsServers = lens _cdDnsServers (\ s a -> s{_cdDnsServers = a}) . _Default . _Coerce;---- | The mount points for data volumes in your container. This parameter maps to @Volumes@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--volume@ option to <https://docs.docker.com/engine/reference/run/ docker run> .-cdMountPoints :: Lens' ContainerDefinition [MountPoint]-cdMountPoints = lens _cdMountPoints (\ s a -> s{_cdMountPoints = a}) . _Default . _Coerce;---- | The @link@ parameter allows containers to communicate with each other without the need for port mappings, using the @name@ parameter and optionally, an @alias@ for the link. This construct is analogous to @name:alias@ in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each @name@ and @alias@ . For more information on linking Docker containers, see <https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/ https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/> . This parameter maps to @Links@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--link@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.-cdLinks :: Lens' ContainerDefinition [Text]-cdLinks = lens _cdLinks (\ s a -> s{_cdLinks = a}) . _Default . _Coerce;---- | When this parameter is true, the container is given read-only access to its root file system. This parameter maps to @ReadonlyRootfs@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--read-only@ option to @docker run@ .-cdReadonlyRootFilesystem :: Lens' ContainerDefinition (Maybe Bool)-cdReadonlyRootFilesystem = lens _cdReadonlyRootFilesystem (\ s a -> s{_cdReadonlyRootFilesystem = a});---- | If the @essential@ parameter of a container is marked as @true@ , and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the @essential@ parameter of a container is marked as @false@ , then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html Application Architecture> in the /Amazon EC2 Container Service Developer Guide/ .-cdEssential :: Lens' ContainerDefinition (Maybe Bool)-cdEssential = lens _cdEssential (\ s a -> s{_cdEssential = a});---- | The number of @cpu@ units reserved for the container. A container instance has 1,024 @cpu@ units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to @CpuShares@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--cpu-shares@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see <https://docs.docker.com/engine/reference/run/#cpu-share-constraint CPU share constraint> in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: * __Agent versions less than or equal to 1.1.0:__ Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares. * __Agent versions greater than or equal to 1.2.0:__ Null, zero, and CPU values of 1 are passed to Docker as 2.-cdCpu :: Lens' ContainerDefinition (Maybe Int)-cdCpu = lens _cdCpu (\ s a -> s{_cdCpu = a});---- | The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the @memory@ parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to @MemoryReservation@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/ Docker Remote API> and the @--memory-reservation@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a @memoryReservation@ of 128 MiB, and a @memory@ hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.-cdMemoryReservation :: Lens' ContainerDefinition (Maybe Int)-cdMemoryReservation = lens _cdMemoryReservation (\ s a -> s{_cdMemoryReservation = a});--instance FromJSON ContainerDefinition where- parseJSON- = withObject "ContainerDefinition"- (\ x ->- ContainerDefinition' <$>- (x .:? "image") <*> (x .:? "command" .!= mempty) <*>- (x .:? "hostname")- <*> (x .:? "dockerSecurityOptions" .!= mempty)- <*> (x .:? "disableNetworking")- <*> (x .:? "volumesFrom" .!= mempty)- <*> (x .:? "environment" .!= mempty)- <*> (x .:? "entryPoint" .!= mempty)- <*> (x .:? "workingDirectory")- <*> (x .:? "ulimits" .!= mempty)- <*> (x .:? "privileged")- <*> (x .:? "portMappings" .!= mempty)- <*> (x .:? "dockerLabels" .!= mempty)- <*> (x .:? "extraHosts" .!= mempty)- <*> (x .:? "memory")- <*> (x .:? "user")- <*> (x .:? "dnsSearchDomains" .!= mempty)- <*> (x .:? "logConfiguration")- <*> (x .:? "name")- <*> (x .:? "dnsServers" .!= mempty)- <*> (x .:? "mountPoints" .!= mempty)- <*> (x .:? "links" .!= mempty)- <*> (x .:? "readonlyRootFilesystem")- <*> (x .:? "essential")- <*> (x .:? "cpu")- <*> (x .:? "memoryReservation"))--instance Hashable ContainerDefinition--instance NFData ContainerDefinition--instance ToJSON ContainerDefinition where- toJSON ContainerDefinition'{..}- = object- (catMaybes- [("image" .=) <$> _cdImage,- ("command" .=) <$> _cdCommand,- ("hostname" .=) <$> _cdHostname,- ("dockerSecurityOptions" .=) <$>- _cdDockerSecurityOptions,- ("disableNetworking" .=) <$> _cdDisableNetworking,- ("volumesFrom" .=) <$> _cdVolumesFrom,- ("environment" .=) <$> _cdEnvironment,- ("entryPoint" .=) <$> _cdEntryPoint,- ("workingDirectory" .=) <$> _cdWorkingDirectory,- ("ulimits" .=) <$> _cdUlimits,- ("privileged" .=) <$> _cdPrivileged,- ("portMappings" .=) <$> _cdPortMappings,- ("dockerLabels" .=) <$> _cdDockerLabels,- ("extraHosts" .=) <$> _cdExtraHosts,- ("memory" .=) <$> _cdMemory, ("user" .=) <$> _cdUser,- ("dnsSearchDomains" .=) <$> _cdDnsSearchDomains,- ("logConfiguration" .=) <$> _cdLogConfiguration,- ("name" .=) <$> _cdName,- ("dnsServers" .=) <$> _cdDnsServers,- ("mountPoints" .=) <$> _cdMountPoints,- ("links" .=) <$> _cdLinks,- ("readonlyRootFilesystem" .=) <$>- _cdReadonlyRootFilesystem,- ("essential" .=) <$> _cdEssential,- ("cpu" .=) <$> _cdCpu,- ("memoryReservation" .=) <$> _cdMemoryReservation])---- | An EC2 instance that is running the Amazon ECS agent and has been registered with a cluster.------------ /See:/ 'containerInstance' smart constructor.-data ContainerInstance = ContainerInstance'- { _ciStatus :: !(Maybe Text)- , _ciRunningTasksCount :: !(Maybe Int)- , _ciRemainingResources :: !(Maybe [Resource])- , _ciEc2InstanceId :: !(Maybe Text)- , _ciContainerInstanceARN :: !(Maybe Text)- , _ciAgentConnected :: !(Maybe Bool)- , _ciVersionInfo :: !(Maybe VersionInfo)- , _ciAgentUpdateStatus :: !(Maybe AgentUpdateStatus)- , _ciAttributes :: !(Maybe [Attribute])- , _ciVersion :: !(Maybe Integer)- , _ciPendingTasksCount :: !(Maybe Int)- , _ciRegisteredResources :: !(Maybe [Resource])- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ContainerInstance' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ciStatus' - The status of the container instance. The valid values are @ACTIVE@ or @INACTIVE@ . @ACTIVE@ indicates that the container instance can accept tasks.------ * 'ciRunningTasksCount' - The number of tasks on the container instance that are in the @RUNNING@ status.------ * 'ciRemainingResources' - For most resource types, this parameter describes the remaining resources of the container instance that are available for new tasks. For port resource types, this parameter describes the ports that are reserved by the Amazon ECS container agent and any containers that have reserved port mappings; any port that is not specified here is available for new tasks.------ * 'ciEc2InstanceId' - The EC2 instance ID of the container instance.------ * 'ciContainerInstanceARN' - The Amazon Resource Name (ARN) of the container instance. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the @container-instance@ namespace, and then the container instance ID. For example, @arn:aws:ecs:/region/ :/aws_account_id/ :container-instance//container_instance_ID/ @ .------ * 'ciAgentConnected' - This parameter returns @true@ if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return @false@ , and instances without a connected agent cannot accept placement requests.------ * 'ciVersionInfo' - The version information for the Amazon ECS container agent and Docker daemon running on the container instance.------ * 'ciAgentUpdateStatus' - The status of the most recent agent update. If an update has never been requested, this value is @NULL@ .------ * 'ciAttributes' - The attributes set for the container instance by the Amazon ECS container agent at instance registration.------ * 'ciVersion' - The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch events for the container instance (inside the @detail@ object) to verify that the version in your event stream is current.------ * 'ciPendingTasksCount' - The number of tasks on the container instance that are in the @PENDING@ status.------ * 'ciRegisteredResources' - For most resource types, this parameter describes the registered resources on the container instance that are in use by current tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.-containerInstance- :: ContainerInstance-containerInstance =- ContainerInstance'- { _ciStatus = Nothing- , _ciRunningTasksCount = Nothing- , _ciRemainingResources = Nothing- , _ciEc2InstanceId = Nothing- , _ciContainerInstanceARN = Nothing- , _ciAgentConnected = Nothing- , _ciVersionInfo = Nothing- , _ciAgentUpdateStatus = Nothing- , _ciAttributes = Nothing- , _ciVersion = Nothing- , _ciPendingTasksCount = Nothing- , _ciRegisteredResources = Nothing- }---- | The status of the container instance. The valid values are @ACTIVE@ or @INACTIVE@ . @ACTIVE@ indicates that the container instance can accept tasks.-ciStatus :: Lens' ContainerInstance (Maybe Text)-ciStatus = lens _ciStatus (\ s a -> s{_ciStatus = a});---- | The number of tasks on the container instance that are in the @RUNNING@ status.-ciRunningTasksCount :: Lens' ContainerInstance (Maybe Int)-ciRunningTasksCount = lens _ciRunningTasksCount (\ s a -> s{_ciRunningTasksCount = a});---- | For most resource types, this parameter describes the remaining resources of the container instance that are available for new tasks. For port resource types, this parameter describes the ports that are reserved by the Amazon ECS container agent and any containers that have reserved port mappings; any port that is not specified here is available for new tasks.-ciRemainingResources :: Lens' ContainerInstance [Resource]-ciRemainingResources = lens _ciRemainingResources (\ s a -> s{_ciRemainingResources = a}) . _Default . _Coerce;---- | The EC2 instance ID of the container instance.-ciEc2InstanceId :: Lens' ContainerInstance (Maybe Text)-ciEc2InstanceId = lens _ciEc2InstanceId (\ s a -> s{_ciEc2InstanceId = a});---- | The Amazon Resource Name (ARN) of the container instance. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the @container-instance@ namespace, and then the container instance ID. For example, @arn:aws:ecs:/region/ :/aws_account_id/ :container-instance//container_instance_ID/ @ .-ciContainerInstanceARN :: Lens' ContainerInstance (Maybe Text)-ciContainerInstanceARN = lens _ciContainerInstanceARN (\ s a -> s{_ciContainerInstanceARN = a});---- | This parameter returns @true@ if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return @false@ , and instances without a connected agent cannot accept placement requests.-ciAgentConnected :: Lens' ContainerInstance (Maybe Bool)-ciAgentConnected = lens _ciAgentConnected (\ s a -> s{_ciAgentConnected = a});---- | The version information for the Amazon ECS container agent and Docker daemon running on the container instance.-ciVersionInfo :: Lens' ContainerInstance (Maybe VersionInfo)-ciVersionInfo = lens _ciVersionInfo (\ s a -> s{_ciVersionInfo = a});---- | The status of the most recent agent update. If an update has never been requested, this value is @NULL@ .-ciAgentUpdateStatus :: Lens' ContainerInstance (Maybe AgentUpdateStatus)-ciAgentUpdateStatus = lens _ciAgentUpdateStatus (\ s a -> s{_ciAgentUpdateStatus = a});---- | The attributes set for the container instance by the Amazon ECS container agent at instance registration.-ciAttributes :: Lens' ContainerInstance [Attribute]-ciAttributes = lens _ciAttributes (\ s a -> s{_ciAttributes = a}) . _Default . _Coerce;---- | The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch events for the container instance (inside the @detail@ object) to verify that the version in your event stream is current.-ciVersion :: Lens' ContainerInstance (Maybe Integer)-ciVersion = lens _ciVersion (\ s a -> s{_ciVersion = a});---- | The number of tasks on the container instance that are in the @PENDING@ status.-ciPendingTasksCount :: Lens' ContainerInstance (Maybe Int)-ciPendingTasksCount = lens _ciPendingTasksCount (\ s a -> s{_ciPendingTasksCount = a});---- | For most resource types, this parameter describes the registered resources on the container instance that are in use by current tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.-ciRegisteredResources :: Lens' ContainerInstance [Resource]-ciRegisteredResources = lens _ciRegisteredResources (\ s a -> s{_ciRegisteredResources = a}) . _Default . _Coerce;--instance FromJSON ContainerInstance where- parseJSON- = withObject "ContainerInstance"- (\ x ->- ContainerInstance' <$>- (x .:? "status") <*> (x .:? "runningTasksCount") <*>- (x .:? "remainingResources" .!= mempty)- <*> (x .:? "ec2InstanceId")- <*> (x .:? "containerInstanceArn")- <*> (x .:? "agentConnected")- <*> (x .:? "versionInfo")- <*> (x .:? "agentUpdateStatus")- <*> (x .:? "attributes" .!= mempty)- <*> (x .:? "version")- <*> (x .:? "pendingTasksCount")- <*> (x .:? "registeredResources" .!= mempty))--instance Hashable ContainerInstance--instance NFData ContainerInstance---- | The overrides that should be sent to a container.------------ /See:/ 'containerOverride' smart constructor.-data ContainerOverride = ContainerOverride'- { _coCommand :: !(Maybe [Text])- , _coEnvironment :: !(Maybe [KeyValuePair])- , _coName :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ContainerOverride' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'coCommand' - The command to send to the container that overrides the default command from the Docker image or the task definition.------ * 'coEnvironment' - The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition.------ * 'coName' - The name of the container that receives the override.-containerOverride- :: ContainerOverride-containerOverride =- ContainerOverride'- { _coCommand = Nothing- , _coEnvironment = Nothing- , _coName = Nothing- }---- | The command to send to the container that overrides the default command from the Docker image or the task definition.-coCommand :: Lens' ContainerOverride [Text]-coCommand = lens _coCommand (\ s a -> s{_coCommand = a}) . _Default . _Coerce;---- | The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition.-coEnvironment :: Lens' ContainerOverride [KeyValuePair]-coEnvironment = lens _coEnvironment (\ s a -> s{_coEnvironment = a}) . _Default . _Coerce;---- | The name of the container that receives the override.-coName :: Lens' ContainerOverride (Maybe Text)-coName = lens _coName (\ s a -> s{_coName = a});--instance FromJSON ContainerOverride where- parseJSON- = withObject "ContainerOverride"- (\ x ->- ContainerOverride' <$>- (x .:? "command" .!= mempty) <*>- (x .:? "environment" .!= mempty)- <*> (x .:? "name"))--instance Hashable ContainerOverride--instance NFData ContainerOverride--instance ToJSON ContainerOverride where- toJSON ContainerOverride'{..}- = object- (catMaybes- [("command" .=) <$> _coCommand,- ("environment" .=) <$> _coEnvironment,- ("name" .=) <$> _coName])---- | Details on a service within a cluster------------ /See:/ 'containerService' smart constructor.-data ContainerService = ContainerService'- { _csRunningCount :: !(Maybe Int)- , _csStatus :: !(Maybe Text)- , _csClusterARN :: !(Maybe Text)- , _csCreatedAt :: !(Maybe POSIX)- , _csDesiredCount :: !(Maybe Int)- , _csLoadBalancers :: !(Maybe [LoadBalancer])- , _csPendingCount :: !(Maybe Int)- , _csEvents :: !(Maybe [ServiceEvent])- , _csDeployments :: !(Maybe [Deployment])- , _csServiceName :: !(Maybe Text)- , _csServiceARN :: !(Maybe Text)- , _csTaskDefinition :: !(Maybe Text)- , _csRoleARN :: !(Maybe Text)- , _csDeploymentConfiguration :: !(Maybe DeploymentConfiguration)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ContainerService' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'csRunningCount' - The number of tasks in the cluster that are in the @RUNNING@ state.------ * 'csStatus' - The status of the service. The valid values are @ACTIVE@ , @DRAINING@ , or @INACTIVE@ .------ * 'csClusterARN' - The Amazon Resource Name (ARN) of the cluster that hosts the service.------ * 'csCreatedAt' - The Unix timestamp for when the service was created.------ * 'csDesiredCount' - The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .------ * 'csLoadBalancers' - A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.------ * 'csPendingCount' - The number of tasks in the cluster that are in the @PENDING@ state.------ * 'csEvents' - The event stream for your service. A maximum of 100 of the latest events are displayed.------ * 'csDeployments' - The current state of deployments for the service.------ * 'csServiceName' - The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.------ * 'csServiceARN' - The Amazon Resource Name (ARN) that identifies the service. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the service, the AWS account ID of the service owner, the @service@ namespace, and then the service name. For example, @arn:aws:ecs:/region/ :/012345678910/ :service//my-service/ @ .------ * 'csTaskDefinition' - The task definition to use for tasks in the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .------ * 'csRoleARN' - The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.------ * 'csDeploymentConfiguration' - Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.-containerService- :: ContainerService-containerService =- ContainerService'- { _csRunningCount = Nothing- , _csStatus = Nothing- , _csClusterARN = Nothing- , _csCreatedAt = Nothing- , _csDesiredCount = Nothing- , _csLoadBalancers = Nothing- , _csPendingCount = Nothing- , _csEvents = Nothing- , _csDeployments = Nothing- , _csServiceName = Nothing- , _csServiceARN = Nothing- , _csTaskDefinition = Nothing- , _csRoleARN = Nothing- , _csDeploymentConfiguration = Nothing- }---- | The number of tasks in the cluster that are in the @RUNNING@ state.-csRunningCount :: Lens' ContainerService (Maybe Int)-csRunningCount = lens _csRunningCount (\ s a -> s{_csRunningCount = a});---- | The status of the service. The valid values are @ACTIVE@ , @DRAINING@ , or @INACTIVE@ .-csStatus :: Lens' ContainerService (Maybe Text)-csStatus = lens _csStatus (\ s a -> s{_csStatus = a});---- | The Amazon Resource Name (ARN) of the cluster that hosts the service.-csClusterARN :: Lens' ContainerService (Maybe Text)-csClusterARN = lens _csClusterARN (\ s a -> s{_csClusterARN = a});---- | The Unix timestamp for when the service was created.-csCreatedAt :: Lens' ContainerService (Maybe UTCTime)-csCreatedAt = lens _csCreatedAt (\ s a -> s{_csCreatedAt = a}) . mapping _Time;---- | The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .-csDesiredCount :: Lens' ContainerService (Maybe Int)-csDesiredCount = lens _csDesiredCount (\ s a -> s{_csDesiredCount = a});---- | A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.-csLoadBalancers :: Lens' ContainerService [LoadBalancer]-csLoadBalancers = lens _csLoadBalancers (\ s a -> s{_csLoadBalancers = a}) . _Default . _Coerce;---- | The number of tasks in the cluster that are in the @PENDING@ state.-csPendingCount :: Lens' ContainerService (Maybe Int)-csPendingCount = lens _csPendingCount (\ s a -> s{_csPendingCount = a});---- | The event stream for your service. A maximum of 100 of the latest events are displayed.-csEvents :: Lens' ContainerService [ServiceEvent]-csEvents = lens _csEvents (\ s a -> s{_csEvents = a}) . _Default . _Coerce;---- | The current state of deployments for the service.-csDeployments :: Lens' ContainerService [Deployment]-csDeployments = lens _csDeployments (\ s a -> s{_csDeployments = a}) . _Default . _Coerce;---- | The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.-csServiceName :: Lens' ContainerService (Maybe Text)-csServiceName = lens _csServiceName (\ s a -> s{_csServiceName = a});---- | The Amazon Resource Name (ARN) that identifies the service. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the service, the AWS account ID of the service owner, the @service@ namespace, and then the service name. For example, @arn:aws:ecs:/region/ :/012345678910/ :service//my-service/ @ .-csServiceARN :: Lens' ContainerService (Maybe Text)-csServiceARN = lens _csServiceARN (\ s a -> s{_csServiceARN = a});---- | The task definition to use for tasks in the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .-csTaskDefinition :: Lens' ContainerService (Maybe Text)-csTaskDefinition = lens _csTaskDefinition (\ s a -> s{_csTaskDefinition = a});---- | The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.-csRoleARN :: Lens' ContainerService (Maybe Text)-csRoleARN = lens _csRoleARN (\ s a -> s{_csRoleARN = a});---- | Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.-csDeploymentConfiguration :: Lens' ContainerService (Maybe DeploymentConfiguration)-csDeploymentConfiguration = lens _csDeploymentConfiguration (\ s a -> s{_csDeploymentConfiguration = a});--instance FromJSON ContainerService where- parseJSON- = withObject "ContainerService"- (\ x ->- ContainerService' <$>- (x .:? "runningCount") <*> (x .:? "status") <*>- (x .:? "clusterArn")- <*> (x .:? "createdAt")- <*> (x .:? "desiredCount")- <*> (x .:? "loadBalancers" .!= mempty)- <*> (x .:? "pendingCount")- <*> (x .:? "events" .!= mempty)- <*> (x .:? "deployments" .!= mempty)- <*> (x .:? "serviceName")- <*> (x .:? "serviceArn")- <*> (x .:? "taskDefinition")- <*> (x .:? "roleArn")- <*> (x .:? "deploymentConfiguration"))--instance Hashable ContainerService--instance NFData ContainerService---- | The details of an Amazon ECS service deployment.------------ /See:/ 'deployment' smart constructor.-data Deployment = Deployment'- { _dRunningCount :: !(Maybe Int)- , _dStatus :: !(Maybe Text)- , _dCreatedAt :: !(Maybe POSIX)- , _dDesiredCount :: !(Maybe Int)- , _dPendingCount :: !(Maybe Int)- , _dId :: !(Maybe Text)- , _dUpdatedAt :: !(Maybe POSIX)- , _dTaskDefinition :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Deployment' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dRunningCount' - The number of tasks in the deployment that are in the @RUNNING@ status.------ * 'dStatus' - The status of the deployment. Valid values are @PRIMARY@ (for the most recent deployment), @ACTIVE@ (for previous deployments that still have tasks running, but are being replaced with the @PRIMARY@ deployment), and @INACTIVE@ (for deployments that have been completely replaced).------ * 'dCreatedAt' - The Unix timestamp for when the service was created.------ * 'dDesiredCount' - The most recent desired count of tasks that was specified for the service to deploy or maintain.------ * 'dPendingCount' - The number of tasks in the deployment that are in the @PENDING@ status.------ * 'dId' - The ID of the deployment.------ * 'dUpdatedAt' - The Unix timestamp for when the service was last updated.------ * 'dTaskDefinition' - The most recent task definition that was specified for the service to use.-deployment- :: Deployment-deployment =- Deployment'- { _dRunningCount = Nothing- , _dStatus = Nothing- , _dCreatedAt = Nothing- , _dDesiredCount = Nothing- , _dPendingCount = Nothing- , _dId = Nothing- , _dUpdatedAt = Nothing- , _dTaskDefinition = Nothing- }---- | The number of tasks in the deployment that are in the @RUNNING@ status.-dRunningCount :: Lens' Deployment (Maybe Int)-dRunningCount = lens _dRunningCount (\ s a -> s{_dRunningCount = a});---- | The status of the deployment. Valid values are @PRIMARY@ (for the most recent deployment), @ACTIVE@ (for previous deployments that still have tasks running, but are being replaced with the @PRIMARY@ deployment), and @INACTIVE@ (for deployments that have been completely replaced).-dStatus :: Lens' Deployment (Maybe Text)-dStatus = lens _dStatus (\ s a -> s{_dStatus = a});---- | The Unix timestamp for when the service was created.-dCreatedAt :: Lens' Deployment (Maybe UTCTime)-dCreatedAt = lens _dCreatedAt (\ s a -> s{_dCreatedAt = a}) . mapping _Time;---- | The most recent desired count of tasks that was specified for the service to deploy or maintain.-dDesiredCount :: Lens' Deployment (Maybe Int)-dDesiredCount = lens _dDesiredCount (\ s a -> s{_dDesiredCount = a});---- | The number of tasks in the deployment that are in the @PENDING@ status.-dPendingCount :: Lens' Deployment (Maybe Int)-dPendingCount = lens _dPendingCount (\ s a -> s{_dPendingCount = a});---- | The ID of the deployment.-dId :: Lens' Deployment (Maybe Text)-dId = lens _dId (\ s a -> s{_dId = a});---- | The Unix timestamp for when the service was last updated.-dUpdatedAt :: Lens' Deployment (Maybe UTCTime)-dUpdatedAt = lens _dUpdatedAt (\ s a -> s{_dUpdatedAt = a}) . mapping _Time;---- | The most recent task definition that was specified for the service to use.-dTaskDefinition :: Lens' Deployment (Maybe Text)-dTaskDefinition = lens _dTaskDefinition (\ s a -> s{_dTaskDefinition = a});--instance FromJSON Deployment where- parseJSON- = withObject "Deployment"- (\ x ->- Deployment' <$>- (x .:? "runningCount") <*> (x .:? "status") <*>- (x .:? "createdAt")- <*> (x .:? "desiredCount")- <*> (x .:? "pendingCount")- <*> (x .:? "id")- <*> (x .:? "updatedAt")- <*> (x .:? "taskDefinition"))--instance Hashable Deployment--instance NFData Deployment---- | Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.------------ /See:/ 'deploymentConfiguration' smart constructor.-data DeploymentConfiguration = DeploymentConfiguration'- { _dcMinimumHealthyPercent :: !(Maybe Int)- , _dcMaximumPercent :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'DeploymentConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dcMinimumHealthyPercent' - The lower limit (as a percentage of the service's @desiredCount@ ) of the number of running tasks that must remain in the @RUNNING@ state in a service during a deployment. The minimum healthy tasks during a deployment is the @desiredCount@ multiplied by the @minimumHealthyPercent@ /100, rounded up to the nearest integer value.------ * 'dcMaximumPercent' - The upper limit (as a percentage of the service's @desiredCount@ ) of the number of tasks that are allowed in the @RUNNING@ or @PENDING@ state in a service during a deployment. The maximum number of tasks during a deployment is the @desiredCount@ multiplied by the @maximumPercent@ /100, rounded down to the nearest integer value.-deploymentConfiguration- :: DeploymentConfiguration-deploymentConfiguration =- DeploymentConfiguration'- { _dcMinimumHealthyPercent = Nothing- , _dcMaximumPercent = Nothing- }---- | The lower limit (as a percentage of the service's @desiredCount@ ) of the number of running tasks that must remain in the @RUNNING@ state in a service during a deployment. The minimum healthy tasks during a deployment is the @desiredCount@ multiplied by the @minimumHealthyPercent@ /100, rounded up to the nearest integer value.-dcMinimumHealthyPercent :: Lens' DeploymentConfiguration (Maybe Int)-dcMinimumHealthyPercent = lens _dcMinimumHealthyPercent (\ s a -> s{_dcMinimumHealthyPercent = a});---- | The upper limit (as a percentage of the service's @desiredCount@ ) of the number of tasks that are allowed in the @RUNNING@ or @PENDING@ state in a service during a deployment. The maximum number of tasks during a deployment is the @desiredCount@ multiplied by the @maximumPercent@ /100, rounded down to the nearest integer value.-dcMaximumPercent :: Lens' DeploymentConfiguration (Maybe Int)-dcMaximumPercent = lens _dcMaximumPercent (\ s a -> s{_dcMaximumPercent = a});--instance FromJSON DeploymentConfiguration where- parseJSON- = withObject "DeploymentConfiguration"- (\ x ->- DeploymentConfiguration' <$>- (x .:? "minimumHealthyPercent") <*>- (x .:? "maximumPercent"))--instance Hashable DeploymentConfiguration--instance NFData DeploymentConfiguration--instance ToJSON DeploymentConfiguration where- toJSON DeploymentConfiguration'{..}- = object- (catMaybes- [("minimumHealthyPercent" .=) <$>- _dcMinimumHealthyPercent,- ("maximumPercent" .=) <$> _dcMaximumPercent])---- | A failed resource.------------ /See:/ 'failure' smart constructor.-data Failure = Failure'- { _fArn :: !(Maybe Text)- , _fReason :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Failure' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fArn' - The Amazon Resource Name (ARN) of the failed resource.------ * 'fReason' - The reason for the failure.-failure- :: Failure-failure =- Failure'- { _fArn = Nothing- , _fReason = Nothing- }---- | The Amazon Resource Name (ARN) of the failed resource.-fArn :: Lens' Failure (Maybe Text)-fArn = lens _fArn (\ s a -> s{_fArn = a});---- | The reason for the failure.-fReason :: Lens' Failure (Maybe Text)-fReason = lens _fReason (\ s a -> s{_fReason = a});--instance FromJSON Failure where- parseJSON- = withObject "Failure"- (\ x ->- Failure' <$> (x .:? "arn") <*> (x .:? "reason"))--instance Hashable Failure--instance NFData Failure---- | Hostnames and IP address entries that are added to the @/etc/hosts@ file of a container via the @extraHosts@ parameter of its 'ContainerDefinition' .------------ /See:/ 'hostEntry' smart constructor.-data HostEntry = HostEntry'- { _heHostname :: !Text- , _heIpAddress :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostEntry' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'heHostname' - The hostname to use in the @/etc/hosts@ entry.------ * 'heIpAddress' - The IP address to use in the @/etc/hosts@ entry.-hostEntry- :: Text -- ^ 'heHostname'- -> Text -- ^ 'heIpAddress'- -> HostEntry-hostEntry pHostname_ pIpAddress_ =- HostEntry'- { _heHostname = pHostname_- , _heIpAddress = pIpAddress_- }---- | The hostname to use in the @/etc/hosts@ entry.-heHostname :: Lens' HostEntry Text-heHostname = lens _heHostname (\ s a -> s{_heHostname = a});---- | The IP address to use in the @/etc/hosts@ entry.-heIpAddress :: Lens' HostEntry Text-heIpAddress = lens _heIpAddress (\ s a -> s{_heIpAddress = a});--instance FromJSON HostEntry where- parseJSON- = withObject "HostEntry"- (\ x ->- HostEntry' <$>- (x .: "hostname") <*> (x .: "ipAddress"))--instance Hashable HostEntry--instance NFData HostEntry--instance ToJSON HostEntry where- toJSON HostEntry'{..}- = object- (catMaybes- [Just ("hostname" .= _heHostname),- Just ("ipAddress" .= _heIpAddress)])---- | Details on a container instance host volume.------------ /See:/ 'hostVolumeProperties' smart constructor.-newtype HostVolumeProperties = HostVolumeProperties'- { _hvpSourcePath :: Maybe Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'HostVolumeProperties' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'hvpSourcePath' - The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the @host@ parameter contains a @sourcePath@ file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the @sourcePath@ value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.-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. If the @host@ parameter contains a @sourcePath@ file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the @sourcePath@ value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.-hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text)-hvpSourcePath = lens _hvpSourcePath (\ s a -> s{_hvpSourcePath = a});--instance FromJSON HostVolumeProperties where- parseJSON- = withObject "HostVolumeProperties"- (\ x ->- HostVolumeProperties' <$> (x .:? "sourcePath"))--instance Hashable HostVolumeProperties--instance NFData HostVolumeProperties--instance ToJSON HostVolumeProperties where- toJSON HostVolumeProperties'{..}- = object- (catMaybes [("sourcePath" .=) <$> _hvpSourcePath])---- | A key and value pair object.------------ /See:/ 'keyValuePair' smart constructor.-data KeyValuePair = KeyValuePair'- { _kvpValue :: !(Maybe Text)- , _kvpName :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'KeyValuePair' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'kvpValue' - The value of the key value pair. For environment variables, this is the value of the environment variable.------ * 'kvpName' - The name of the key value pair. For environment variables, this is the name of the environment variable.-keyValuePair- :: KeyValuePair-keyValuePair =- KeyValuePair'- { _kvpValue = Nothing- , _kvpName = Nothing- }---- | The value of the key value pair. For environment variables, this is the value of the environment variable.-kvpValue :: Lens' KeyValuePair (Maybe Text)-kvpValue = lens _kvpValue (\ s a -> s{_kvpValue = a});---- | The name of the key value pair. For environment variables, this is the name of the environment variable.-kvpName :: Lens' KeyValuePair (Maybe Text)-kvpName = lens _kvpName (\ s a -> s{_kvpName = a});--instance FromJSON KeyValuePair where- parseJSON- = withObject "KeyValuePair"- (\ x ->- KeyValuePair' <$> (x .:? "value") <*> (x .:? "name"))--instance Hashable KeyValuePair--instance NFData KeyValuePair--instance ToJSON KeyValuePair where- toJSON KeyValuePair'{..}- = object- (catMaybes- [("value" .=) <$> _kvpValue,- ("name" .=) <$> _kvpName])---- | Details on a load balancer that is used with a service.------------ /See:/ 'loadBalancer' smart constructor.-data LoadBalancer = LoadBalancer'- { _lbLoadBalancerName :: !(Maybe Text)- , _lbContainerName :: !(Maybe Text)- , _lbTargetGroupARN :: !(Maybe Text)- , _lbContainerPort :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LoadBalancer' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lbLoadBalancerName' - The name of the load balancer.------ * 'lbContainerName' - The name of the container (as it appears in a container definition) to associate with the load balancer.------ * 'lbTargetGroupARN' - The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service.------ * 'lbContainerPort' - The port on the container to associate with the load balancer. This port must correspond to a @containerPort@ in the service's task definition. Your container instances must allow ingress traffic on the @hostPort@ of the port mapping.-loadBalancer- :: LoadBalancer-loadBalancer =- LoadBalancer'- { _lbLoadBalancerName = Nothing- , _lbContainerName = Nothing- , _lbTargetGroupARN = Nothing- , _lbContainerPort = Nothing- }---- | The name of the load balancer.-lbLoadBalancerName :: Lens' LoadBalancer (Maybe Text)-lbLoadBalancerName = lens _lbLoadBalancerName (\ s a -> s{_lbLoadBalancerName = a});---- | The name of the container (as it appears in a container definition) to associate with the load balancer.-lbContainerName :: Lens' LoadBalancer (Maybe Text)-lbContainerName = lens _lbContainerName (\ s a -> s{_lbContainerName = a});---- | The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service.-lbTargetGroupARN :: Lens' LoadBalancer (Maybe Text)-lbTargetGroupARN = lens _lbTargetGroupARN (\ s a -> s{_lbTargetGroupARN = a});---- | The port on the container to associate with the load balancer. This port must correspond to a @containerPort@ in the service's task definition. Your container instances must allow ingress traffic on the @hostPort@ of the port mapping.-lbContainerPort :: Lens' LoadBalancer (Maybe Int)-lbContainerPort = lens _lbContainerPort (\ s a -> s{_lbContainerPort = a});--instance FromJSON LoadBalancer where- parseJSON- = withObject "LoadBalancer"- (\ x ->- LoadBalancer' <$>- (x .:? "loadBalancerName") <*>- (x .:? "containerName")- <*> (x .:? "targetGroupArn")- <*> (x .:? "containerPort"))--instance Hashable LoadBalancer--instance NFData LoadBalancer--instance ToJSON LoadBalancer where- toJSON LoadBalancer'{..}- = object- (catMaybes- [("loadBalancerName" .=) <$> _lbLoadBalancerName,- ("containerName" .=) <$> _lbContainerName,- ("targetGroupArn" .=) <$> _lbTargetGroupARN,- ("containerPort" .=) <$> _lbContainerPort])---- | Log configuration options to send to a custom log driver for the container.------------ /See:/ 'logConfiguration' smart constructor.-data LogConfiguration = LogConfiguration'- { _lcOptions :: !(Maybe (Map Text Text))- , _lcLogDriver :: !LogDriver- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'LogConfiguration' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lcOptions' - The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@------ * 'lcLogDriver' - The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@-logConfiguration- :: LogDriver -- ^ 'lcLogDriver'- -> LogConfiguration-logConfiguration pLogDriver_ =- LogConfiguration'- { _lcOptions = Nothing- , _lcLogDriver = pLogDriver_- }---- | The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@-lcOptions :: Lens' LogConfiguration (HashMap Text Text)-lcOptions = lens _lcOptions (\ s a -> s{_lcOptions = a}) . _Default . _Map;---- | The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@-lcLogDriver :: Lens' LogConfiguration LogDriver-lcLogDriver = lens _lcLogDriver (\ s a -> s{_lcLogDriver = a});--instance FromJSON LogConfiguration where- parseJSON- = withObject "LogConfiguration"- (\ x ->- LogConfiguration' <$>- (x .:? "options" .!= mempty) <*> (x .: "logDriver"))--instance Hashable LogConfiguration--instance NFData LogConfiguration--instance ToJSON LogConfiguration where- toJSON LogConfiguration'{..}- = object- (catMaybes- [("options" .=) <$> _lcOptions,- Just ("logDriver" .= _lcLogDriver)])---- | Details on a volume mount point that is used in a container definition.------------ /See:/ 'mountPoint' smart constructor.-data MountPoint = MountPoint'- { _mpContainerPath :: !(Maybe Text)- , _mpSourceVolume :: !(Maybe Text)- , _mpReadOnly :: !(Maybe Bool)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'MountPoint' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mpContainerPath' - The path on the container to mount the host volume at.------ * 'mpSourceVolume' - The name of the volume to mount.------ * 'mpReadOnly' - 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@ .-mountPoint- :: MountPoint-mountPoint =- MountPoint'- { _mpContainerPath = Nothing- , _mpSourceVolume = 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});---- | The name of the volume to mount.-mpSourceVolume :: Lens' MountPoint (Maybe Text)-mpSourceVolume = lens _mpSourceVolume (\ s a -> s{_mpSourceVolume = 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});--instance FromJSON MountPoint where- parseJSON- = withObject "MountPoint"- (\ x ->- MountPoint' <$>- (x .:? "containerPath") <*> (x .:? "sourceVolume")- <*> (x .:? "readOnly"))--instance Hashable MountPoint--instance NFData MountPoint--instance ToJSON MountPoint where- toJSON MountPoint'{..}- = object- (catMaybes- [("containerPath" .=) <$> _mpContainerPath,- ("sourceVolume" .=) <$> _mpSourceVolume,- ("readOnly" .=) <$> _mpReadOnly])---- | Details on the network bindings between a container and its host container instance. After a task reaches the @RUNNING@ status, manual and automatic host and container port assignments are visible in the @networkBindings@ section of 'DescribeTasks' API responses.------------ /See:/ 'networkBinding' smart constructor.-data NetworkBinding = NetworkBinding'- { _nbBindIP :: !(Maybe Text)- , _nbProtocol :: !(Maybe TransportProtocol)- , _nbHostPort :: !(Maybe Int)- , _nbContainerPort :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'NetworkBinding' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'nbBindIP' - The IP address that the container is bound to on the container instance.------ * 'nbProtocol' - The protocol used for the network binding.------ * 'nbHostPort' - The port number on the host that is used with the network binding.------ * 'nbContainerPort' - The port number on the container that is be used with the network binding.-networkBinding- :: NetworkBinding-networkBinding =- NetworkBinding'- { _nbBindIP = Nothing- , _nbProtocol = Nothing- , _nbHostPort = Nothing- , _nbContainerPort = Nothing- }---- | The IP address that the container is bound to on the container instance.-nbBindIP :: Lens' NetworkBinding (Maybe Text)-nbBindIP = lens _nbBindIP (\ s a -> s{_nbBindIP = a});---- | The protocol used for the network binding.-nbProtocol :: Lens' NetworkBinding (Maybe TransportProtocol)-nbProtocol = lens _nbProtocol (\ s a -> s{_nbProtocol = a});---- | 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});---- | 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});--instance FromJSON NetworkBinding where- parseJSON- = withObject "NetworkBinding"- (\ x ->- NetworkBinding' <$>- (x .:? "bindIP") <*> (x .:? "protocol") <*>- (x .:? "hostPort")- <*> (x .:? "containerPort"))--instance Hashable NetworkBinding--instance NFData NetworkBinding--instance ToJSON NetworkBinding where- toJSON NetworkBinding'{..}- = object- (catMaybes- [("bindIP" .=) <$> _nbBindIP,- ("protocol" .=) <$> _nbProtocol,- ("hostPort" .=) <$> _nbHostPort,- ("containerPort" .=) <$> _nbContainerPort])---- | Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition. After a task reaches the @RUNNING@ status, manual and automatic host and container port assignments are visible in the @networkBindings@ section of 'DescribeTasks' API responses.------------ /See:/ 'portMapping' smart constructor.-data PortMapping = PortMapping'- { _pmProtocol :: !(Maybe TransportProtocol)- , _pmHostPort :: !(Maybe Int)- , _pmContainerPort :: !(Maybe Int)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'PortMapping' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'pmProtocol' - The protocol used for the port mapping. Valid values are @tcp@ and @udp@ . The default is @tcp@ .------ * 'pmHostPort' - The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the @hostPort@ (or set it to @0@ ) while specifying a @containerPort@ and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range is 49153 to 65535, and this range is used for Docker versions prior to 1.6.0. For Docker version 1.6.0 and later, the Docker daemon tries to read the ephemeral port range from @/proc/sys/net/ipv4/ip_local_port_range@ ; if this kernel parameter is unavailable, the default ephemeral port range is used. You should not attempt to specify a host port in the ephemeral port range, because these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the @remainingResources@ of 'DescribeContainerInstances' output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).------ * 'pmContainerPort' - The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see @hostPort@ ). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.-portMapping- :: PortMapping-portMapping =- PortMapping'- { _pmProtocol = Nothing- , _pmHostPort = Nothing- , _pmContainerPort = Nothing- }---- | The protocol used for the port mapping. Valid values are @tcp@ and @udp@ . The default is @tcp@ .-pmProtocol :: Lens' PortMapping (Maybe TransportProtocol)-pmProtocol = lens _pmProtocol (\ s a -> s{_pmProtocol = a});---- | The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the @hostPort@ (or set it to @0@ ) while specifying a @containerPort@ and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range is 49153 to 65535, and this range is used for Docker versions prior to 1.6.0. For Docker version 1.6.0 and later, the Docker daemon tries to read the ephemeral port range from @/proc/sys/net/ipv4/ip_local_port_range@ ; if this kernel parameter is unavailable, the default ephemeral port range is used. You should not attempt to specify a host port in the ephemeral port range, because these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the @remainingResources@ of 'DescribeContainerInstances' output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).-pmHostPort :: Lens' PortMapping (Maybe Int)-pmHostPort = lens _pmHostPort (\ s a -> s{_pmHostPort = a});---- | The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see @hostPort@ ). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.-pmContainerPort :: Lens' PortMapping (Maybe Int)-pmContainerPort = lens _pmContainerPort (\ s a -> s{_pmContainerPort = a});--instance FromJSON PortMapping where- parseJSON- = withObject "PortMapping"- (\ x ->- PortMapping' <$>- (x .:? "protocol") <*> (x .:? "hostPort") <*>- (x .:? "containerPort"))--instance Hashable PortMapping--instance NFData PortMapping--instance ToJSON PortMapping where- toJSON PortMapping'{..}- = object- (catMaybes- [("protocol" .=) <$> _pmProtocol,- ("hostPort" .=) <$> _pmHostPort,- ("containerPort" .=) <$> _pmContainerPort])---- | Describes the resources available for a container instance.------------ /See:/ 'resource' smart constructor.-data Resource = Resource'- { _rStringSetValue :: !(Maybe [Text])- , _rIntegerValue :: !(Maybe Int)- , _rDoubleValue :: !(Maybe Double)- , _rLongValue :: !(Maybe Integer)- , _rName :: !(Maybe Text)- , _rType :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Resource' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rStringSetValue' - When the @stringSetValue@ type is set, the value of the resource must be a string type.------ * 'rIntegerValue' - When the @integerValue@ type is set, the value of the resource must be an integer.------ * 'rDoubleValue' - When the @doubleValue@ type is set, the value of the resource must be a double precision floating-point type.------ * 'rLongValue' - When the @longValue@ type is set, the value of the resource must be an extended precision floating-point type.------ * 'rName' - The name of the resource, such as @CPU@ , @MEMORY@ , @PORTS@ , or a user-defined resource.------ * 'rType' - The type of the resource, such as @INTEGER@ , @DOUBLE@ , @LONG@ , or @STRINGSET@ .-resource- :: Resource-resource =- Resource'- { _rStringSetValue = Nothing- , _rIntegerValue = Nothing- , _rDoubleValue = Nothing- , _rLongValue = Nothing- , _rName = Nothing- , _rType = Nothing- }---- | When the @stringSetValue@ type is set, the value of the resource must be a string type.-rStringSetValue :: Lens' Resource [Text]-rStringSetValue = lens _rStringSetValue (\ s a -> s{_rStringSetValue = a}) . _Default . _Coerce;---- | When the @integerValue@ type is set, the value of the resource must be an integer.-rIntegerValue :: Lens' Resource (Maybe Int)-rIntegerValue = lens _rIntegerValue (\ s a -> s{_rIntegerValue = a});---- | When the @doubleValue@ type is set, the value of the resource must be a double precision floating-point type.-rDoubleValue :: Lens' Resource (Maybe Double)-rDoubleValue = lens _rDoubleValue (\ s a -> s{_rDoubleValue = a});---- | When the @longValue@ type is set, the value of the resource must be an extended precision floating-point type.-rLongValue :: Lens' Resource (Maybe Integer)-rLongValue = lens _rLongValue (\ s a -> s{_rLongValue = a});---- | The name of the resource, such as @CPU@ , @MEMORY@ , @PORTS@ , or a user-defined resource.-rName :: Lens' Resource (Maybe Text)-rName = lens _rName (\ s a -> s{_rName = a});---- | The type of the resource, such as @INTEGER@ , @DOUBLE@ , @LONG@ , or @STRINGSET@ .-rType :: Lens' Resource (Maybe Text)-rType = lens _rType (\ s a -> s{_rType = a});--instance FromJSON Resource where- parseJSON- = withObject "Resource"- (\ x ->- Resource' <$>- (x .:? "stringSetValue" .!= mempty) <*>- (x .:? "integerValue")- <*> (x .:? "doubleValue")- <*> (x .:? "longValue")- <*> (x .:? "name")- <*> (x .:? "type"))--instance Hashable Resource--instance NFData Resource--instance ToJSON Resource where- toJSON Resource'{..}- = object- (catMaybes- [("stringSetValue" .=) <$> _rStringSetValue,- ("integerValue" .=) <$> _rIntegerValue,- ("doubleValue" .=) <$> _rDoubleValue,- ("longValue" .=) <$> _rLongValue,- ("name" .=) <$> _rName, ("type" .=) <$> _rType])---- | Details on an event associated with a service.------------ /See:/ 'serviceEvent' smart constructor.-data ServiceEvent = ServiceEvent'- { _seCreatedAt :: !(Maybe POSIX)- , _seId :: !(Maybe Text)- , _seMessage :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'ServiceEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'seCreatedAt' - The Unix timestamp for when the event was triggered.------ * 'seId' - The ID string of the event.------ * 'seMessage' - The event message.-serviceEvent- :: ServiceEvent-serviceEvent =- ServiceEvent'- { _seCreatedAt = Nothing- , _seId = Nothing- , _seMessage = Nothing- }---- | The Unix timestamp for when the event was triggered.-seCreatedAt :: Lens' ServiceEvent (Maybe UTCTime)-seCreatedAt = lens _seCreatedAt (\ s a -> s{_seCreatedAt = a}) . mapping _Time;---- | The ID string of the event.-seId :: Lens' ServiceEvent (Maybe Text)-seId = lens _seId (\ s a -> s{_seId = a});---- | The event message.-seMessage :: Lens' ServiceEvent (Maybe Text)-seMessage = lens _seMessage (\ s a -> s{_seMessage = a});--instance FromJSON ServiceEvent where- parseJSON- = withObject "ServiceEvent"- (\ x ->- ServiceEvent' <$>- (x .:? "createdAt") <*> (x .:? "id") <*>- (x .:? "message"))--instance Hashable ServiceEvent--instance NFData ServiceEvent---- | Details on a task in a cluster.------------ /See:/ 'task' smart constructor.-data Task = Task'- { _tStoppedAt :: !(Maybe POSIX)- , _tDesiredStatus :: !(Maybe Text)- , _tOverrides :: !(Maybe TaskOverride)- , _tClusterARN :: !(Maybe Text)- , _tCreatedAt :: !(Maybe POSIX)- , _tTaskARN :: !(Maybe Text)- , _tContainerInstanceARN :: !(Maybe Text)- , _tLastStatus :: !(Maybe Text)- , _tContainers :: !(Maybe [Container])- , _tStartedAt :: !(Maybe POSIX)- , _tVersion :: !(Maybe Integer)- , _tStartedBy :: !(Maybe Text)- , _tStoppedReason :: !(Maybe Text)- , _tTaskDefinitionARN :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Task' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tStoppedAt' - The Unix timestamp for when the task was stopped (the task transitioned from the @RUNNING@ state to the @STOPPED@ state).------ * 'tDesiredStatus' - The desired status of the task.------ * 'tOverrides' - One or more container overrides.------ * 'tClusterARN' - The Amazon Resource Name (ARN) of the cluster that hosts the task.------ * 'tCreatedAt' - The Unix timestamp for when the task was created (the task entered the @PENDING@ state).------ * 'tTaskARN' - The Amazon Resource Name (ARN) of the task.------ * 'tContainerInstanceARN' - The Amazon Resource Name (ARN) of the container instances that host the task.------ * 'tLastStatus' - The last known status of the task.------ * 'tContainers' - The containers associated with the task.------ * 'tStartedAt' - The Unix timestamp for when the task was started (the task transitioned from the @PENDING@ state to the @RUNNING@ state).------ * 'tVersion' - The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch events for the task (inside the @detail@ object) to verify that the version in your event stream is current.------ * 'tStartedBy' - The tag specified when a task is started. If the task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it.------ * 'tStoppedReason' - The reason the task was stopped.------ * 'tTaskDefinitionARN' - The Amazon Resource Name (ARN) of the task definition that creates the task.-task- :: Task-task =- Task'- { _tStoppedAt = Nothing- , _tDesiredStatus = Nothing- , _tOverrides = Nothing- , _tClusterARN = Nothing- , _tCreatedAt = Nothing- , _tTaskARN = Nothing- , _tContainerInstanceARN = Nothing- , _tLastStatus = Nothing- , _tContainers = Nothing- , _tStartedAt = Nothing- , _tVersion = Nothing- , _tStartedBy = Nothing- , _tStoppedReason = Nothing- , _tTaskDefinitionARN = Nothing- }---- | The Unix timestamp for when the task was stopped (the task transitioned from the @RUNNING@ state to the @STOPPED@ state).-tStoppedAt :: Lens' Task (Maybe UTCTime)-tStoppedAt = lens _tStoppedAt (\ s a -> s{_tStoppedAt = a}) . mapping _Time;---- | The desired status of the task.-tDesiredStatus :: Lens' Task (Maybe Text)-tDesiredStatus = lens _tDesiredStatus (\ s a -> s{_tDesiredStatus = a});---- | One or more container overrides.-tOverrides :: Lens' Task (Maybe TaskOverride)-tOverrides = lens _tOverrides (\ s a -> s{_tOverrides = a});---- | The Amazon Resource Name (ARN) of the cluster that hosts the task.-tClusterARN :: Lens' Task (Maybe Text)-tClusterARN = lens _tClusterARN (\ s a -> s{_tClusterARN = a});---- | The Unix timestamp for when the task was created (the task entered the @PENDING@ state).-tCreatedAt :: Lens' Task (Maybe UTCTime)-tCreatedAt = lens _tCreatedAt (\ s a -> s{_tCreatedAt = a}) . mapping _Time;---- | The Amazon Resource Name (ARN) of the task.-tTaskARN :: Lens' Task (Maybe Text)-tTaskARN = lens _tTaskARN (\ s a -> s{_tTaskARN = a});---- | The Amazon Resource Name (ARN) of the container instances that host the task.-tContainerInstanceARN :: Lens' Task (Maybe Text)-tContainerInstanceARN = lens _tContainerInstanceARN (\ s a -> s{_tContainerInstanceARN = a});---- | The last known status of the task.-tLastStatus :: Lens' Task (Maybe Text)-tLastStatus = lens _tLastStatus (\ s a -> s{_tLastStatus = a});---- | The containers associated with the task.-tContainers :: Lens' Task [Container]-tContainers = lens _tContainers (\ s a -> s{_tContainers = a}) . _Default . _Coerce;---- | The Unix timestamp for when the task was started (the task transitioned from the @PENDING@ state to the @RUNNING@ state).-tStartedAt :: Lens' Task (Maybe UTCTime)-tStartedAt = lens _tStartedAt (\ s a -> s{_tStartedAt = a}) . mapping _Time;---- | The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch events for the task (inside the @detail@ object) to verify that the version in your event stream is current.-tVersion :: Lens' Task (Maybe Integer)-tVersion = lens _tVersion (\ s a -> s{_tVersion = a});---- | The tag specified when a task is started. If the task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it.-tStartedBy :: Lens' Task (Maybe Text)-tStartedBy = lens _tStartedBy (\ s a -> s{_tStartedBy = a});---- | The reason the task was stopped.-tStoppedReason :: Lens' Task (Maybe Text)-tStoppedReason = lens _tStoppedReason (\ s a -> s{_tStoppedReason = a});---- | The Amazon Resource Name (ARN) of the task definition that creates the task.-tTaskDefinitionARN :: Lens' Task (Maybe Text)-tTaskDefinitionARN = lens _tTaskDefinitionARN (\ s a -> s{_tTaskDefinitionARN = a});--instance FromJSON Task where- parseJSON- = withObject "Task"- (\ x ->- Task' <$>- (x .:? "stoppedAt") <*> (x .:? "desiredStatus") <*>- (x .:? "overrides")- <*> (x .:? "clusterArn")- <*> (x .:? "createdAt")- <*> (x .:? "taskArn")- <*> (x .:? "containerInstanceArn")- <*> (x .:? "lastStatus")- <*> (x .:? "containers" .!= mempty)- <*> (x .:? "startedAt")- <*> (x .:? "version")- <*> (x .:? "startedBy")- <*> (x .:? "stoppedReason")- <*> (x .:? "taskDefinitionArn"))--instance Hashable Task--instance NFData Task---- | Details of a task definition.------------ /See:/ 'taskDefinition' smart constructor.-data TaskDefinition = TaskDefinition'- { _tdStatus :: !(Maybe TaskDefinitionStatus)- , _tdFamily :: !(Maybe Text)- , _tdContainerDefinitions :: !(Maybe [ContainerDefinition])- , _tdTaskRoleARN :: !(Maybe Text)- , _tdNetworkMode :: !(Maybe NetworkMode)- , _tdTaskDefinitionARN :: !(Maybe Text)- , _tdRevision :: !(Maybe Int)- , _tdVolumes :: !(Maybe [Volume])- , _tdRequiresAttributes :: !(Maybe [Attribute])- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TaskDefinition' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tdStatus' - The status of the task definition.------ * 'tdFamily' - The family of your task definition, used as the definition name.------ * 'tdContainerDefinitions' - A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html Amazon ECS Task Definitions> in the /Amazon EC2 Container Service Developer Guide/ .------ * 'tdTaskRoleARN' - The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.------ * 'tdNetworkMode' - The Docker networking mode to use for the containers in the task. The valid values are @none@ , @bridge@ , and @host@ . If the network mode is @none@ , the containers do not have external connectivity. The default Docker network mode is @bridge@ . The @host@ network mode offers the highest networking performance for containers because it uses the host network stack instead of the virtualized network stack provided by the @bridge@ mode. For more information, see <https://docs.docker.com/engine/reference/run/#network-settings Network settings> in the /Docker run reference/ .------ * 'tdTaskDefinitionARN' - The full Amazon Resource Name (ARN) of the task definition.------ * 'tdRevision' - The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is @1@ ; each time you register a new revision of a task definition in the same family, the revision value always increases by one (even if you have deregistered previous revisions in this family).------ * 'tdVolumes' - The list of volumes in a task. For more information about volume 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/ .------ * 'tdRequiresAttributes' - The container instance attributes required by your task.-taskDefinition- :: TaskDefinition-taskDefinition =- TaskDefinition'- { _tdStatus = Nothing- , _tdFamily = Nothing- , _tdContainerDefinitions = Nothing- , _tdTaskRoleARN = Nothing- , _tdNetworkMode = Nothing- , _tdTaskDefinitionARN = Nothing- , _tdRevision = Nothing- , _tdVolumes = Nothing- , _tdRequiresAttributes = Nothing- }---- | The status of the task definition.-tdStatus :: Lens' TaskDefinition (Maybe TaskDefinitionStatus)-tdStatus = lens _tdStatus (\ s a -> s{_tdStatus = a});---- | The family of your task definition, used as the definition name.-tdFamily :: Lens' TaskDefinition (Maybe Text)-tdFamily = lens _tdFamily (\ s a -> s{_tdFamily = a});---- | A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <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}) . _Default . _Coerce;---- | The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.-tdTaskRoleARN :: Lens' TaskDefinition (Maybe Text)-tdTaskRoleARN = lens _tdTaskRoleARN (\ s a -> s{_tdTaskRoleARN = a});---- | The Docker networking mode to use for the containers in the task. The valid values are @none@ , @bridge@ , and @host@ . If the network mode is @none@ , the containers do not have external connectivity. The default Docker network mode is @bridge@ . The @host@ network mode offers the highest networking performance for containers because it uses the host network stack instead of the virtualized network stack provided by the @bridge@ mode. For more information, see <https://docs.docker.com/engine/reference/run/#network-settings Network settings> in the /Docker run reference/ .-tdNetworkMode :: Lens' TaskDefinition (Maybe NetworkMode)-tdNetworkMode = lens _tdNetworkMode (\ s a -> s{_tdNetworkMode = a});---- | The full Amazon Resource Name (ARN) of the task definition.-tdTaskDefinitionARN :: Lens' TaskDefinition (Maybe Text)-tdTaskDefinitionARN = lens _tdTaskDefinitionARN (\ s a -> s{_tdTaskDefinitionARN = a});---- | The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is @1@ ; each time you register a new revision of a task definition in the same family, the revision value always increases by one (even if you have deregistered previous revisions in this family).-tdRevision :: Lens' TaskDefinition (Maybe Int)-tdRevision = lens _tdRevision (\ s a -> s{_tdRevision = a});---- | The list of volumes in a task. For more information about volume 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/ .-tdVolumes :: Lens' TaskDefinition [Volume]-tdVolumes = lens _tdVolumes (\ s a -> s{_tdVolumes = a}) . _Default . _Coerce;---- | The container instance attributes required by your task.-tdRequiresAttributes :: Lens' TaskDefinition [Attribute]-tdRequiresAttributes = lens _tdRequiresAttributes (\ s a -> s{_tdRequiresAttributes = a}) . _Default . _Coerce;--instance FromJSON TaskDefinition where- parseJSON- = withObject "TaskDefinition"- (\ x ->- TaskDefinition' <$>- (x .:? "status") <*> (x .:? "family") <*>- (x .:? "containerDefinitions" .!= mempty)- <*> (x .:? "taskRoleArn")- <*> (x .:? "networkMode")- <*> (x .:? "taskDefinitionArn")- <*> (x .:? "revision")- <*> (x .:? "volumes" .!= mempty)- <*> (x .:? "requiresAttributes" .!= mempty))--instance Hashable TaskDefinition--instance NFData TaskDefinition---- | The overrides associated with a task.------------ /See:/ 'taskOverride' smart constructor.-data TaskOverride = TaskOverride'- { _toContainerOverrides :: !(Maybe [ContainerOverride])- , _toTaskRoleARN :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'TaskOverride' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'toContainerOverrides' - One or more container overrides sent to a task.------ * 'toTaskRoleARN' - The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.-taskOverride- :: TaskOverride-taskOverride =- TaskOverride'- { _toContainerOverrides = Nothing- , _toTaskRoleARN = Nothing- }---- | One or more container overrides sent to a task.-toContainerOverrides :: Lens' TaskOverride [ContainerOverride]-toContainerOverrides = lens _toContainerOverrides (\ s a -> s{_toContainerOverrides = a}) . _Default . _Coerce;---- | The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.-toTaskRoleARN :: Lens' TaskOverride (Maybe Text)-toTaskRoleARN = lens _toTaskRoleARN (\ s a -> s{_toTaskRoleARN = a});--instance FromJSON TaskOverride where- parseJSON- = withObject "TaskOverride"- (\ x ->- TaskOverride' <$>- (x .:? "containerOverrides" .!= mempty) <*>- (x .:? "taskRoleArn"))--instance Hashable TaskOverride--instance NFData TaskOverride--instance ToJSON TaskOverride where- toJSON TaskOverride'{..}- = object- (catMaybes- [("containerOverrides" .=) <$> _toContainerOverrides,- ("taskRoleArn" .=) <$> _toTaskRoleARN])---- | The @ulimit@ settings to pass to the container.------------ /See:/ 'ulimit' smart constructor.-data Ulimit = Ulimit'- { _uName :: !UlimitName- , _uSoftLimit :: !Int- , _uHardLimit :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Ulimit' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uName' - The @type@ of the @ulimit@ .------ * 'uSoftLimit' - The soft limit for the ulimit type.------ * 'uHardLimit' - The hard limit for the ulimit type.-ulimit- :: UlimitName -- ^ 'uName'- -> Int -- ^ 'uSoftLimit'- -> Int -- ^ 'uHardLimit'- -> Ulimit-ulimit pName_ pSoftLimit_ pHardLimit_ =- Ulimit'- { _uName = pName_- , _uSoftLimit = pSoftLimit_- , _uHardLimit = pHardLimit_- }---- | The @type@ of the @ulimit@ .-uName :: Lens' Ulimit UlimitName-uName = lens _uName (\ s a -> s{_uName = a});---- | The soft limit for the ulimit type.-uSoftLimit :: Lens' Ulimit Int-uSoftLimit = lens _uSoftLimit (\ s a -> s{_uSoftLimit = a});---- | The hard limit for the ulimit type.-uHardLimit :: Lens' Ulimit Int-uHardLimit = lens _uHardLimit (\ s a -> s{_uHardLimit = a});--instance FromJSON Ulimit where- parseJSON- = withObject "Ulimit"- (\ x ->- Ulimit' <$>- (x .: "name") <*> (x .: "softLimit") <*>- (x .: "hardLimit"))--instance Hashable Ulimit--instance NFData Ulimit--instance ToJSON Ulimit where- toJSON Ulimit'{..}- = object- (catMaybes- [Just ("name" .= _uName),- Just ("softLimit" .= _uSoftLimit),- Just ("hardLimit" .= _uHardLimit)])---- | The Docker and Amazon ECS container agent version information about a container instance.------------ /See:/ 'versionInfo' smart constructor.-data VersionInfo = VersionInfo'- { _viAgentHash :: !(Maybe Text)- , _viAgentVersion :: !(Maybe Text)- , _viDockerVersion :: !(Maybe Text)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VersionInfo' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'viAgentHash' - The Git commit hash for the Amazon ECS container agent build on the <https://github.com/aws/amazon-ecs-agent/commits/master amazon-ecs-agent > GitHub repository.------ * 'viAgentVersion' - The version number of the Amazon ECS container agent.------ * 'viDockerVersion' - The Docker version running on the container instance.-versionInfo- :: VersionInfo-versionInfo =- VersionInfo'- { _viAgentHash = Nothing- , _viAgentVersion = Nothing- , _viDockerVersion = Nothing- }---- | The Git commit hash for the Amazon ECS container agent build on the <https://github.com/aws/amazon-ecs-agent/commits/master amazon-ecs-agent > GitHub repository.-viAgentHash :: Lens' VersionInfo (Maybe Text)-viAgentHash = lens _viAgentHash (\ s a -> s{_viAgentHash = a});---- | The version number of the Amazon ECS container agent.-viAgentVersion :: Lens' VersionInfo (Maybe Text)-viAgentVersion = lens _viAgentVersion (\ s a -> s{_viAgentVersion = a});---- | The Docker version running on the container instance.-viDockerVersion :: Lens' VersionInfo (Maybe Text)-viDockerVersion = lens _viDockerVersion (\ s a -> s{_viDockerVersion = a});--instance FromJSON VersionInfo where- parseJSON- = withObject "VersionInfo"- (\ x ->- VersionInfo' <$>- (x .:? "agentHash") <*> (x .:? "agentVersion") <*>- (x .:? "dockerVersion"))--instance Hashable VersionInfo--instance NFData VersionInfo--instance ToJSON VersionInfo where- toJSON VersionInfo'{..}- = object- (catMaybes- [("agentHash" .=) <$> _viAgentHash,- ("agentVersion" .=) <$> _viAgentVersion,- ("dockerVersion" .=) <$> _viDockerVersion])---- | A data volume used in a task definition.------------ /See:/ 'volume' smart constructor.-data Volume = Volume'- { _vName :: !(Maybe Text)- , _vHost :: !(Maybe HostVolumeProperties)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'Volume' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vName' - The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the @sourceVolume@ parameter of container definition @mountPoints@ .------ * 'vHost' - The contents of the @host@ parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.-volume- :: Volume-volume =- Volume'- { _vName = Nothing- , _vHost = Nothing- }---- | The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the @sourceVolume@ parameter of container definition @mountPoints@ .-vName :: Lens' Volume (Maybe Text)-vName = lens _vName (\ s a -> s{_vName = a});---- | The contents of the @host@ parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.-vHost :: Lens' Volume (Maybe HostVolumeProperties)-vHost = lens _vHost (\ s a -> s{_vHost = a});--instance FromJSON Volume where- parseJSON- = withObject "Volume"- (\ x ->- Volume' <$> (x .:? "name") <*> (x .:? "host"))--instance Hashable Volume--instance NFData Volume--instance ToJSON Volume where- toJSON Volume'{..}- = object- (catMaybes- [("name" .=) <$> _vName, ("host" .=) <$> _vHost])---- | Details on a data volume from another container.------------ /See:/ 'volumeFrom' smart constructor.-data VolumeFrom = VolumeFrom'- { _vfSourceContainer :: !(Maybe Text)- , _vfReadOnly :: !(Maybe Bool)- } deriving (Eq,Read,Show,Data,Typeable,Generic)---- | Creates a value of 'VolumeFrom' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'vfSourceContainer' - The name of the container to mount volumes from.------ * 'vfReadOnly' - 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@ .-volumeFrom- :: VolumeFrom-volumeFrom =- VolumeFrom'- { _vfSourceContainer = Nothing- , _vfReadOnly = Nothing- }---- | The name of the container to mount volumes from.-vfSourceContainer :: Lens' VolumeFrom (Maybe Text)-vfSourceContainer = lens _vfSourceContainer (\ s a -> s{_vfSourceContainer = 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@ .-vfReadOnly :: Lens' VolumeFrom (Maybe Bool)-vfReadOnly = lens _vfReadOnly (\ s a -> s{_vfReadOnly = a});--instance FromJSON VolumeFrom where- parseJSON- = withObject "VolumeFrom"- (\ x ->- VolumeFrom' <$>- (x .:? "sourceContainer") <*> (x .:? "readOnly"))--instance Hashable VolumeFrom--instance NFData VolumeFrom+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ECS.Types.Product where++import Network.AWS.ECS.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | An attribute is a name-value pair associated with an Amazon ECS object. Attributes enable you to extend the Amazon ECS data model by adding custom metadata to your resources. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes Attributes> in the /Amazon EC2 Container Service Developer Guide/ .+--+--+--+-- /See:/ 'attribute' smart constructor.+data Attribute = Attribute'+ { _aTargetId :: !(Maybe Text)+ , _aValue :: !(Maybe Text)+ , _aTargetType :: !(Maybe TargetType)+ , _aName :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Attribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aTargetId' - The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN).+--+-- * 'aValue' - The value of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons, and spaces are allowed.+--+-- * 'aTargetType' - The type of the target with which to attach the attribute. This parameter is required if you use the short form ID for a resource instead of the full Amazon Resource Name (ARN).+--+-- * 'aName' - The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, and periods are allowed.+attribute+ :: Text -- ^ 'aName'+ -> Attribute+attribute pName_ =+ Attribute'+ { _aTargetId = Nothing+ , _aValue = Nothing+ , _aTargetType = Nothing+ , _aName = pName_+ }+++-- | The ID of the target. You can specify the short form ID for a resource or the full Amazon Resource Name (ARN).+aTargetId :: Lens' Attribute (Maybe Text)+aTargetId = lens _aTargetId (\ s a -> s{_aTargetId = a});++-- | The value of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, periods, at signs (@), forward slashes, colons, and spaces are allowed.+aValue :: Lens' Attribute (Maybe Text)+aValue = lens _aValue (\ s a -> s{_aValue = a});++-- | The type of the target with which to attach the attribute. This parameter is required if you use the short form ID for a resource instead of the full Amazon Resource Name (ARN).+aTargetType :: Lens' Attribute (Maybe TargetType)+aTargetType = lens _aTargetType (\ s a -> s{_aTargetType = a});++-- | The name of the attribute. Up to 128 letters (uppercase and lowercase), numbers, hyphens, underscores, and periods are allowed.+aName :: Lens' Attribute Text+aName = lens _aName (\ s a -> s{_aName = a});++instance FromJSON Attribute where+ parseJSON+ = withObject "Attribute"+ (\ x ->+ Attribute' <$>+ (x .:? "targetId") <*> (x .:? "value") <*>+ (x .:? "targetType")+ <*> (x .: "name"))++instance Hashable Attribute where++instance NFData Attribute where++instance ToJSON Attribute where+ toJSON Attribute'{..}+ = object+ (catMaybes+ [("targetId" .=) <$> _aTargetId,+ ("value" .=) <$> _aValue,+ ("targetType" .=) <$> _aTargetType,+ Just ("name" .= _aName)])++-- | A regional grouping of one or more container instances on which you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.+--+--+--+-- /See:/ 'cluster' smart constructor.+data Cluster = Cluster'+ { _cStatus :: !(Maybe Text)+ , _cClusterARN :: !(Maybe Text)+ , _cRunningTasksCount :: !(Maybe Int)+ , _cRegisteredContainerInstancesCount :: !(Maybe Int)+ , _cPendingTasksCount :: !(Maybe Int)+ , _cClusterName :: !(Maybe Text)+ , _cActiveServicesCount :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Cluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cStatus' - The status of the cluster. The valid values are @ACTIVE@ or @INACTIVE@ . @ACTIVE@ indicates that you can register container instances with the cluster and the associated instances can accept tasks.+--+-- * 'cClusterARN' - The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the cluster, the AWS account ID of the cluster owner, the @cluster@ namespace, and then the cluster name. For example, @arn:aws:ecs:/region/ :/012345678910/ :cluster//test/ @ ..+--+-- * 'cRunningTasksCount' - The number of tasks in the cluster that are in the @RUNNING@ state.+--+-- * 'cRegisteredContainerInstancesCount' - The number of container instances registered into the cluster.+--+-- * 'cPendingTasksCount' - The number of tasks in the cluster that are in the @PENDING@ state.+--+-- * 'cClusterName' - A user-generated string that you use to identify your cluster.+--+-- * 'cActiveServicesCount' - The number of services that are running on the cluster in an @ACTIVE@ state. You can view these services with 'ListServices' .+cluster+ :: Cluster+cluster =+ Cluster'+ { _cStatus = Nothing+ , _cClusterARN = Nothing+ , _cRunningTasksCount = Nothing+ , _cRegisteredContainerInstancesCount = Nothing+ , _cPendingTasksCount = Nothing+ , _cClusterName = Nothing+ , _cActiveServicesCount = Nothing+ }+++-- | The status of the cluster. The valid values are @ACTIVE@ or @INACTIVE@ . @ACTIVE@ indicates that you can register container instances with the cluster and the associated instances can accept tasks.+cStatus :: Lens' Cluster (Maybe Text)+cStatus = lens _cStatus (\ s a -> s{_cStatus = a});++-- | The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the cluster, the AWS account ID of the cluster owner, the @cluster@ namespace, and then the cluster name. For example, @arn:aws:ecs:/region/ :/012345678910/ :cluster//test/ @ ..+cClusterARN :: Lens' Cluster (Maybe Text)+cClusterARN = lens _cClusterARN (\ s a -> s{_cClusterARN = a});++-- | The number of tasks in the cluster that are in the @RUNNING@ state.+cRunningTasksCount :: Lens' Cluster (Maybe Int)+cRunningTasksCount = lens _cRunningTasksCount (\ s a -> s{_cRunningTasksCount = a});++-- | The number of container instances registered into the cluster.+cRegisteredContainerInstancesCount :: Lens' Cluster (Maybe Int)+cRegisteredContainerInstancesCount = lens _cRegisteredContainerInstancesCount (\ s a -> s{_cRegisteredContainerInstancesCount = a});++-- | The number of tasks in the cluster that are in the @PENDING@ state.+cPendingTasksCount :: Lens' Cluster (Maybe Int)+cPendingTasksCount = lens _cPendingTasksCount (\ s a -> s{_cPendingTasksCount = a});++-- | A user-generated string that you use to identify your cluster.+cClusterName :: Lens' Cluster (Maybe Text)+cClusterName = lens _cClusterName (\ s a -> s{_cClusterName = a});++-- | The number of services that are running on the cluster in an @ACTIVE@ state. You can view these services with 'ListServices' .+cActiveServicesCount :: Lens' Cluster (Maybe Int)+cActiveServicesCount = lens _cActiveServicesCount (\ s a -> s{_cActiveServicesCount = a});++instance FromJSON Cluster where+ parseJSON+ = withObject "Cluster"+ (\ x ->+ Cluster' <$>+ (x .:? "status") <*> (x .:? "clusterArn") <*>+ (x .:? "runningTasksCount")+ <*> (x .:? "registeredContainerInstancesCount")+ <*> (x .:? "pendingTasksCount")+ <*> (x .:? "clusterName")+ <*> (x .:? "activeServicesCount"))++instance Hashable Cluster where++instance NFData Cluster where++-- | A Docker container that is part of a task.+--+--+--+-- /See:/ 'container' smart constructor.+data Container = Container'+ { _cNetworkBindings :: !(Maybe [NetworkBinding])+ , _cContainerARN :: !(Maybe Text)+ , _cTaskARN :: !(Maybe Text)+ , _cLastStatus :: !(Maybe Text)+ , _cReason :: !(Maybe Text)+ , _cName :: !(Maybe Text)+ , _cExitCode :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Container' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cNetworkBindings' - The network bindings associated with the container.+--+-- * 'cContainerARN' - The Amazon Resource Name (ARN) of the container.+--+-- * 'cTaskARN' - The Amazon Resource Name (ARN) of the task.+--+-- * 'cLastStatus' - The last known status of the container.+--+-- * 'cReason' - A short (255 max characters) human-readable string to provide additional details about a running or stopped container.+--+-- * 'cName' - The name of the container.+--+-- * 'cExitCode' - The exit code returned from the container.+container+ :: Container+container =+ Container'+ { _cNetworkBindings = Nothing+ , _cContainerARN = Nothing+ , _cTaskARN = Nothing+ , _cLastStatus = Nothing+ , _cReason = Nothing+ , _cName = Nothing+ , _cExitCode = Nothing+ }+++-- | The network bindings associated with the container.+cNetworkBindings :: Lens' Container [NetworkBinding]+cNetworkBindings = lens _cNetworkBindings (\ s a -> s{_cNetworkBindings = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the container.+cContainerARN :: Lens' Container (Maybe Text)+cContainerARN = lens _cContainerARN (\ s a -> s{_cContainerARN = a});++-- | The Amazon Resource Name (ARN) of the task.+cTaskARN :: Lens' Container (Maybe Text)+cTaskARN = lens _cTaskARN (\ s a -> s{_cTaskARN = a});++-- | The last known status of the container.+cLastStatus :: Lens' Container (Maybe Text)+cLastStatus = lens _cLastStatus (\ s a -> s{_cLastStatus = a});++-- | A short (255 max characters) human-readable string to provide additional details about a running or stopped container.+cReason :: Lens' Container (Maybe Text)+cReason = lens _cReason (\ s a -> s{_cReason = a});++-- | The name of the container.+cName :: Lens' Container (Maybe Text)+cName = lens _cName (\ s a -> s{_cName = a});++-- | The exit code returned from the container.+cExitCode :: Lens' Container (Maybe Int)+cExitCode = lens _cExitCode (\ s a -> s{_cExitCode = a});++instance FromJSON Container where+ parseJSON+ = withObject "Container"+ (\ x ->+ Container' <$>+ (x .:? "networkBindings" .!= mempty) <*>+ (x .:? "containerArn")+ <*> (x .:? "taskArn")+ <*> (x .:? "lastStatus")+ <*> (x .:? "reason")+ <*> (x .:? "name")+ <*> (x .:? "exitCode"))++instance Hashable Container where++instance NFData Container where++-- | Container definitions are used in task definitions to describe the different containers that are launched as part of a task.+--+--+--+-- /See:/ 'containerDefinition' smart constructor.+data ContainerDefinition = ContainerDefinition'+ { _cdImage :: !(Maybe Text)+ , _cdCommand :: !(Maybe [Text])+ , _cdHostname :: !(Maybe Text)+ , _cdDockerSecurityOptions :: !(Maybe [Text])+ , _cdDisableNetworking :: !(Maybe Bool)+ , _cdVolumesFrom :: !(Maybe [VolumeFrom])+ , _cdEnvironment :: !(Maybe [KeyValuePair])+ , _cdEntryPoint :: !(Maybe [Text])+ , _cdWorkingDirectory :: !(Maybe Text)+ , _cdUlimits :: !(Maybe [Ulimit])+ , _cdPrivileged :: !(Maybe Bool)+ , _cdPortMappings :: !(Maybe [PortMapping])+ , _cdDockerLabels :: !(Maybe (Map Text Text))+ , _cdExtraHosts :: !(Maybe [HostEntry])+ , _cdMemory :: !(Maybe Int)+ , _cdUser :: !(Maybe Text)+ , _cdDnsSearchDomains :: !(Maybe [Text])+ , _cdLogConfiguration :: !(Maybe LogConfiguration)+ , _cdLinuxParameters :: !(Maybe LinuxParameters)+ , _cdName :: !(Maybe Text)+ , _cdDnsServers :: !(Maybe [Text])+ , _cdMountPoints :: !(Maybe [MountPoint])+ , _cdLinks :: !(Maybe [Text])+ , _cdReadonlyRootFilesystem :: !(Maybe Bool)+ , _cdEssential :: !(Maybe Bool)+ , _cdCpu :: !(Maybe Int)+ , _cdMemoryReservation :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ContainerDefinition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdImage' - The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either @/repository-url/ //image/ :/tag/ @ or @/repository-url/ //image/ @/digest/ @ . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to @Image@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @IMAGE@ parameter of <https://docs.docker.com/engine/reference/run/ docker run> . * Images in Amazon ECR repositories can be specified by either using the full @registry/repository:tag@ or @registry/repository@digest@ . For example, @012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest@ or @012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE@ . * Images in official repositories on Docker Hub use a single name (for example, @ubuntu@ or @mongo@ ). * Images in other repositories on Docker Hub are qualified with an organization name (for example, @amazon/amazon-ecs-agent@ ). * Images in other online repositories are qualified further by a domain name (for example, @quay.io/assemblyline/ubuntu@ ).+--+-- * 'cdCommand' - The command that is passed to the container. This parameter maps to @Cmd@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @COMMAND@ parameter to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#cmd https://docs.docker.com/engine/reference/builder/#cmd> .+--+-- * 'cdHostname' - The hostname to use for your container. This parameter maps to @Hostname@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--hostname@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdDockerSecurityOptions' - A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to @SecurityOpt@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--security-opt@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdDisableNetworking' - When this parameter is true, networking is disabled within the container. This parameter maps to @NetworkDisabled@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> .+--+-- * 'cdVolumesFrom' - Data volumes to mount from another container. This parameter maps to @VolumesFrom@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--volumes-from@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdEnvironment' - The environment variables to pass to a container. This parameter maps to @Env@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--env@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ We do not recommend using plain text environment variables for sensitive information, such as credential data.+--+-- * 'cdEntryPoint' - /Important:/ Early versions of the Amazon ECS container agent do not properly handle @entryPoint@ parameters. If you have problems using @entryPoint@ , update your container agent or enter your commands and arguments as @command@ array items instead. The entry point that is passed to the container. This parameter maps to @Entrypoint@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--entrypoint@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#entrypoint https://docs.docker.com/engine/reference/builder/#entrypoint> .+--+-- * 'cdWorkingDirectory' - The working directory in which to run commands inside the container. This parameter maps to @WorkingDir@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--workdir@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdUlimits' - A list of @ulimits@ to set in the container. This parameter maps to @Ulimits@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--ulimit@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid naming values are displayed in the 'Ulimit' data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+--+-- * 'cdPrivileged' - When this parameter is true, the container is given elevated privileges on the host container instance (similar to the @root@ user). This parameter maps to @Privileged@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--privileged@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdPortMappings' - The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to @PortBindings@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--publish@ option to <https://docs.docker.com/engine/reference/run/ docker run> . If the network mode of a task definition is set to @none@ , then you cannot specify port mappings. If the network mode of a task definition is set to @host@ , then host ports must either be undefined or they must match the container port in the port mapping.+--+-- * 'cdDockerLabels' - A key/value map of labels to add to the container. This parameter maps to @Labels@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--label@ option to <https://docs.docker.com/engine/reference/run/ docker run> . This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+--+-- * 'cdExtraHosts' - A list of hostnames and IP address mappings to append to the @/etc/hosts@ file on the container. This parameter maps to @ExtraHosts@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--add-host@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdMemory' - The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to @Memory@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--memory@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.+--+-- * 'cdUser' - The user name to use inside the container. This parameter maps to @User@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--user@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdDnsSearchDomains' - A list of DNS search domains that are presented to the container. This parameter maps to @DnsSearch@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--dns-search@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdLogConfiguration' - The log configuration specification for the container. This parameter maps to @LogConfig@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--log-driver@ option to <https://docs.docker.com/engine/reference/run/ docker run> . By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see <https://docs.docker.com/engine/admin/logging/overview/ Configure logging drivers> in the Docker documentation. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+--+-- * 'cdLinuxParameters' - Linux-specific modifications that are applied to the container, such as Linux 'KernelCapabilities' .+--+-- * 'cdName' - The name of a container. If you are linking multiple containers together in a task definition, the @name@ of one container can be entered in the @links@ of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to @name@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--name@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdDnsServers' - A list of DNS servers that are presented to the container. This parameter maps to @Dns@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--dns@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdMountPoints' - The mount points for data volumes in your container. This parameter maps to @Volumes@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--volume@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'cdLinks' - The @link@ parameter allows containers to communicate with each other without the need for port mappings, using the @name@ parameter and optionally, an @alias@ for the link. This construct is analogous to @name:alias@ in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each @name@ and @alias@ . For more information on linking Docker containers, see <https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/ https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/> . This parameter maps to @Links@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--link@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.+--+-- * 'cdReadonlyRootFilesystem' - When this parameter is true, the container is given read-only access to its root file system. This parameter maps to @ReadonlyRootfs@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--read-only@ option to @docker run@ .+--+-- * 'cdEssential' - If the @essential@ parameter of a container is marked as @true@ , and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the @essential@ parameter of a container is marked as @false@ , then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html Application Architecture> in the /Amazon EC2 Container Service Developer Guide/ .+--+-- * 'cdCpu' - The number of @cpu@ units reserved for the container. A container instance has 1,024 @cpu@ units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to @CpuShares@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--cpu-shares@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see <https://docs.docker.com/engine/reference/run/#cpu-share-constraint CPU share constraint> in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: * __Agent versions less than or equal to 1.1.0:__ Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares. * __Agent versions greater than or equal to 1.2.0:__ Null, zero, and CPU values of 1 are passed to Docker as 2.+--+-- * 'cdMemoryReservation' - The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the @memory@ parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to @MemoryReservation@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--memory-reservation@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a @memoryReservation@ of 128 MiB, and a @memory@ hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.+containerDefinition+ :: ContainerDefinition+containerDefinition =+ ContainerDefinition'+ { _cdImage = Nothing+ , _cdCommand = Nothing+ , _cdHostname = Nothing+ , _cdDockerSecurityOptions = Nothing+ , _cdDisableNetworking = Nothing+ , _cdVolumesFrom = Nothing+ , _cdEnvironment = Nothing+ , _cdEntryPoint = Nothing+ , _cdWorkingDirectory = Nothing+ , _cdUlimits = Nothing+ , _cdPrivileged = Nothing+ , _cdPortMappings = Nothing+ , _cdDockerLabels = Nothing+ , _cdExtraHosts = Nothing+ , _cdMemory = Nothing+ , _cdUser = Nothing+ , _cdDnsSearchDomains = Nothing+ , _cdLogConfiguration = Nothing+ , _cdLinuxParameters = Nothing+ , _cdName = Nothing+ , _cdDnsServers = Nothing+ , _cdMountPoints = Nothing+ , _cdLinks = Nothing+ , _cdReadonlyRootFilesystem = Nothing+ , _cdEssential = Nothing+ , _cdCpu = Nothing+ , _cdMemoryReservation = Nothing+ }+++-- | The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with either @/repository-url/ //image/ :/tag/ @ or @/repository-url/ //image/ @/digest/ @ . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to @Image@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @IMAGE@ parameter of <https://docs.docker.com/engine/reference/run/ docker run> . * Images in Amazon ECR repositories can be specified by either using the full @registry/repository:tag@ or @registry/repository@digest@ . For example, @012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latest@ or @012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE@ . * Images in official repositories on Docker Hub use a single name (for example, @ubuntu@ or @mongo@ ). * Images in other repositories on Docker Hub are qualified with an organization name (for example, @amazon/amazon-ecs-agent@ ). * Images in other online repositories are qualified further by a domain name (for example, @quay.io/assemblyline/ubuntu@ ).+cdImage :: Lens' ContainerDefinition (Maybe Text)+cdImage = lens _cdImage (\ s a -> s{_cdImage = a});++-- | The command that is passed to the container. This parameter maps to @Cmd@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @COMMAND@ parameter to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#cmd https://docs.docker.com/engine/reference/builder/#cmd> .+cdCommand :: Lens' ContainerDefinition [Text]+cdCommand = lens _cdCommand (\ s a -> s{_cdCommand = a}) . _Default . _Coerce;++-- | The hostname to use for your container. This parameter maps to @Hostname@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--hostname@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdHostname :: Lens' ContainerDefinition (Maybe Text)+cdHostname = lens _cdHostname (\ s a -> s{_cdHostname = a});++-- | A list of strings to provide custom labels for SELinux and AppArmor multi-level security systems. This parameter maps to @SecurityOpt@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--security-opt@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdDockerSecurityOptions :: Lens' ContainerDefinition [Text]+cdDockerSecurityOptions = lens _cdDockerSecurityOptions (\ s a -> s{_cdDockerSecurityOptions = a}) . _Default . _Coerce;++-- | When this parameter is true, networking is disabled within the container. This parameter maps to @NetworkDisabled@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> .+cdDisableNetworking :: Lens' ContainerDefinition (Maybe Bool)+cdDisableNetworking = lens _cdDisableNetworking (\ s a -> s{_cdDisableNetworking = a});++-- | Data volumes to mount from another container. This parameter maps to @VolumesFrom@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--volumes-from@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdVolumesFrom :: Lens' ContainerDefinition [VolumeFrom]+cdVolumesFrom = lens _cdVolumesFrom (\ s a -> s{_cdVolumesFrom = a}) . _Default . _Coerce;++-- | The environment variables to pass to a container. This parameter maps to @Env@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--env@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ We do not recommend using plain text environment variables for sensitive information, such as credential data.+cdEnvironment :: Lens' ContainerDefinition [KeyValuePair]+cdEnvironment = lens _cdEnvironment (\ s a -> s{_cdEnvironment = a}) . _Default . _Coerce;++-- | /Important:/ Early versions of the Amazon ECS container agent do not properly handle @entryPoint@ parameters. If you have problems using @entryPoint@ , update your container agent or enter your commands and arguments as @command@ array items instead. The entry point that is passed to the container. This parameter maps to @Entrypoint@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--entrypoint@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For more information, see <https://docs.docker.com/engine/reference/builder/#entrypoint https://docs.docker.com/engine/reference/builder/#entrypoint> .+cdEntryPoint :: Lens' ContainerDefinition [Text]+cdEntryPoint = lens _cdEntryPoint (\ s a -> s{_cdEntryPoint = a}) . _Default . _Coerce;++-- | The working directory in which to run commands inside the container. This parameter maps to @WorkingDir@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--workdir@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdWorkingDirectory :: Lens' ContainerDefinition (Maybe Text)+cdWorkingDirectory = lens _cdWorkingDirectory (\ s a -> s{_cdWorkingDirectory = a});++-- | A list of @ulimits@ to set in the container. This parameter maps to @Ulimits@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--ulimit@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid naming values are displayed in the 'Ulimit' data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+cdUlimits :: Lens' ContainerDefinition [Ulimit]+cdUlimits = lens _cdUlimits (\ s a -> s{_cdUlimits = a}) . _Default . _Coerce;++-- | When this parameter is true, the container is given elevated privileges on the host container instance (similar to the @root@ user). This parameter maps to @Privileged@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--privileged@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdPrivileged :: Lens' ContainerDefinition (Maybe Bool)+cdPrivileged = lens _cdPrivileged (\ s a -> s{_cdPrivileged = a});++-- | The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. This parameter maps to @PortBindings@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--publish@ option to <https://docs.docker.com/engine/reference/run/ docker run> . If the network mode of a task definition is set to @none@ , then you cannot specify port mappings. If the network mode of a task definition is set to @host@ , then host ports must either be undefined or they must match the container port in the port mapping.+cdPortMappings :: Lens' ContainerDefinition [PortMapping]+cdPortMappings = lens _cdPortMappings (\ s a -> s{_cdPortMappings = a}) . _Default . _Coerce;++-- | A key/value map of labels to add to the container. This parameter maps to @Labels@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--label@ option to <https://docs.docker.com/engine/reference/run/ docker run> . This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+cdDockerLabels :: Lens' ContainerDefinition (HashMap Text Text)+cdDockerLabels = lens _cdDockerLabels (\ s a -> s{_cdDockerLabels = a}) . _Default . _Map;++-- | A list of hostnames and IP address mappings to append to the @/etc/hosts@ file on the container. This parameter maps to @ExtraHosts@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--add-host@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdExtraHosts :: Lens' ContainerDefinition [HostEntry]+cdExtraHosts = lens _cdExtraHosts (\ s a -> s{_cdExtraHosts = a}) . _Default . _Coerce;++-- | The hard limit (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. This parameter maps to @Memory@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--memory@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. The Docker daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.+cdMemory :: Lens' ContainerDefinition (Maybe Int)+cdMemory = lens _cdMemory (\ s a -> s{_cdMemory = a});++-- | The user name to use inside the container. This parameter maps to @User@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--user@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdUser :: Lens' ContainerDefinition (Maybe Text)+cdUser = lens _cdUser (\ s a -> s{_cdUser = a});++-- | A list of DNS search domains that are presented to the container. This parameter maps to @DnsSearch@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--dns-search@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdDnsSearchDomains :: Lens' ContainerDefinition [Text]+cdDnsSearchDomains = lens _cdDnsSearchDomains (\ s a -> s{_cdDnsSearchDomains = a}) . _Default . _Coerce;++-- | The log configuration specification for the container. This parameter maps to @LogConfig@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--log-driver@ option to <https://docs.docker.com/engine/reference/run/ docker run> . By default, containers use the same logging driver that the Docker daemon uses; however the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see <https://docs.docker.com/engine/admin/logging/overview/ Configure logging drivers> in the Docker documentation. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+cdLogConfiguration :: Lens' ContainerDefinition (Maybe LogConfiguration)+cdLogConfiguration = lens _cdLogConfiguration (\ s a -> s{_cdLogConfiguration = a});++-- | Linux-specific modifications that are applied to the container, such as Linux 'KernelCapabilities' .+cdLinuxParameters :: Lens' ContainerDefinition (Maybe LinuxParameters)+cdLinuxParameters = lens _cdLinuxParameters (\ s a -> s{_cdLinuxParameters = a});++-- | The name of a container. If you are linking multiple containers together in a task definition, the @name@ of one container can be entered in the @links@ of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This parameter maps to @name@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--name@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdName :: Lens' ContainerDefinition (Maybe Text)+cdName = lens _cdName (\ s a -> s{_cdName = a});++-- | A list of DNS servers that are presented to the container. This parameter maps to @Dns@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--dns@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdDnsServers :: Lens' ContainerDefinition [Text]+cdDnsServers = lens _cdDnsServers (\ s a -> s{_cdDnsServers = a}) . _Default . _Coerce;++-- | The mount points for data volumes in your container. This parameter maps to @Volumes@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--volume@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+cdMountPoints :: Lens' ContainerDefinition [MountPoint]+cdMountPoints = lens _cdMountPoints (\ s a -> s{_cdMountPoints = a}) . _Default . _Coerce;++-- | The @link@ parameter allows containers to communicate with each other without the need for port mappings, using the @name@ parameter and optionally, an @alias@ for the link. This construct is analogous to @name:alias@ in Docker links. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed for each @name@ and @alias@ . For more information on linking Docker containers, see <https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/ https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/> . This parameter maps to @Links@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--link@ option to <https://docs.docker.com/engine/reference/run/ docker run> . /Important:/ Containers that are collocated on a single container instance may be able to communicate with each other without requiring links or host port mappings. Network isolation is achieved on the container instance using security groups and VPC settings.+cdLinks :: Lens' ContainerDefinition [Text]+cdLinks = lens _cdLinks (\ s a -> s{_cdLinks = a}) . _Default . _Coerce;++-- | When this parameter is true, the container is given read-only access to its root file system. This parameter maps to @ReadonlyRootfs@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--read-only@ option to @docker run@ .+cdReadonlyRootFilesystem :: Lens' ContainerDefinition (Maybe Bool)+cdReadonlyRootFilesystem = lens _cdReadonlyRootFilesystem (\ s a -> s{_cdReadonlyRootFilesystem = a});++-- | If the @essential@ parameter of a container is marked as @true@ , and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the @essential@ parameter of a container is marked as @false@ , then its failure does not affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. All tasks must have at least one essential container. If you have an application that is composed of multiple containers, you should group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html Application Architecture> in the /Amazon EC2 Container Service Developer Guide/ .+cdEssential :: Lens' ContainerDefinition (Maybe Bool)+cdEssential = lens _cdEssential (\ s a -> s{_cdEssential = a});++-- | The number of @cpu@ units reserved for the container. A container instance has 1,024 @cpu@ units for every CPU core. This parameter specifies the minimum amount of CPU to reserve for a container, and containers share unallocated CPU units with other containers on the instance with the same ratio as their allocated amount. This parameter maps to @CpuShares@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--cpu-shares@ option to <https://docs.docker.com/engine/reference/run/ docker run> . For example, if you run a single-container task on a single-core instance type with 512 CPU units specified for that container, and that is the only task running on the container instance, that container could use the full 1,024 CPU unit share at any given time. However, if you launched another copy of the same task on that container instance, each task would be guaranteed a minimum of 512 CPU units when needed, and each container could float to higher CPU usage if the other container was not using it, but if both tasks were 100% active all of the time, they would be limited to 512 CPU units. The Docker daemon on the container instance uses the CPU value to calculate the relative CPU share ratios for running containers. For more information, see <https://docs.docker.com/engine/reference/run/#cpu-share-constraint CPU share constraint> in the Docker documentation. The minimum valid CPU share value that the Linux kernel allows is 2; however, the CPU parameter is not required, and you can use CPU values below 2 in your container definitions. For CPU values below 2 (including null), the behavior varies based on your Amazon ECS container agent version: * __Agent versions less than or equal to 1.1.0:__ Null and zero CPU values are passed to Docker as 0, which Docker then converts to 1,024 CPU shares. CPU values of 1 are passed to Docker as 1, which the Linux kernel converts to 2 CPU shares. * __Agent versions greater than or equal to 1.2.0:__ Null, zero, and CPU values of 1 are passed to Docker as 2.+cdCpu :: Lens' ContainerDefinition (Maybe Int)+cdCpu = lens _cdCpu (\ s a -> s{_cdCpu = a});++-- | The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit; however, your container can consume more memory when it needs to, up to either the hard limit specified with the @memory@ parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to @MemoryReservation@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--memory-reservation@ option to <https://docs.docker.com/engine/reference/run/ docker run> . You must specify a non-zero integer for one or both of @memory@ or @memoryReservation@ in container definitions. If you specify both, @memory@ must be greater than @memoryReservation@ . If you specify @memoryReservation@ , then that value is subtracted from the available memory resources for the container instance on which the container is placed; otherwise, the value of @memory@ is used. For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a @memoryReservation@ of 128 MiB, and a @memory@ hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.+cdMemoryReservation :: Lens' ContainerDefinition (Maybe Int)+cdMemoryReservation = lens _cdMemoryReservation (\ s a -> s{_cdMemoryReservation = a});++instance FromJSON ContainerDefinition where+ parseJSON+ = withObject "ContainerDefinition"+ (\ x ->+ ContainerDefinition' <$>+ (x .:? "image") <*> (x .:? "command" .!= mempty) <*>+ (x .:? "hostname")+ <*> (x .:? "dockerSecurityOptions" .!= mempty)+ <*> (x .:? "disableNetworking")+ <*> (x .:? "volumesFrom" .!= mempty)+ <*> (x .:? "environment" .!= mempty)+ <*> (x .:? "entryPoint" .!= mempty)+ <*> (x .:? "workingDirectory")+ <*> (x .:? "ulimits" .!= mempty)+ <*> (x .:? "privileged")+ <*> (x .:? "portMappings" .!= mempty)+ <*> (x .:? "dockerLabels" .!= mempty)+ <*> (x .:? "extraHosts" .!= mempty)+ <*> (x .:? "memory")+ <*> (x .:? "user")+ <*> (x .:? "dnsSearchDomains" .!= mempty)+ <*> (x .:? "logConfiguration")+ <*> (x .:? "linuxParameters")+ <*> (x .:? "name")+ <*> (x .:? "dnsServers" .!= mempty)+ <*> (x .:? "mountPoints" .!= mempty)+ <*> (x .:? "links" .!= mempty)+ <*> (x .:? "readonlyRootFilesystem")+ <*> (x .:? "essential")+ <*> (x .:? "cpu")+ <*> (x .:? "memoryReservation"))++instance Hashable ContainerDefinition where++instance NFData ContainerDefinition where++instance ToJSON ContainerDefinition where+ toJSON ContainerDefinition'{..}+ = object+ (catMaybes+ [("image" .=) <$> _cdImage,+ ("command" .=) <$> _cdCommand,+ ("hostname" .=) <$> _cdHostname,+ ("dockerSecurityOptions" .=) <$>+ _cdDockerSecurityOptions,+ ("disableNetworking" .=) <$> _cdDisableNetworking,+ ("volumesFrom" .=) <$> _cdVolumesFrom,+ ("environment" .=) <$> _cdEnvironment,+ ("entryPoint" .=) <$> _cdEntryPoint,+ ("workingDirectory" .=) <$> _cdWorkingDirectory,+ ("ulimits" .=) <$> _cdUlimits,+ ("privileged" .=) <$> _cdPrivileged,+ ("portMappings" .=) <$> _cdPortMappings,+ ("dockerLabels" .=) <$> _cdDockerLabels,+ ("extraHosts" .=) <$> _cdExtraHosts,+ ("memory" .=) <$> _cdMemory, ("user" .=) <$> _cdUser,+ ("dnsSearchDomains" .=) <$> _cdDnsSearchDomains,+ ("logConfiguration" .=) <$> _cdLogConfiguration,+ ("linuxParameters" .=) <$> _cdLinuxParameters,+ ("name" .=) <$> _cdName,+ ("dnsServers" .=) <$> _cdDnsServers,+ ("mountPoints" .=) <$> _cdMountPoints,+ ("links" .=) <$> _cdLinks,+ ("readonlyRootFilesystem" .=) <$>+ _cdReadonlyRootFilesystem,+ ("essential" .=) <$> _cdEssential,+ ("cpu" .=) <$> _cdCpu,+ ("memoryReservation" .=) <$> _cdMemoryReservation])++-- | An EC2 instance that is running the Amazon ECS agent and has been registered with a cluster.+--+--+--+-- /See:/ 'containerInstance' smart constructor.+data ContainerInstance = ContainerInstance'+ { _ciStatus :: !(Maybe Text)+ , _ciRunningTasksCount :: !(Maybe Int)+ , _ciRemainingResources :: !(Maybe [Resource])+ , _ciEc2InstanceId :: !(Maybe Text)+ , _ciContainerInstanceARN :: !(Maybe Text)+ , _ciAgentConnected :: !(Maybe Bool)+ , _ciVersionInfo :: !(Maybe VersionInfo)+ , _ciAgentUpdateStatus :: !(Maybe AgentUpdateStatus)+ , _ciAttributes :: !(Maybe [Attribute])+ , _ciVersion :: !(Maybe Integer)+ , _ciPendingTasksCount :: !(Maybe Int)+ , _ciRegisteredAt :: !(Maybe POSIX)+ , _ciRegisteredResources :: !(Maybe [Resource])+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ContainerInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ciStatus' - The status of the container instance. The valid values are @ACTIVE@ , @INACTIVE@ , or @DRAINING@ . @ACTIVE@ indicates that the container instance can accept tasks. @DRAINING@ indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html Container Instance Draining> in the /Amazon EC2 Container Service Developer Guide/ .+--+-- * 'ciRunningTasksCount' - The number of tasks on the container instance that are in the @RUNNING@ status.+--+-- * 'ciRemainingResources' - For most resource types, this parameter describes the remaining resources of the container instance that are available for new tasks. For port resource types, this parameter describes the ports that are reserved by the Amazon ECS container agent and any containers that have reserved port mappings; any port that is not specified here is available for new tasks.+--+-- * 'ciEc2InstanceId' - The EC2 instance ID of the container instance.+--+-- * 'ciContainerInstanceARN' - The Amazon Resource Name (ARN) of the container instance. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the @container-instance@ namespace, and then the container instance ID. For example, @arn:aws:ecs:/region/ :/aws_account_id/ :container-instance//container_instance_ID/ @ .+--+-- * 'ciAgentConnected' - This parameter returns @true@ if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return @false@ , and instances without a connected agent cannot accept placement requests.+--+-- * 'ciVersionInfo' - The version information for the Amazon ECS container agent and Docker daemon running on the container instance.+--+-- * 'ciAgentUpdateStatus' - The status of the most recent agent update. If an update has never been requested, this value is @NULL@ .+--+-- * 'ciAttributes' - The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the 'PutAttributes' operation.+--+-- * 'ciVersion' - The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch events for the container instance (inside the @detail@ object) to verify that the version in your event stream is current.+--+-- * 'ciPendingTasksCount' - The number of tasks on the container instance that are in the @PENDING@ status.+--+-- * 'ciRegisteredAt' - The Unix timestamp for when the container instance was registered.+--+-- * 'ciRegisteredResources' - For most resource types, this parameter describes the registered resources on the container instance that are in use by current tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.+containerInstance+ :: ContainerInstance+containerInstance =+ ContainerInstance'+ { _ciStatus = Nothing+ , _ciRunningTasksCount = Nothing+ , _ciRemainingResources = Nothing+ , _ciEc2InstanceId = Nothing+ , _ciContainerInstanceARN = Nothing+ , _ciAgentConnected = Nothing+ , _ciVersionInfo = Nothing+ , _ciAgentUpdateStatus = Nothing+ , _ciAttributes = Nothing+ , _ciVersion = Nothing+ , _ciPendingTasksCount = Nothing+ , _ciRegisteredAt = Nothing+ , _ciRegisteredResources = Nothing+ }+++-- | The status of the container instance. The valid values are @ACTIVE@ , @INACTIVE@ , or @DRAINING@ . @ACTIVE@ indicates that the container instance can accept tasks. @DRAINING@ indicates that new tasks are not placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-draining.html Container Instance Draining> in the /Amazon EC2 Container Service Developer Guide/ .+ciStatus :: Lens' ContainerInstance (Maybe Text)+ciStatus = lens _ciStatus (\ s a -> s{_ciStatus = a});++-- | The number of tasks on the container instance that are in the @RUNNING@ status.+ciRunningTasksCount :: Lens' ContainerInstance (Maybe Int)+ciRunningTasksCount = lens _ciRunningTasksCount (\ s a -> s{_ciRunningTasksCount = a});++-- | For most resource types, this parameter describes the remaining resources of the container instance that are available for new tasks. For port resource types, this parameter describes the ports that are reserved by the Amazon ECS container agent and any containers that have reserved port mappings; any port that is not specified here is available for new tasks.+ciRemainingResources :: Lens' ContainerInstance [Resource]+ciRemainingResources = lens _ciRemainingResources (\ s a -> s{_ciRemainingResources = a}) . _Default . _Coerce;++-- | The EC2 instance ID of the container instance.+ciEc2InstanceId :: Lens' ContainerInstance (Maybe Text)+ciEc2InstanceId = lens _ciEc2InstanceId (\ s a -> s{_ciEc2InstanceId = a});++-- | The Amazon Resource Name (ARN) of the container instance. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the container instance, the AWS account ID of the container instance owner, the @container-instance@ namespace, and then the container instance ID. For example, @arn:aws:ecs:/region/ :/aws_account_id/ :container-instance//container_instance_ID/ @ .+ciContainerInstanceARN :: Lens' ContainerInstance (Maybe Text)+ciContainerInstanceARN = lens _ciContainerInstanceARN (\ s a -> s{_ciContainerInstanceARN = a});++-- | This parameter returns @true@ if the agent is actually connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return @false@ , and instances without a connected agent cannot accept placement requests.+ciAgentConnected :: Lens' ContainerInstance (Maybe Bool)+ciAgentConnected = lens _ciAgentConnected (\ s a -> s{_ciAgentConnected = a});++-- | The version information for the Amazon ECS container agent and Docker daemon running on the container instance.+ciVersionInfo :: Lens' ContainerInstance (Maybe VersionInfo)+ciVersionInfo = lens _ciVersionInfo (\ s a -> s{_ciVersionInfo = a});++-- | The status of the most recent agent update. If an update has never been requested, this value is @NULL@ .+ciAgentUpdateStatus :: Lens' ContainerInstance (Maybe AgentUpdateStatus)+ciAgentUpdateStatus = lens _ciAgentUpdateStatus (\ s a -> s{_ciAgentUpdateStatus = a});++-- | The attributes set for the container instance, either by the Amazon ECS container agent at instance registration or manually with the 'PutAttributes' operation.+ciAttributes :: Lens' ContainerInstance [Attribute]+ciAttributes = lens _ciAttributes (\ s a -> s{_ciAttributes = a}) . _Default . _Coerce;++-- | The version counter for the container instance. Every time a container instance experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS container instance state with CloudWatch events, you can compare the version of a container instance reported by the Amazon ECS APIs with the version reported in CloudWatch events for the container instance (inside the @detail@ object) to verify that the version in your event stream is current.+ciVersion :: Lens' ContainerInstance (Maybe Integer)+ciVersion = lens _ciVersion (\ s a -> s{_ciVersion = a});++-- | The number of tasks on the container instance that are in the @PENDING@ status.+ciPendingTasksCount :: Lens' ContainerInstance (Maybe Int)+ciPendingTasksCount = lens _ciPendingTasksCount (\ s a -> s{_ciPendingTasksCount = a});++-- | The Unix timestamp for when the container instance was registered.+ciRegisteredAt :: Lens' ContainerInstance (Maybe UTCTime)+ciRegisteredAt = lens _ciRegisteredAt (\ s a -> s{_ciRegisteredAt = a}) . mapping _Time;++-- | For most resource types, this parameter describes the registered resources on the container instance that are in use by current tasks. For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container agent when it registered the container instance with Amazon ECS.+ciRegisteredResources :: Lens' ContainerInstance [Resource]+ciRegisteredResources = lens _ciRegisteredResources (\ s a -> s{_ciRegisteredResources = a}) . _Default . _Coerce;++instance FromJSON ContainerInstance where+ parseJSON+ = withObject "ContainerInstance"+ (\ x ->+ ContainerInstance' <$>+ (x .:? "status") <*> (x .:? "runningTasksCount") <*>+ (x .:? "remainingResources" .!= mempty)+ <*> (x .:? "ec2InstanceId")+ <*> (x .:? "containerInstanceArn")+ <*> (x .:? "agentConnected")+ <*> (x .:? "versionInfo")+ <*> (x .:? "agentUpdateStatus")+ <*> (x .:? "attributes" .!= mempty)+ <*> (x .:? "version")+ <*> (x .:? "pendingTasksCount")+ <*> (x .:? "registeredAt")+ <*> (x .:? "registeredResources" .!= mempty))++instance Hashable ContainerInstance where++instance NFData ContainerInstance where++-- | The overrides that should be sent to a container.+--+--+--+-- /See:/ 'containerOverride' smart constructor.+data ContainerOverride = ContainerOverride'+ { _coCommand :: !(Maybe [Text])+ , _coEnvironment :: !(Maybe [KeyValuePair])+ , _coMemory :: !(Maybe Int)+ , _coName :: !(Maybe Text)+ , _coCpu :: !(Maybe Int)+ , _coMemoryReservation :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ContainerOverride' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'coCommand' - The command to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.+--+-- * 'coEnvironment' - The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.+--+-- * 'coMemory' - The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.+--+-- * 'coName' - The name of the container that receives the override. This parameter is required if any override is specified.+--+-- * 'coCpu' - The number of @cpu@ units reserved for the container, instead of the default value from the task definition. You must also specify a container name.+--+-- * 'coMemoryReservation' - The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name.+containerOverride+ :: ContainerOverride+containerOverride =+ ContainerOverride'+ { _coCommand = Nothing+ , _coEnvironment = Nothing+ , _coMemory = Nothing+ , _coName = Nothing+ , _coCpu = Nothing+ , _coMemoryReservation = Nothing+ }+++-- | The command to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.+coCommand :: Lens' ContainerOverride [Text]+coCommand = lens _coCommand (\ s a -> s{_coCommand = a}) . _Default . _Coerce;++-- | The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.+coEnvironment :: Lens' ContainerOverride [KeyValuePair]+coEnvironment = lens _coEnvironment (\ s a -> s{_coEnvironment = a}) . _Default . _Coerce;++-- | The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.+coMemory :: Lens' ContainerOverride (Maybe Int)+coMemory = lens _coMemory (\ s a -> s{_coMemory = a});++-- | The name of the container that receives the override. This parameter is required if any override is specified.+coName :: Lens' ContainerOverride (Maybe Text)+coName = lens _coName (\ s a -> s{_coName = a});++-- | The number of @cpu@ units reserved for the container, instead of the default value from the task definition. You must also specify a container name.+coCpu :: Lens' ContainerOverride (Maybe Int)+coCpu = lens _coCpu (\ s a -> s{_coCpu = a});++-- | The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name.+coMemoryReservation :: Lens' ContainerOverride (Maybe Int)+coMemoryReservation = lens _coMemoryReservation (\ s a -> s{_coMemoryReservation = a});++instance FromJSON ContainerOverride where+ parseJSON+ = withObject "ContainerOverride"+ (\ x ->+ ContainerOverride' <$>+ (x .:? "command" .!= mempty) <*>+ (x .:? "environment" .!= mempty)+ <*> (x .:? "memory")+ <*> (x .:? "name")+ <*> (x .:? "cpu")+ <*> (x .:? "memoryReservation"))++instance Hashable ContainerOverride where++instance NFData ContainerOverride where++instance ToJSON ContainerOverride where+ toJSON ContainerOverride'{..}+ = object+ (catMaybes+ [("command" .=) <$> _coCommand,+ ("environment" .=) <$> _coEnvironment,+ ("memory" .=) <$> _coMemory, ("name" .=) <$> _coName,+ ("cpu" .=) <$> _coCpu,+ ("memoryReservation" .=) <$> _coMemoryReservation])++-- | Details on a service within a cluster+--+--+--+-- /See:/ 'containerService' smart constructor.+data ContainerService = ContainerService'+ { _csRunningCount :: !(Maybe Int)+ , _csStatus :: !(Maybe Text)+ , _csClusterARN :: !(Maybe Text)+ , _csCreatedAt :: !(Maybe POSIX)+ , _csDesiredCount :: !(Maybe Int)+ , _csLoadBalancers :: !(Maybe [LoadBalancer])+ , _csPendingCount :: !(Maybe Int)+ , _csPlacementConstraints :: !(Maybe [PlacementConstraint])+ , _csEvents :: !(Maybe [ServiceEvent])+ , _csPlacementStrategy :: !(Maybe [PlacementStrategy])+ , _csDeployments :: !(Maybe [Deployment])+ , _csServiceName :: !(Maybe Text)+ , _csServiceARN :: !(Maybe Text)+ , _csTaskDefinition :: !(Maybe Text)+ , _csRoleARN :: !(Maybe Text)+ , _csDeploymentConfiguration :: !(Maybe DeploymentConfiguration)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ContainerService' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csRunningCount' - The number of tasks in the cluster that are in the @RUNNING@ state.+--+-- * 'csStatus' - The status of the service. The valid values are @ACTIVE@ , @DRAINING@ , or @INACTIVE@ .+--+-- * 'csClusterARN' - The Amazon Resource Name (ARN) of the cluster that hosts the service.+--+-- * 'csCreatedAt' - The Unix timestamp for when the service was created.+--+-- * 'csDesiredCount' - The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .+--+-- * 'csLoadBalancers' - A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.+--+-- * 'csPendingCount' - The number of tasks in the cluster that are in the @PENDING@ state.+--+-- * 'csPlacementConstraints' - The placement constraints for the tasks in the service.+--+-- * 'csEvents' - The event stream for your service. A maximum of 100 of the latest events are displayed.+--+-- * 'csPlacementStrategy' - The placement strategy that determines how tasks for the service are placed.+--+-- * 'csDeployments' - The current state of deployments for the service.+--+-- * 'csServiceName' - The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.+--+-- * 'csServiceARN' - The Amazon Resource Name (ARN) that identifies the service. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the service, the AWS account ID of the service owner, the @service@ namespace, and then the service name. For example, @arn:aws:ecs:/region/ :/012345678910/ :service//my-service/ @ .+--+-- * 'csTaskDefinition' - The task definition to use for tasks in the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .+--+-- * 'csRoleARN' - The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.+--+-- * 'csDeploymentConfiguration' - Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.+containerService+ :: ContainerService+containerService =+ ContainerService'+ { _csRunningCount = Nothing+ , _csStatus = Nothing+ , _csClusterARN = Nothing+ , _csCreatedAt = Nothing+ , _csDesiredCount = Nothing+ , _csLoadBalancers = Nothing+ , _csPendingCount = Nothing+ , _csPlacementConstraints = Nothing+ , _csEvents = Nothing+ , _csPlacementStrategy = Nothing+ , _csDeployments = Nothing+ , _csServiceName = Nothing+ , _csServiceARN = Nothing+ , _csTaskDefinition = Nothing+ , _csRoleARN = Nothing+ , _csDeploymentConfiguration = Nothing+ }+++-- | The number of tasks in the cluster that are in the @RUNNING@ state.+csRunningCount :: Lens' ContainerService (Maybe Int)+csRunningCount = lens _csRunningCount (\ s a -> s{_csRunningCount = a});++-- | The status of the service. The valid values are @ACTIVE@ , @DRAINING@ , or @INACTIVE@ .+csStatus :: Lens' ContainerService (Maybe Text)+csStatus = lens _csStatus (\ s a -> s{_csStatus = a});++-- | The Amazon Resource Name (ARN) of the cluster that hosts the service.+csClusterARN :: Lens' ContainerService (Maybe Text)+csClusterARN = lens _csClusterARN (\ s a -> s{_csClusterARN = a});++-- | The Unix timestamp for when the service was created.+csCreatedAt :: Lens' ContainerService (Maybe UTCTime)+csCreatedAt = lens _csCreatedAt (\ s a -> s{_csCreatedAt = a}) . mapping _Time;++-- | The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .+csDesiredCount :: Lens' ContainerService (Maybe Int)+csDesiredCount = lens _csDesiredCount (\ s a -> s{_csDesiredCount = a});++-- | A list of Elastic Load Balancing load balancer objects, containing the load balancer name, the container name (as it appears in a container definition), and the container port to access from the load balancer.+csLoadBalancers :: Lens' ContainerService [LoadBalancer]+csLoadBalancers = lens _csLoadBalancers (\ s a -> s{_csLoadBalancers = a}) . _Default . _Coerce;++-- | The number of tasks in the cluster that are in the @PENDING@ state.+csPendingCount :: Lens' ContainerService (Maybe Int)+csPendingCount = lens _csPendingCount (\ s a -> s{_csPendingCount = a});++-- | The placement constraints for the tasks in the service.+csPlacementConstraints :: Lens' ContainerService [PlacementConstraint]+csPlacementConstraints = lens _csPlacementConstraints (\ s a -> s{_csPlacementConstraints = a}) . _Default . _Coerce;++-- | The event stream for your service. A maximum of 100 of the latest events are displayed.+csEvents :: Lens' ContainerService [ServiceEvent]+csEvents = lens _csEvents (\ s a -> s{_csEvents = a}) . _Default . _Coerce;++-- | The placement strategy that determines how tasks for the service are placed.+csPlacementStrategy :: Lens' ContainerService [PlacementStrategy]+csPlacementStrategy = lens _csPlacementStrategy (\ s a -> s{_csPlacementStrategy = a}) . _Default . _Coerce;++-- | The current state of deployments for the service.+csDeployments :: Lens' ContainerService [Deployment]+csDeployments = lens _csDeployments (\ s a -> s{_csDeployments = a}) . _Default . _Coerce;++-- | The name of your service. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a region or across multiple regions.+csServiceName :: Lens' ContainerService (Maybe Text)+csServiceName = lens _csServiceName (\ s a -> s{_csServiceName = a});++-- | The Amazon Resource Name (ARN) that identifies the service. The ARN contains the @arn:aws:ecs@ namespace, followed by the region of the service, the AWS account ID of the service owner, the @service@ namespace, and then the service name. For example, @arn:aws:ecs:/region/ :/012345678910/ :service//my-service/ @ .+csServiceARN :: Lens' ContainerService (Maybe Text)+csServiceARN = lens _csServiceARN (\ s a -> s{_csServiceARN = a});++-- | The task definition to use for tasks in the service. This value is specified when the service is created with 'CreateService' , and it can be modified with 'UpdateService' .+csTaskDefinition :: Lens' ContainerService (Maybe Text)+csTaskDefinition = lens _csTaskDefinition (\ s a -> s{_csTaskDefinition = a});++-- | The Amazon Resource Name (ARN) of the IAM role associated with the service that allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.+csRoleARN :: Lens' ContainerService (Maybe Text)+csRoleARN = lens _csRoleARN (\ s a -> s{_csRoleARN = a});++-- | Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.+csDeploymentConfiguration :: Lens' ContainerService (Maybe DeploymentConfiguration)+csDeploymentConfiguration = lens _csDeploymentConfiguration (\ s a -> s{_csDeploymentConfiguration = a});++instance FromJSON ContainerService where+ parseJSON+ = withObject "ContainerService"+ (\ x ->+ ContainerService' <$>+ (x .:? "runningCount") <*> (x .:? "status") <*>+ (x .:? "clusterArn")+ <*> (x .:? "createdAt")+ <*> (x .:? "desiredCount")+ <*> (x .:? "loadBalancers" .!= mempty)+ <*> (x .:? "pendingCount")+ <*> (x .:? "placementConstraints" .!= mempty)+ <*> (x .:? "events" .!= mempty)+ <*> (x .:? "placementStrategy" .!= mempty)+ <*> (x .:? "deployments" .!= mempty)+ <*> (x .:? "serviceName")+ <*> (x .:? "serviceArn")+ <*> (x .:? "taskDefinition")+ <*> (x .:? "roleArn")+ <*> (x .:? "deploymentConfiguration"))++instance Hashable ContainerService where++instance NFData ContainerService where++-- | The details of an Amazon ECS service deployment.+--+--+--+-- /See:/ 'deployment' smart constructor.+data Deployment = Deployment'+ { _dRunningCount :: !(Maybe Int)+ , _dStatus :: !(Maybe Text)+ , _dCreatedAt :: !(Maybe POSIX)+ , _dDesiredCount :: !(Maybe Int)+ , _dPendingCount :: !(Maybe Int)+ , _dId :: !(Maybe Text)+ , _dUpdatedAt :: !(Maybe POSIX)+ , _dTaskDefinition :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Deployment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dRunningCount' - The number of tasks in the deployment that are in the @RUNNING@ status.+--+-- * 'dStatus' - The status of the deployment. Valid values are @PRIMARY@ (for the most recent deployment), @ACTIVE@ (for previous deployments that still have tasks running, but are being replaced with the @PRIMARY@ deployment), and @INACTIVE@ (for deployments that have been completely replaced).+--+-- * 'dCreatedAt' - The Unix timestamp for when the service was created.+--+-- * 'dDesiredCount' - The most recent desired count of tasks that was specified for the service to deploy or maintain.+--+-- * 'dPendingCount' - The number of tasks in the deployment that are in the @PENDING@ status.+--+-- * 'dId' - The ID of the deployment.+--+-- * 'dUpdatedAt' - The Unix timestamp for when the service was last updated.+--+-- * 'dTaskDefinition' - The most recent task definition that was specified for the service to use.+deployment+ :: Deployment+deployment =+ Deployment'+ { _dRunningCount = Nothing+ , _dStatus = Nothing+ , _dCreatedAt = Nothing+ , _dDesiredCount = Nothing+ , _dPendingCount = Nothing+ , _dId = Nothing+ , _dUpdatedAt = Nothing+ , _dTaskDefinition = Nothing+ }+++-- | The number of tasks in the deployment that are in the @RUNNING@ status.+dRunningCount :: Lens' Deployment (Maybe Int)+dRunningCount = lens _dRunningCount (\ s a -> s{_dRunningCount = a});++-- | The status of the deployment. Valid values are @PRIMARY@ (for the most recent deployment), @ACTIVE@ (for previous deployments that still have tasks running, but are being replaced with the @PRIMARY@ deployment), and @INACTIVE@ (for deployments that have been completely replaced).+dStatus :: Lens' Deployment (Maybe Text)+dStatus = lens _dStatus (\ s a -> s{_dStatus = a});++-- | The Unix timestamp for when the service was created.+dCreatedAt :: Lens' Deployment (Maybe UTCTime)+dCreatedAt = lens _dCreatedAt (\ s a -> s{_dCreatedAt = a}) . mapping _Time;++-- | The most recent desired count of tasks that was specified for the service to deploy or maintain.+dDesiredCount :: Lens' Deployment (Maybe Int)+dDesiredCount = lens _dDesiredCount (\ s a -> s{_dDesiredCount = a});++-- | The number of tasks in the deployment that are in the @PENDING@ status.+dPendingCount :: Lens' Deployment (Maybe Int)+dPendingCount = lens _dPendingCount (\ s a -> s{_dPendingCount = a});++-- | The ID of the deployment.+dId :: Lens' Deployment (Maybe Text)+dId = lens _dId (\ s a -> s{_dId = a});++-- | The Unix timestamp for when the service was last updated.+dUpdatedAt :: Lens' Deployment (Maybe UTCTime)+dUpdatedAt = lens _dUpdatedAt (\ s a -> s{_dUpdatedAt = a}) . mapping _Time;++-- | The most recent task definition that was specified for the service to use.+dTaskDefinition :: Lens' Deployment (Maybe Text)+dTaskDefinition = lens _dTaskDefinition (\ s a -> s{_dTaskDefinition = a});++instance FromJSON Deployment where+ parseJSON+ = withObject "Deployment"+ (\ x ->+ Deployment' <$>+ (x .:? "runningCount") <*> (x .:? "status") <*>+ (x .:? "createdAt")+ <*> (x .:? "desiredCount")+ <*> (x .:? "pendingCount")+ <*> (x .:? "id")+ <*> (x .:? "updatedAt")+ <*> (x .:? "taskDefinition"))++instance Hashable Deployment where++instance NFData Deployment where++-- | Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.+--+--+--+-- /See:/ 'deploymentConfiguration' smart constructor.+data DeploymentConfiguration = DeploymentConfiguration'+ { _dcMinimumHealthyPercent :: !(Maybe Int)+ , _dcMaximumPercent :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeploymentConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcMinimumHealthyPercent' - The lower limit (as a percentage of the service's @desiredCount@ ) of the number of running tasks that must remain in the @RUNNING@ state in a service during a deployment. The minimum healthy tasks during a deployment is the @desiredCount@ multiplied by @minimumHealthyPercent@ /100, rounded up to the nearest integer value.+--+-- * 'dcMaximumPercent' - The upper limit (as a percentage of the service's @desiredCount@ ) of the number of tasks that are allowed in the @RUNNING@ or @PENDING@ state in a service during a deployment. The maximum number of tasks during a deployment is the @desiredCount@ multiplied by @maximumPercent@ /100, rounded down to the nearest integer value.+deploymentConfiguration+ :: DeploymentConfiguration+deploymentConfiguration =+ DeploymentConfiguration'+ {_dcMinimumHealthyPercent = Nothing, _dcMaximumPercent = Nothing}+++-- | The lower limit (as a percentage of the service's @desiredCount@ ) of the number of running tasks that must remain in the @RUNNING@ state in a service during a deployment. The minimum healthy tasks during a deployment is the @desiredCount@ multiplied by @minimumHealthyPercent@ /100, rounded up to the nearest integer value.+dcMinimumHealthyPercent :: Lens' DeploymentConfiguration (Maybe Int)+dcMinimumHealthyPercent = lens _dcMinimumHealthyPercent (\ s a -> s{_dcMinimumHealthyPercent = a});++-- | The upper limit (as a percentage of the service's @desiredCount@ ) of the number of tasks that are allowed in the @RUNNING@ or @PENDING@ state in a service during a deployment. The maximum number of tasks during a deployment is the @desiredCount@ multiplied by @maximumPercent@ /100, rounded down to the nearest integer value.+dcMaximumPercent :: Lens' DeploymentConfiguration (Maybe Int)+dcMaximumPercent = lens _dcMaximumPercent (\ s a -> s{_dcMaximumPercent = a});++instance FromJSON DeploymentConfiguration where+ parseJSON+ = withObject "DeploymentConfiguration"+ (\ x ->+ DeploymentConfiguration' <$>+ (x .:? "minimumHealthyPercent") <*>+ (x .:? "maximumPercent"))++instance Hashable DeploymentConfiguration where++instance NFData DeploymentConfiguration where++instance ToJSON DeploymentConfiguration where+ toJSON DeploymentConfiguration'{..}+ = object+ (catMaybes+ [("minimumHealthyPercent" .=) <$>+ _dcMinimumHealthyPercent,+ ("maximumPercent" .=) <$> _dcMaximumPercent])++-- | An object representing a container instance host device.+--+--+--+-- /See:/ 'device' smart constructor.+data Device = Device'+ { _dContainerPath :: !(Maybe Text)+ , _dPermissions :: !(Maybe [DeviceCgroupPermission])+ , _dHostPath :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Device' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dContainerPath' - The path inside the container at which to expose the host device.+--+-- * 'dPermissions' - The explicit permissions to provide to the container for the device. By default, the container will be able to @read@ , @write@ , and @mknod@ the device.+--+-- * 'dHostPath' - The path for the device on the host container instance.+device+ :: Text -- ^ 'dHostPath'+ -> Device+device pHostPath_ =+ Device'+ {_dContainerPath = Nothing, _dPermissions = Nothing, _dHostPath = pHostPath_}+++-- | The path inside the container at which to expose the host device.+dContainerPath :: Lens' Device (Maybe Text)+dContainerPath = lens _dContainerPath (\ s a -> s{_dContainerPath = a});++-- | The explicit permissions to provide to the container for the device. By default, the container will be able to @read@ , @write@ , and @mknod@ the device.+dPermissions :: Lens' Device [DeviceCgroupPermission]+dPermissions = lens _dPermissions (\ s a -> s{_dPermissions = a}) . _Default . _Coerce;++-- | The path for the device on the host container instance.+dHostPath :: Lens' Device Text+dHostPath = lens _dHostPath (\ s a -> s{_dHostPath = a});++instance FromJSON Device where+ parseJSON+ = withObject "Device"+ (\ x ->+ Device' <$>+ (x .:? "containerPath") <*>+ (x .:? "permissions" .!= mempty)+ <*> (x .: "hostPath"))++instance Hashable Device where++instance NFData Device where++instance ToJSON Device where+ toJSON Device'{..}+ = object+ (catMaybes+ [("containerPath" .=) <$> _dContainerPath,+ ("permissions" .=) <$> _dPermissions,+ Just ("hostPath" .= _dHostPath)])++-- | A failed resource.+--+--+--+-- /See:/ 'failure' smart constructor.+data Failure = Failure'+ { _fArn :: !(Maybe Text)+ , _fReason :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Failure' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fArn' - The Amazon Resource Name (ARN) of the failed resource.+--+-- * 'fReason' - The reason for the failure.+failure+ :: Failure+failure = Failure' {_fArn = Nothing, _fReason = Nothing}+++-- | The Amazon Resource Name (ARN) of the failed resource.+fArn :: Lens' Failure (Maybe Text)+fArn = lens _fArn (\ s a -> s{_fArn = a});++-- | The reason for the failure.+fReason :: Lens' Failure (Maybe Text)+fReason = lens _fReason (\ s a -> s{_fReason = a});++instance FromJSON Failure where+ parseJSON+ = withObject "Failure"+ (\ x ->+ Failure' <$> (x .:? "arn") <*> (x .:? "reason"))++instance Hashable Failure where++instance NFData Failure where++-- | Hostnames and IP address entries that are added to the @/etc/hosts@ file of a container via the @extraHosts@ parameter of its 'ContainerDefinition' .+--+--+--+-- /See:/ 'hostEntry' smart constructor.+data HostEntry = HostEntry'+ { _heHostname :: !Text+ , _heIpAddress :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HostEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'heHostname' - The hostname to use in the @/etc/hosts@ entry.+--+-- * 'heIpAddress' - The IP address to use in the @/etc/hosts@ entry.+hostEntry+ :: Text -- ^ 'heHostname'+ -> Text -- ^ 'heIpAddress'+ -> HostEntry+hostEntry pHostname_ pIpAddress_ =+ HostEntry' {_heHostname = pHostname_, _heIpAddress = pIpAddress_}+++-- | The hostname to use in the @/etc/hosts@ entry.+heHostname :: Lens' HostEntry Text+heHostname = lens _heHostname (\ s a -> s{_heHostname = a});++-- | The IP address to use in the @/etc/hosts@ entry.+heIpAddress :: Lens' HostEntry Text+heIpAddress = lens _heIpAddress (\ s a -> s{_heIpAddress = a});++instance FromJSON HostEntry where+ parseJSON+ = withObject "HostEntry"+ (\ x ->+ HostEntry' <$>+ (x .: "hostname") <*> (x .: "ipAddress"))++instance Hashable HostEntry where++instance NFData HostEntry where++instance ToJSON HostEntry where+ toJSON HostEntry'{..}+ = object+ (catMaybes+ [Just ("hostname" .= _heHostname),+ Just ("ipAddress" .= _heIpAddress)])++-- | Details on a container instance host volume.+--+--+--+-- /See:/ 'hostVolumeProperties' smart constructor.+newtype HostVolumeProperties = HostVolumeProperties'+ { _hvpSourcePath :: Maybe Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HostVolumeProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hvpSourcePath' - The path on the host container instance that is presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the @host@ parameter contains a @sourcePath@ file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the @sourcePath@ value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.+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. If the @host@ parameter contains a @sourcePath@ file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the @sourcePath@ value does not exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.+hvpSourcePath :: Lens' HostVolumeProperties (Maybe Text)+hvpSourcePath = lens _hvpSourcePath (\ s a -> s{_hvpSourcePath = a});++instance FromJSON HostVolumeProperties where+ parseJSON+ = withObject "HostVolumeProperties"+ (\ x ->+ HostVolumeProperties' <$> (x .:? "sourcePath"))++instance Hashable HostVolumeProperties where++instance NFData HostVolumeProperties where++instance ToJSON HostVolumeProperties where+ toJSON HostVolumeProperties'{..}+ = object+ (catMaybes [("sourcePath" .=) <$> _hvpSourcePath])++-- | The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker. For more information on the default capabilities and the non-default available capabilities, see <https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities Runtime privilege and Linux capabilities> in the /Docker run reference/ . For more detailed information on these Linux capabilities, see the <http://man7.org/linux/man-pages/man7/capabilities.7.html capabilities(7)> Linux manual page.+--+--+--+-- /See:/ 'kernelCapabilities' smart constructor.+data KernelCapabilities = KernelCapabilities'+ { _kcDrop :: !(Maybe [Text])+ , _kcAdd :: !(Maybe [Text])+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'KernelCapabilities' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kcDrop' - The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to @CapDrop@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--cap-drop@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid values: @"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"@+--+-- * 'kcAdd' - The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to @CapAdd@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--cap-add@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid values: @"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"@+kernelCapabilities+ :: KernelCapabilities+kernelCapabilities = KernelCapabilities' {_kcDrop = Nothing, _kcAdd = Nothing}+++-- | The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to @CapDrop@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--cap-drop@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid values: @"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"@+kcDrop :: Lens' KernelCapabilities [Text]+kcDrop = lens _kcDrop (\ s a -> s{_kcDrop = a}) . _Default . _Coerce;++-- | The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to @CapAdd@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--cap-add@ option to <https://docs.docker.com/engine/reference/run/ docker run> . Valid values: @"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"@+kcAdd :: Lens' KernelCapabilities [Text]+kcAdd = lens _kcAdd (\ s a -> s{_kcAdd = a}) . _Default . _Coerce;++instance FromJSON KernelCapabilities where+ parseJSON+ = withObject "KernelCapabilities"+ (\ x ->+ KernelCapabilities' <$>+ (x .:? "drop" .!= mempty) <*>+ (x .:? "add" .!= mempty))++instance Hashable KernelCapabilities where++instance NFData KernelCapabilities where++instance ToJSON KernelCapabilities where+ toJSON KernelCapabilities'{..}+ = object+ (catMaybes+ [("drop" .=) <$> _kcDrop, ("add" .=) <$> _kcAdd])++-- | A key and value pair object.+--+--+--+-- /See:/ 'keyValuePair' smart constructor.+data KeyValuePair = KeyValuePair'+ { _kvpValue :: !(Maybe Text)+ , _kvpName :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'KeyValuePair' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kvpValue' - The value of the key value pair. For environment variables, this is the value of the environment variable.+--+-- * 'kvpName' - The name of the key value pair. For environment variables, this is the name of the environment variable.+keyValuePair+ :: KeyValuePair+keyValuePair = KeyValuePair' {_kvpValue = Nothing, _kvpName = Nothing}+++-- | The value of the key value pair. For environment variables, this is the value of the environment variable.+kvpValue :: Lens' KeyValuePair (Maybe Text)+kvpValue = lens _kvpValue (\ s a -> s{_kvpValue = a});++-- | The name of the key value pair. For environment variables, this is the name of the environment variable.+kvpName :: Lens' KeyValuePair (Maybe Text)+kvpName = lens _kvpName (\ s a -> s{_kvpName = a});++instance FromJSON KeyValuePair where+ parseJSON+ = withObject "KeyValuePair"+ (\ x ->+ KeyValuePair' <$> (x .:? "value") <*> (x .:? "name"))++instance Hashable KeyValuePair where++instance NFData KeyValuePair where++instance ToJSON KeyValuePair where+ toJSON KeyValuePair'{..}+ = object+ (catMaybes+ [("value" .=) <$> _kvpValue,+ ("name" .=) <$> _kvpName])++-- | Linux-specific options that are applied to the container, such as Linux 'KernelCapabilities' .+--+--+--+-- /See:/ 'linuxParameters' smart constructor.+data LinuxParameters = LinuxParameters'+ { _lpInitProcessEnabled :: !(Maybe Bool)+ , _lpDevices :: !(Maybe [Device])+ , _lpCapabilities :: !(Maybe KernelCapabilities)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LinuxParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpInitProcessEnabled' - Run an @init@ process inside the container that forwards signals and reaps processes. This parameter maps to the @--init@ option to <https://docs.docker.com/engine/reference/run/ docker run> . This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+--+-- * 'lpDevices' - Any host devices to expose to the container. This parameter maps to @Devices@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--device@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+--+-- * 'lpCapabilities' - The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.+linuxParameters+ :: LinuxParameters+linuxParameters =+ LinuxParameters'+ { _lpInitProcessEnabled = Nothing+ , _lpDevices = Nothing+ , _lpCapabilities = Nothing+ }+++-- | Run an @init@ process inside the container that forwards signals and reaps processes. This parameter maps to the @--init@ option to <https://docs.docker.com/engine/reference/run/ docker run> . This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+lpInitProcessEnabled :: Lens' LinuxParameters (Maybe Bool)+lpInitProcessEnabled = lens _lpInitProcessEnabled (\ s a -> s{_lpInitProcessEnabled = a});++-- | Any host devices to expose to the container. This parameter maps to @Devices@ in the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/#create-a-container Create a container> section of the <https://docs.docker.com/engine/reference/api/docker_remote_api_v1.27/ Docker Remote API> and the @--device@ option to <https://docs.docker.com/engine/reference/run/ docker run> .+lpDevices :: Lens' LinuxParameters [Device]+lpDevices = lens _lpDevices (\ s a -> s{_lpDevices = a}) . _Default . _Coerce;++-- | The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.+lpCapabilities :: Lens' LinuxParameters (Maybe KernelCapabilities)+lpCapabilities = lens _lpCapabilities (\ s a -> s{_lpCapabilities = a});++instance FromJSON LinuxParameters where+ parseJSON+ = withObject "LinuxParameters"+ (\ x ->+ LinuxParameters' <$>+ (x .:? "initProcessEnabled") <*>+ (x .:? "devices" .!= mempty)+ <*> (x .:? "capabilities"))++instance Hashable LinuxParameters where++instance NFData LinuxParameters where++instance ToJSON LinuxParameters where+ toJSON LinuxParameters'{..}+ = object+ (catMaybes+ [("initProcessEnabled" .=) <$> _lpInitProcessEnabled,+ ("devices" .=) <$> _lpDevices,+ ("capabilities" .=) <$> _lpCapabilities])++-- | Details on a load balancer that is used with a service.+--+--+--+-- /See:/ 'loadBalancer' smart constructor.+data LoadBalancer = LoadBalancer'+ { _lbLoadBalancerName :: !(Maybe Text)+ , _lbContainerName :: !(Maybe Text)+ , _lbTargetGroupARN :: !(Maybe Text)+ , _lbContainerPort :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LoadBalancer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbLoadBalancerName' - The name of a load balancer.+--+-- * 'lbContainerName' - The name of the container (as it appears in a container definition) to associate with the load balancer.+--+-- * 'lbTargetGroupARN' - The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service.+--+-- * 'lbContainerPort' - The port on the container to associate with the load balancer. This port must correspond to a @containerPort@ in the service's task definition. Your container instances must allow ingress traffic on the @hostPort@ of the port mapping.+loadBalancer+ :: LoadBalancer+loadBalancer =+ LoadBalancer'+ { _lbLoadBalancerName = Nothing+ , _lbContainerName = Nothing+ , _lbTargetGroupARN = Nothing+ , _lbContainerPort = Nothing+ }+++-- | The name of a load balancer.+lbLoadBalancerName :: Lens' LoadBalancer (Maybe Text)+lbLoadBalancerName = lens _lbLoadBalancerName (\ s a -> s{_lbLoadBalancerName = a});++-- | The name of the container (as it appears in a container definition) to associate with the load balancer.+lbContainerName :: Lens' LoadBalancer (Maybe Text)+lbContainerName = lens _lbContainerName (\ s a -> s{_lbContainerName = a});++-- | The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group associated with a service.+lbTargetGroupARN :: Lens' LoadBalancer (Maybe Text)+lbTargetGroupARN = lens _lbTargetGroupARN (\ s a -> s{_lbTargetGroupARN = a});++-- | The port on the container to associate with the load balancer. This port must correspond to a @containerPort@ in the service's task definition. Your container instances must allow ingress traffic on the @hostPort@ of the port mapping.+lbContainerPort :: Lens' LoadBalancer (Maybe Int)+lbContainerPort = lens _lbContainerPort (\ s a -> s{_lbContainerPort = a});++instance FromJSON LoadBalancer where+ parseJSON+ = withObject "LoadBalancer"+ (\ x ->+ LoadBalancer' <$>+ (x .:? "loadBalancerName") <*>+ (x .:? "containerName")+ <*> (x .:? "targetGroupArn")+ <*> (x .:? "containerPort"))++instance Hashable LoadBalancer where++instance NFData LoadBalancer where++instance ToJSON LoadBalancer where+ toJSON LoadBalancer'{..}+ = object+ (catMaybes+ [("loadBalancerName" .=) <$> _lbLoadBalancerName,+ ("containerName" .=) <$> _lbContainerName,+ ("targetGroupArn" .=) <$> _lbTargetGroupARN,+ ("containerPort" .=) <$> _lbContainerPort])++-- | Log configuration options to send to a custom log driver for the container.+--+--+--+-- /See:/ 'logConfiguration' smart constructor.+data LogConfiguration = LogConfiguration'+ { _lcOptions :: !(Maybe (Map Text Text))+ , _lcLogDriver :: !LogDriver+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LogConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcOptions' - The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+--+-- * 'lcLogDriver' - The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+logConfiguration+ :: LogDriver -- ^ 'lcLogDriver'+ -> LogConfiguration+logConfiguration pLogDriver_ =+ LogConfiguration' {_lcOptions = Nothing, _lcLogDriver = pLogDriver_}+++-- | The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+lcOptions :: Lens' LogConfiguration (HashMap Text Text)+lcOptions = lens _lcOptions (\ s a -> s{_lcOptions = a}) . _Default . _Map;++-- | The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: @sudo docker version | grep "Server API version"@+lcLogDriver :: Lens' LogConfiguration LogDriver+lcLogDriver = lens _lcLogDriver (\ s a -> s{_lcLogDriver = a});++instance FromJSON LogConfiguration where+ parseJSON+ = withObject "LogConfiguration"+ (\ x ->+ LogConfiguration' <$>+ (x .:? "options" .!= mempty) <*> (x .: "logDriver"))++instance Hashable LogConfiguration where++instance NFData LogConfiguration where++instance ToJSON LogConfiguration where+ toJSON LogConfiguration'{..}+ = object+ (catMaybes+ [("options" .=) <$> _lcOptions,+ Just ("logDriver" .= _lcLogDriver)])++-- | Details on a volume mount point that is used in a container definition.+--+--+--+-- /See:/ 'mountPoint' smart constructor.+data MountPoint = MountPoint'+ { _mpContainerPath :: !(Maybe Text)+ , _mpSourceVolume :: !(Maybe Text)+ , _mpReadOnly :: !(Maybe Bool)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'MountPoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mpContainerPath' - The path on the container to mount the host volume at.+--+-- * 'mpSourceVolume' - The name of the volume to mount.+--+-- * 'mpReadOnly' - 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@ .+mountPoint+ :: MountPoint+mountPoint =+ MountPoint'+ {_mpContainerPath = Nothing, _mpSourceVolume = 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});++-- | The name of the volume to mount.+mpSourceVolume :: Lens' MountPoint (Maybe Text)+mpSourceVolume = lens _mpSourceVolume (\ s a -> s{_mpSourceVolume = 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});++instance FromJSON MountPoint where+ parseJSON+ = withObject "MountPoint"+ (\ x ->+ MountPoint' <$>+ (x .:? "containerPath") <*> (x .:? "sourceVolume")+ <*> (x .:? "readOnly"))++instance Hashable MountPoint where++instance NFData MountPoint where++instance ToJSON MountPoint where+ toJSON MountPoint'{..}+ = object+ (catMaybes+ [("containerPath" .=) <$> _mpContainerPath,+ ("sourceVolume" .=) <$> _mpSourceVolume,+ ("readOnly" .=) <$> _mpReadOnly])++-- | Details on the network bindings between a container and its host container instance. After a task reaches the @RUNNING@ status, manual and automatic host and container port assignments are visible in the @networkBindings@ section of 'DescribeTasks' API responses.+--+--+--+-- /See:/ 'networkBinding' smart constructor.+data NetworkBinding = NetworkBinding'+ { _nbBindIP :: !(Maybe Text)+ , _nbProtocol :: !(Maybe TransportProtocol)+ , _nbHostPort :: !(Maybe Int)+ , _nbContainerPort :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkBinding' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nbBindIP' - The IP address that the container is bound to on the container instance.+--+-- * 'nbProtocol' - The protocol used for the network binding.+--+-- * 'nbHostPort' - The port number on the host that is used with the network binding.+--+-- * 'nbContainerPort' - The port number on the container that is be used with the network binding.+networkBinding+ :: NetworkBinding+networkBinding =+ NetworkBinding'+ { _nbBindIP = Nothing+ , _nbProtocol = Nothing+ , _nbHostPort = Nothing+ , _nbContainerPort = Nothing+ }+++-- | The IP address that the container is bound to on the container instance.+nbBindIP :: Lens' NetworkBinding (Maybe Text)+nbBindIP = lens _nbBindIP (\ s a -> s{_nbBindIP = a});++-- | The protocol used for the network binding.+nbProtocol :: Lens' NetworkBinding (Maybe TransportProtocol)+nbProtocol = lens _nbProtocol (\ s a -> s{_nbProtocol = a});++-- | 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});++-- | 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});++instance FromJSON NetworkBinding where+ parseJSON+ = withObject "NetworkBinding"+ (\ x ->+ NetworkBinding' <$>+ (x .:? "bindIP") <*> (x .:? "protocol") <*>+ (x .:? "hostPort")+ <*> (x .:? "containerPort"))++instance Hashable NetworkBinding where++instance NFData NetworkBinding where++instance ToJSON NetworkBinding where+ toJSON NetworkBinding'{..}+ = object+ (catMaybes+ [("bindIP" .=) <$> _nbBindIP,+ ("protocol" .=) <$> _nbProtocol,+ ("hostPort" .=) <$> _nbHostPort,+ ("containerPort" .=) <$> _nbContainerPort])++-- | An object representing a constraint on task placement. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html Task Placement Constraints> in the /Amazon EC2 Container Service Developer Guide/ .+--+--+--+-- /See:/ 'placementConstraint' smart constructor.+data PlacementConstraint = PlacementConstraint'+ { _pcExpression :: !(Maybe Text)+ , _pcType :: !(Maybe PlacementConstraintType)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PlacementConstraint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcExpression' - A cluster query language expression to apply to the constraint. Note you cannot specify an expression if the constraint type is @distinctInstance@ . For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ .+--+-- * 'pcType' - The type of constraint. Use @distinctInstance@ to ensure that each task in a particular group is running on a different container instance. Use @memberOf@ to restrict selection to a group of valid candidates. Note that @distinctInstance@ is not supported in task definitions.+placementConstraint+ :: PlacementConstraint+placementConstraint =+ PlacementConstraint' {_pcExpression = Nothing, _pcType = Nothing}+++-- | A cluster query language expression to apply to the constraint. Note you cannot specify an expression if the constraint type is @distinctInstance@ . For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ .+pcExpression :: Lens' PlacementConstraint (Maybe Text)+pcExpression = lens _pcExpression (\ s a -> s{_pcExpression = a});++-- | The type of constraint. Use @distinctInstance@ to ensure that each task in a particular group is running on a different container instance. Use @memberOf@ to restrict selection to a group of valid candidates. Note that @distinctInstance@ is not supported in task definitions.+pcType :: Lens' PlacementConstraint (Maybe PlacementConstraintType)+pcType = lens _pcType (\ s a -> s{_pcType = a});++instance FromJSON PlacementConstraint where+ parseJSON+ = withObject "PlacementConstraint"+ (\ x ->+ PlacementConstraint' <$>+ (x .:? "expression") <*> (x .:? "type"))++instance Hashable PlacementConstraint where++instance NFData PlacementConstraint where++instance ToJSON PlacementConstraint where+ toJSON PlacementConstraint'{..}+ = object+ (catMaybes+ [("expression" .=) <$> _pcExpression,+ ("type" .=) <$> _pcType])++-- | The task placement strategy for a task or service. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html Task Placement Strategies> in the /Amazon EC2 Container Service Developer Guide/ .+--+--+--+-- /See:/ 'placementStrategy' smart constructor.+data PlacementStrategy = PlacementStrategy'+ { _psField :: !(Maybe Text)+ , _psType :: !(Maybe PlacementStrategyType)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PlacementStrategy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psField' - The field to apply the placement strategy against. For the @spread@ placement strategy, valid values are @instanceId@ (or @host@ , which has the same effect), or any platform or custom attribute that is applied to a container instance, such as @attribute:ecs.availability-zone@ . For the @binpack@ placement strategy, valid values are @cpu@ and @memory@ . For the @random@ placement strategy, this field is not used.+--+-- * 'psType' - The type of placement strategy. The @random@ placement strategy randomly places tasks on available candidates. The @spread@ placement strategy spreads placement across available candidates evenly based on the @field@ parameter. The @binpack@ strategy places tasks on available candidates that have the least available amount of the resource that is specified with the @field@ parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).+placementStrategy+ :: PlacementStrategy+placementStrategy = PlacementStrategy' {_psField = Nothing, _psType = Nothing}+++-- | The field to apply the placement strategy against. For the @spread@ placement strategy, valid values are @instanceId@ (or @host@ , which has the same effect), or any platform or custom attribute that is applied to a container instance, such as @attribute:ecs.availability-zone@ . For the @binpack@ placement strategy, valid values are @cpu@ and @memory@ . For the @random@ placement strategy, this field is not used.+psField :: Lens' PlacementStrategy (Maybe Text)+psField = lens _psField (\ s a -> s{_psField = a});++-- | The type of placement strategy. The @random@ placement strategy randomly places tasks on available candidates. The @spread@ placement strategy spreads placement across available candidates evenly based on the @field@ parameter. The @binpack@ strategy places tasks on available candidates that have the least available amount of the resource that is specified with the @field@ parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).+psType :: Lens' PlacementStrategy (Maybe PlacementStrategyType)+psType = lens _psType (\ s a -> s{_psType = a});++instance FromJSON PlacementStrategy where+ parseJSON+ = withObject "PlacementStrategy"+ (\ x ->+ PlacementStrategy' <$>+ (x .:? "field") <*> (x .:? "type"))++instance Hashable PlacementStrategy where++instance NFData PlacementStrategy where++instance ToJSON PlacementStrategy where+ toJSON PlacementStrategy'{..}+ = object+ (catMaybes+ [("field" .=) <$> _psField, ("type" .=) <$> _psType])++-- | Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition. After a task reaches the @RUNNING@ status, manual and automatic host and container port assignments are visible in the @networkBindings@ section of 'DescribeTasks' API responses.+--+--+--+-- /See:/ 'portMapping' smart constructor.+data PortMapping = PortMapping'+ { _pmProtocol :: !(Maybe TransportProtocol)+ , _pmHostPort :: !(Maybe Int)+ , _pmContainerPort :: !(Maybe Int)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PortMapping' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmProtocol' - The protocol used for the port mapping. Valid values are @tcp@ and @udp@ . The default is @tcp@ .+--+-- * 'pmHostPort' - The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the @hostPort@ (or set it to @0@ ) while specifying a @containerPort@ and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under @/proc/sys/net/ipv4/ip_local_port_range@ ; if this kernel parameter is unavailable, the default ephemeral port range of 49153 to 65535 is used. You should not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the @remainingResources@ of 'DescribeContainerInstances' output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).+--+-- * 'pmContainerPort' - The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see @hostPort@ ). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.+portMapping+ :: PortMapping+portMapping =+ PortMapping'+ {_pmProtocol = Nothing, _pmHostPort = Nothing, _pmContainerPort = Nothing}+++-- | The protocol used for the port mapping. Valid values are @tcp@ and @udp@ . The default is @tcp@ .+pmProtocol :: Lens' PortMapping (Maybe TransportProtocol)+pmProtocol = lens _pmProtocol (\ s a -> s{_pmProtocol = a});++-- | The port number on the container instance to reserve for your container. You can specify a non-reserved host port for your container port mapping, or you can omit the @hostPort@ (or set it to @0@ ) while specifying a @containerPort@ and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under @/proc/sys/net/ipv4/ip_local_port_range@ ; if this kernel parameter is unavailable, the default ephemeral port range of 49153 to 65535 is used. You should not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678 and 51679. Any host port that was previously specified in a running task is also reserved while the task is running (after a task stops, the host port is released).The current reserved ports are displayed in the @remainingResources@ of 'DescribeContainerInstances' output, and a container instance may have up to 100 reserved ports at a time, including the default reserved ports (automatically assigned ports do not count toward the 100 reserved ports limit).+pmHostPort :: Lens' PortMapping (Maybe Int)+pmHostPort = lens _pmHostPort (\ s a -> s{_pmHostPort = a});++-- | The port number on the container that is bound to the user-specified or automatically assigned host port. If you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range (for more information, see @hostPort@ ). Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance.+pmContainerPort :: Lens' PortMapping (Maybe Int)+pmContainerPort = lens _pmContainerPort (\ s a -> s{_pmContainerPort = a});++instance FromJSON PortMapping where+ parseJSON+ = withObject "PortMapping"+ (\ x ->+ PortMapping' <$>+ (x .:? "protocol") <*> (x .:? "hostPort") <*>+ (x .:? "containerPort"))++instance Hashable PortMapping where++instance NFData PortMapping where++instance ToJSON PortMapping where+ toJSON PortMapping'{..}+ = object+ (catMaybes+ [("protocol" .=) <$> _pmProtocol,+ ("hostPort" .=) <$> _pmHostPort,+ ("containerPort" .=) <$> _pmContainerPort])++-- | Describes the resources available for a container instance.+--+--+--+-- /See:/ 'resource' smart constructor.+data Resource = Resource'+ { _rStringSetValue :: !(Maybe [Text])+ , _rIntegerValue :: !(Maybe Int)+ , _rDoubleValue :: !(Maybe Double)+ , _rLongValue :: !(Maybe Integer)+ , _rName :: !(Maybe Text)+ , _rType :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Resource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rStringSetValue' - When the @stringSetValue@ type is set, the value of the resource must be a string type.+--+-- * 'rIntegerValue' - When the @integerValue@ type is set, the value of the resource must be an integer.+--+-- * 'rDoubleValue' - When the @doubleValue@ type is set, the value of the resource must be a double precision floating-point type.+--+-- * 'rLongValue' - When the @longValue@ type is set, the value of the resource must be an extended precision floating-point type.+--+-- * 'rName' - The name of the resource, such as @cpu@ , @memory@ , @ports@ , or a user-defined resource.+--+-- * 'rType' - The type of the resource, such as @INTEGER@ , @DOUBLE@ , @LONG@ , or @STRINGSET@ .+resource+ :: Resource+resource =+ Resource'+ { _rStringSetValue = Nothing+ , _rIntegerValue = Nothing+ , _rDoubleValue = Nothing+ , _rLongValue = Nothing+ , _rName = Nothing+ , _rType = Nothing+ }+++-- | When the @stringSetValue@ type is set, the value of the resource must be a string type.+rStringSetValue :: Lens' Resource [Text]+rStringSetValue = lens _rStringSetValue (\ s a -> s{_rStringSetValue = a}) . _Default . _Coerce;++-- | When the @integerValue@ type is set, the value of the resource must be an integer.+rIntegerValue :: Lens' Resource (Maybe Int)+rIntegerValue = lens _rIntegerValue (\ s a -> s{_rIntegerValue = a});++-- | When the @doubleValue@ type is set, the value of the resource must be a double precision floating-point type.+rDoubleValue :: Lens' Resource (Maybe Double)+rDoubleValue = lens _rDoubleValue (\ s a -> s{_rDoubleValue = a});++-- | When the @longValue@ type is set, the value of the resource must be an extended precision floating-point type.+rLongValue :: Lens' Resource (Maybe Integer)+rLongValue = lens _rLongValue (\ s a -> s{_rLongValue = a});++-- | The name of the resource, such as @cpu@ , @memory@ , @ports@ , or a user-defined resource.+rName :: Lens' Resource (Maybe Text)+rName = lens _rName (\ s a -> s{_rName = a});++-- | The type of the resource, such as @INTEGER@ , @DOUBLE@ , @LONG@ , or @STRINGSET@ .+rType :: Lens' Resource (Maybe Text)+rType = lens _rType (\ s a -> s{_rType = a});++instance FromJSON Resource where+ parseJSON+ = withObject "Resource"+ (\ x ->+ Resource' <$>+ (x .:? "stringSetValue" .!= mempty) <*>+ (x .:? "integerValue")+ <*> (x .:? "doubleValue")+ <*> (x .:? "longValue")+ <*> (x .:? "name")+ <*> (x .:? "type"))++instance Hashable Resource where++instance NFData Resource where++instance ToJSON Resource where+ toJSON Resource'{..}+ = object+ (catMaybes+ [("stringSetValue" .=) <$> _rStringSetValue,+ ("integerValue" .=) <$> _rIntegerValue,+ ("doubleValue" .=) <$> _rDoubleValue,+ ("longValue" .=) <$> _rLongValue,+ ("name" .=) <$> _rName, ("type" .=) <$> _rType])++-- | Details on an event associated with a service.+--+--+--+-- /See:/ 'serviceEvent' smart constructor.+data ServiceEvent = ServiceEvent'+ { _seCreatedAt :: !(Maybe POSIX)+ , _seId :: !(Maybe Text)+ , _seMessage :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceEvent' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'seCreatedAt' - The Unix timestamp for when the event was triggered.+--+-- * 'seId' - The ID string of the event.+--+-- * 'seMessage' - The event message.+serviceEvent+ :: ServiceEvent+serviceEvent =+ ServiceEvent' {_seCreatedAt = Nothing, _seId = Nothing, _seMessage = Nothing}+++-- | The Unix timestamp for when the event was triggered.+seCreatedAt :: Lens' ServiceEvent (Maybe UTCTime)+seCreatedAt = lens _seCreatedAt (\ s a -> s{_seCreatedAt = a}) . mapping _Time;++-- | The ID string of the event.+seId :: Lens' ServiceEvent (Maybe Text)+seId = lens _seId (\ s a -> s{_seId = a});++-- | The event message.+seMessage :: Lens' ServiceEvent (Maybe Text)+seMessage = lens _seMessage (\ s a -> s{_seMessage = a});++instance FromJSON ServiceEvent where+ parseJSON+ = withObject "ServiceEvent"+ (\ x ->+ ServiceEvent' <$>+ (x .:? "createdAt") <*> (x .:? "id") <*>+ (x .:? "message"))++instance Hashable ServiceEvent where++instance NFData ServiceEvent where++-- | Details on a task in a cluster.+--+--+--+-- /See:/ 'task' smart constructor.+data Task = Task'+ { _tStoppedAt :: !(Maybe POSIX)+ , _tDesiredStatus :: !(Maybe Text)+ , _tOverrides :: !(Maybe TaskOverride)+ , _tClusterARN :: !(Maybe Text)+ , _tGroup :: !(Maybe Text)+ , _tCreatedAt :: !(Maybe POSIX)+ , _tTaskARN :: !(Maybe Text)+ , _tContainerInstanceARN :: !(Maybe Text)+ , _tLastStatus :: !(Maybe Text)+ , _tContainers :: !(Maybe [Container])+ , _tStartedAt :: !(Maybe POSIX)+ , _tVersion :: !(Maybe Integer)+ , _tStartedBy :: !(Maybe Text)+ , _tStoppedReason :: !(Maybe Text)+ , _tTaskDefinitionARN :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Task' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tStoppedAt' - The Unix timestamp for when the task was stopped (the task transitioned from the @RUNNING@ state to the @STOPPED@ state).+--+-- * 'tDesiredStatus' - The desired status of the task.+--+-- * 'tOverrides' - One or more container overrides.+--+-- * 'tClusterARN' - The Amazon Resource Name (ARN) of the cluster that hosts the task.+--+-- * 'tGroup' - The name of the task group associated with the task.+--+-- * 'tCreatedAt' - The Unix timestamp for when the task was created (the task entered the @PENDING@ state).+--+-- * 'tTaskARN' - The Amazon Resource Name (ARN) of the task.+--+-- * 'tContainerInstanceARN' - The Amazon Resource Name (ARN) of the container instances that host the task.+--+-- * 'tLastStatus' - The last known status of the task.+--+-- * 'tContainers' - The containers associated with the task.+--+-- * 'tStartedAt' - The Unix timestamp for when the task was started (the task transitioned from the @PENDING@ state to the @RUNNING@ state).+--+-- * 'tVersion' - The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch events for the task (inside the @detail@ object) to verify that the version in your event stream is current.+--+-- * 'tStartedBy' - The tag specified when a task is started. If the task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it.+--+-- * 'tStoppedReason' - The reason the task was stopped.+--+-- * 'tTaskDefinitionARN' - The Amazon Resource Name (ARN) of the task definition that creates the task.+task+ :: Task+task =+ Task'+ { _tStoppedAt = Nothing+ , _tDesiredStatus = Nothing+ , _tOverrides = Nothing+ , _tClusterARN = Nothing+ , _tGroup = Nothing+ , _tCreatedAt = Nothing+ , _tTaskARN = Nothing+ , _tContainerInstanceARN = Nothing+ , _tLastStatus = Nothing+ , _tContainers = Nothing+ , _tStartedAt = Nothing+ , _tVersion = Nothing+ , _tStartedBy = Nothing+ , _tStoppedReason = Nothing+ , _tTaskDefinitionARN = Nothing+ }+++-- | The Unix timestamp for when the task was stopped (the task transitioned from the @RUNNING@ state to the @STOPPED@ state).+tStoppedAt :: Lens' Task (Maybe UTCTime)+tStoppedAt = lens _tStoppedAt (\ s a -> s{_tStoppedAt = a}) . mapping _Time;++-- | The desired status of the task.+tDesiredStatus :: Lens' Task (Maybe Text)+tDesiredStatus = lens _tDesiredStatus (\ s a -> s{_tDesiredStatus = a});++-- | One or more container overrides.+tOverrides :: Lens' Task (Maybe TaskOverride)+tOverrides = lens _tOverrides (\ s a -> s{_tOverrides = a});++-- | The Amazon Resource Name (ARN) of the cluster that hosts the task.+tClusterARN :: Lens' Task (Maybe Text)+tClusterARN = lens _tClusterARN (\ s a -> s{_tClusterARN = a});++-- | The name of the task group associated with the task.+tGroup :: Lens' Task (Maybe Text)+tGroup = lens _tGroup (\ s a -> s{_tGroup = a});++-- | The Unix timestamp for when the task was created (the task entered the @PENDING@ state).+tCreatedAt :: Lens' Task (Maybe UTCTime)+tCreatedAt = lens _tCreatedAt (\ s a -> s{_tCreatedAt = a}) . mapping _Time;++-- | The Amazon Resource Name (ARN) of the task.+tTaskARN :: Lens' Task (Maybe Text)+tTaskARN = lens _tTaskARN (\ s a -> s{_tTaskARN = a});++-- | The Amazon Resource Name (ARN) of the container instances that host the task.+tContainerInstanceARN :: Lens' Task (Maybe Text)+tContainerInstanceARN = lens _tContainerInstanceARN (\ s a -> s{_tContainerInstanceARN = a});++-- | The last known status of the task.+tLastStatus :: Lens' Task (Maybe Text)+tLastStatus = lens _tLastStatus (\ s a -> s{_tLastStatus = a});++-- | The containers associated with the task.+tContainers :: Lens' Task [Container]+tContainers = lens _tContainers (\ s a -> s{_tContainers = a}) . _Default . _Coerce;++-- | The Unix timestamp for when the task was started (the task transitioned from the @PENDING@ state to the @RUNNING@ state).+tStartedAt :: Lens' Task (Maybe UTCTime)+tStartedAt = lens _tStartedAt (\ s a -> s{_tStartedAt = a}) . mapping _Time;++-- | The version counter for the task. Every time a task experiences a change that triggers a CloudWatch event, the version counter is incremented. If you are replicating your Amazon ECS task state with CloudWatch events, you can compare the version of a task reported by the Amazon ECS APIs with the version reported in CloudWatch events for the task (inside the @detail@ object) to verify that the version in your event stream is current.+tVersion :: Lens' Task (Maybe Integer)+tVersion = lens _tVersion (\ s a -> s{_tVersion = a});++-- | The tag specified when a task is started. If the task is started by an Amazon ECS service, then the @startedBy@ parameter contains the deployment ID of the service that starts it.+tStartedBy :: Lens' Task (Maybe Text)+tStartedBy = lens _tStartedBy (\ s a -> s{_tStartedBy = a});++-- | The reason the task was stopped.+tStoppedReason :: Lens' Task (Maybe Text)+tStoppedReason = lens _tStoppedReason (\ s a -> s{_tStoppedReason = a});++-- | The Amazon Resource Name (ARN) of the task definition that creates the task.+tTaskDefinitionARN :: Lens' Task (Maybe Text)+tTaskDefinitionARN = lens _tTaskDefinitionARN (\ s a -> s{_tTaskDefinitionARN = a});++instance FromJSON Task where+ parseJSON+ = withObject "Task"+ (\ x ->+ Task' <$>+ (x .:? "stoppedAt") <*> (x .:? "desiredStatus") <*>+ (x .:? "overrides")+ <*> (x .:? "clusterArn")+ <*> (x .:? "group")+ <*> (x .:? "createdAt")+ <*> (x .:? "taskArn")+ <*> (x .:? "containerInstanceArn")+ <*> (x .:? "lastStatus")+ <*> (x .:? "containers" .!= mempty)+ <*> (x .:? "startedAt")+ <*> (x .:? "version")+ <*> (x .:? "startedBy")+ <*> (x .:? "stoppedReason")+ <*> (x .:? "taskDefinitionArn"))++instance Hashable Task where++instance NFData Task where++-- | Details of a task definition.+--+--+--+-- /See:/ 'taskDefinition' smart constructor.+data TaskDefinition = TaskDefinition'+ { _tdStatus :: !(Maybe TaskDefinitionStatus)+ , _tdFamily :: !(Maybe Text)+ , _tdContainerDefinitions :: !(Maybe [ContainerDefinition])+ , _tdTaskRoleARN :: !(Maybe Text)+ , _tdPlacementConstraints :: !(Maybe [TaskDefinitionPlacementConstraint])+ , _tdNetworkMode :: !(Maybe NetworkMode)+ , _tdTaskDefinitionARN :: !(Maybe Text)+ , _tdRevision :: !(Maybe Int)+ , _tdVolumes :: !(Maybe [Volume])+ , _tdRequiresAttributes :: !(Maybe [Attribute])+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TaskDefinition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdStatus' - The status of the task definition.+--+-- * 'tdFamily' - The family of your task definition, used as the definition name.+--+-- * 'tdContainerDefinitions' - A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html Amazon ECS Task Definitions> in the /Amazon EC2 Container Service Developer Guide/ .+--+-- * 'tdTaskRoleARN' - The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.+--+-- * 'tdPlacementConstraints' - An array of placement constraint objects to use for tasks.+--+-- * 'tdNetworkMode' - The Docker networking mode to use for the containers in the task. The valid values are @none@ , @bridge@ , and @host@ . If the network mode is @none@ , the containers do not have external connectivity. The default Docker network mode is @bridge@ . The @host@ network mode offers the highest networking performance for containers because it uses the host network stack instead of the virtualized network stack provided by the @bridge@ mode. For more information, see <https://docs.docker.com/engine/reference/run/#network-settings Network settings> in the /Docker run reference/ .+--+-- * 'tdTaskDefinitionARN' - The full Amazon Resource Name (ARN) of the task definition.+--+-- * 'tdRevision' - The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is @1@ ; each time you register a new revision of a task definition in the same family, the revision value always increases by one (even if you have deregistered previous revisions in this family).+--+-- * 'tdVolumes' - The list of volumes in a task. For more information about volume 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/ .+--+-- * 'tdRequiresAttributes' - The container instance attributes required by your task.+taskDefinition+ :: TaskDefinition+taskDefinition =+ TaskDefinition'+ { _tdStatus = Nothing+ , _tdFamily = Nothing+ , _tdContainerDefinitions = Nothing+ , _tdTaskRoleARN = Nothing+ , _tdPlacementConstraints = Nothing+ , _tdNetworkMode = Nothing+ , _tdTaskDefinitionARN = Nothing+ , _tdRevision = Nothing+ , _tdVolumes = Nothing+ , _tdRequiresAttributes = Nothing+ }+++-- | The status of the task definition.+tdStatus :: Lens' TaskDefinition (Maybe TaskDefinitionStatus)+tdStatus = lens _tdStatus (\ s a -> s{_tdStatus = a});++-- | The family of your task definition, used as the definition name.+tdFamily :: Lens' TaskDefinition (Maybe Text)+tdFamily = lens _tdFamily (\ s a -> s{_tdFamily = a});++-- | A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see <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}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.+tdTaskRoleARN :: Lens' TaskDefinition (Maybe Text)+tdTaskRoleARN = lens _tdTaskRoleARN (\ s a -> s{_tdTaskRoleARN = a});++-- | An array of placement constraint objects to use for tasks.+tdPlacementConstraints :: Lens' TaskDefinition [TaskDefinitionPlacementConstraint]+tdPlacementConstraints = lens _tdPlacementConstraints (\ s a -> s{_tdPlacementConstraints = a}) . _Default . _Coerce;++-- | The Docker networking mode to use for the containers in the task. The valid values are @none@ , @bridge@ , and @host@ . If the network mode is @none@ , the containers do not have external connectivity. The default Docker network mode is @bridge@ . The @host@ network mode offers the highest networking performance for containers because it uses the host network stack instead of the virtualized network stack provided by the @bridge@ mode. For more information, see <https://docs.docker.com/engine/reference/run/#network-settings Network settings> in the /Docker run reference/ .+tdNetworkMode :: Lens' TaskDefinition (Maybe NetworkMode)+tdNetworkMode = lens _tdNetworkMode (\ s a -> s{_tdNetworkMode = a});++-- | The full Amazon Resource Name (ARN) of the task definition.+tdTaskDefinitionARN :: Lens' TaskDefinition (Maybe Text)+tdTaskDefinitionARN = lens _tdTaskDefinitionARN (\ s a -> s{_tdTaskDefinitionARN = a});++-- | The revision of the task in a particular family. The revision is a version number of a task definition in a family. When you register a task definition for the first time, the revision is @1@ ; each time you register a new revision of a task definition in the same family, the revision value always increases by one (even if you have deregistered previous revisions in this family).+tdRevision :: Lens' TaskDefinition (Maybe Int)+tdRevision = lens _tdRevision (\ s a -> s{_tdRevision = a});++-- | The list of volumes in a task. For more information about volume 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/ .+tdVolumes :: Lens' TaskDefinition [Volume]+tdVolumes = lens _tdVolumes (\ s a -> s{_tdVolumes = a}) . _Default . _Coerce;++-- | The container instance attributes required by your task.+tdRequiresAttributes :: Lens' TaskDefinition [Attribute]+tdRequiresAttributes = lens _tdRequiresAttributes (\ s a -> s{_tdRequiresAttributes = a}) . _Default . _Coerce;++instance FromJSON TaskDefinition where+ parseJSON+ = withObject "TaskDefinition"+ (\ x ->+ TaskDefinition' <$>+ (x .:? "status") <*> (x .:? "family") <*>+ (x .:? "containerDefinitions" .!= mempty)+ <*> (x .:? "taskRoleArn")+ <*> (x .:? "placementConstraints" .!= mempty)+ <*> (x .:? "networkMode")+ <*> (x .:? "taskDefinitionArn")+ <*> (x .:? "revision")+ <*> (x .:? "volumes" .!= mempty)+ <*> (x .:? "requiresAttributes" .!= mempty))++instance Hashable TaskDefinition where++instance NFData TaskDefinition where++-- | An object representing a constraint on task placement in the task definition. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html Task Placement Constraints> in the /Amazon EC2 Container Service Developer Guide/ .+--+--+--+-- /See:/ 'taskDefinitionPlacementConstraint' smart constructor.+data TaskDefinitionPlacementConstraint = TaskDefinitionPlacementConstraint'+ { _tdpcExpression :: !(Maybe Text)+ , _tdpcType :: !(Maybe TaskDefinitionPlacementConstraintType)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TaskDefinitionPlacementConstraint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdpcExpression' - A cluster query language expression to apply to the constraint. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ .+--+-- * 'tdpcType' - The type of constraint. The @DistinctInstance@ constraint ensures that each task in a particular group is running on a different container instance. The @MemberOf@ constraint restricts selection to be from a group of valid candidates.+taskDefinitionPlacementConstraint+ :: TaskDefinitionPlacementConstraint+taskDefinitionPlacementConstraint =+ TaskDefinitionPlacementConstraint'+ {_tdpcExpression = Nothing, _tdpcType = Nothing}+++-- | A cluster query language expression to apply to the constraint. For more information, see <http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html Cluster Query Language> in the /Amazon EC2 Container Service Developer Guide/ .+tdpcExpression :: Lens' TaskDefinitionPlacementConstraint (Maybe Text)+tdpcExpression = lens _tdpcExpression (\ s a -> s{_tdpcExpression = a});++-- | The type of constraint. The @DistinctInstance@ constraint ensures that each task in a particular group is running on a different container instance. The @MemberOf@ constraint restricts selection to be from a group of valid candidates.+tdpcType :: Lens' TaskDefinitionPlacementConstraint (Maybe TaskDefinitionPlacementConstraintType)+tdpcType = lens _tdpcType (\ s a -> s{_tdpcType = a});++instance FromJSON TaskDefinitionPlacementConstraint+ where+ parseJSON+ = withObject "TaskDefinitionPlacementConstraint"+ (\ x ->+ TaskDefinitionPlacementConstraint' <$>+ (x .:? "expression") <*> (x .:? "type"))++instance Hashable TaskDefinitionPlacementConstraint+ where++instance NFData TaskDefinitionPlacementConstraint+ where++instance ToJSON TaskDefinitionPlacementConstraint+ where+ toJSON TaskDefinitionPlacementConstraint'{..}+ = object+ (catMaybes+ [("expression" .=) <$> _tdpcExpression,+ ("type" .=) <$> _tdpcType])++-- | The overrides associated with a task.+--+--+--+-- /See:/ 'taskOverride' smart constructor.+data TaskOverride = TaskOverride'+ { _toContainerOverrides :: !(Maybe [ContainerOverride])+ , _toTaskRoleARN :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TaskOverride' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'toContainerOverrides' - One or more container overrides sent to a task.+--+-- * 'toTaskRoleARN' - The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.+taskOverride+ :: TaskOverride+taskOverride =+ TaskOverride' {_toContainerOverrides = Nothing, _toTaskRoleARN = Nothing}+++-- | One or more container overrides sent to a task.+toContainerOverrides :: Lens' TaskOverride [ContainerOverride]+toContainerOverrides = lens _toContainerOverrides (\ s a -> s{_toContainerOverrides = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role.+toTaskRoleARN :: Lens' TaskOverride (Maybe Text)+toTaskRoleARN = lens _toTaskRoleARN (\ s a -> s{_toTaskRoleARN = a});++instance FromJSON TaskOverride where+ parseJSON+ = withObject "TaskOverride"+ (\ x ->+ TaskOverride' <$>+ (x .:? "containerOverrides" .!= mempty) <*>+ (x .:? "taskRoleArn"))++instance Hashable TaskOverride where++instance NFData TaskOverride where++instance ToJSON TaskOverride where+ toJSON TaskOverride'{..}+ = object+ (catMaybes+ [("containerOverrides" .=) <$> _toContainerOverrides,+ ("taskRoleArn" .=) <$> _toTaskRoleARN])++-- | The @ulimit@ settings to pass to the container.+--+--+--+-- /See:/ 'ulimit' smart constructor.+data Ulimit = Ulimit'+ { _uName :: !UlimitName+ , _uSoftLimit :: !Int+ , _uHardLimit :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Ulimit' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uName' - The @type@ of the @ulimit@ .+--+-- * 'uSoftLimit' - The soft limit for the ulimit type.+--+-- * 'uHardLimit' - The hard limit for the ulimit type.+ulimit+ :: UlimitName -- ^ 'uName'+ -> Int -- ^ 'uSoftLimit'+ -> Int -- ^ 'uHardLimit'+ -> Ulimit+ulimit pName_ pSoftLimit_ pHardLimit_ =+ Ulimit'+ {_uName = pName_, _uSoftLimit = pSoftLimit_, _uHardLimit = pHardLimit_}+++-- | The @type@ of the @ulimit@ .+uName :: Lens' Ulimit UlimitName+uName = lens _uName (\ s a -> s{_uName = a});++-- | The soft limit for the ulimit type.+uSoftLimit :: Lens' Ulimit Int+uSoftLimit = lens _uSoftLimit (\ s a -> s{_uSoftLimit = a});++-- | The hard limit for the ulimit type.+uHardLimit :: Lens' Ulimit Int+uHardLimit = lens _uHardLimit (\ s a -> s{_uHardLimit = a});++instance FromJSON Ulimit where+ parseJSON+ = withObject "Ulimit"+ (\ x ->+ Ulimit' <$>+ (x .: "name") <*> (x .: "softLimit") <*>+ (x .: "hardLimit"))++instance Hashable Ulimit where++instance NFData Ulimit where++instance ToJSON Ulimit where+ toJSON Ulimit'{..}+ = object+ (catMaybes+ [Just ("name" .= _uName),+ Just ("softLimit" .= _uSoftLimit),+ Just ("hardLimit" .= _uHardLimit)])++-- | The Docker and Amazon ECS container agent version information about a container instance.+--+--+--+-- /See:/ 'versionInfo' smart constructor.+data VersionInfo = VersionInfo'+ { _viAgentHash :: !(Maybe Text)+ , _viAgentVersion :: !(Maybe Text)+ , _viDockerVersion :: !(Maybe Text)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VersionInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'viAgentHash' - The Git commit hash for the Amazon ECS container agent build on the <https://github.com/aws/amazon-ecs-agent/commits/master amazon-ecs-agent > GitHub repository.+--+-- * 'viAgentVersion' - The version number of the Amazon ECS container agent.+--+-- * 'viDockerVersion' - The Docker version running on the container instance.+versionInfo+ :: VersionInfo+versionInfo =+ VersionInfo'+ { _viAgentHash = Nothing+ , _viAgentVersion = Nothing+ , _viDockerVersion = Nothing+ }+++-- | The Git commit hash for the Amazon ECS container agent build on the <https://github.com/aws/amazon-ecs-agent/commits/master amazon-ecs-agent > GitHub repository.+viAgentHash :: Lens' VersionInfo (Maybe Text)+viAgentHash = lens _viAgentHash (\ s a -> s{_viAgentHash = a});++-- | The version number of the Amazon ECS container agent.+viAgentVersion :: Lens' VersionInfo (Maybe Text)+viAgentVersion = lens _viAgentVersion (\ s a -> s{_viAgentVersion = a});++-- | The Docker version running on the container instance.+viDockerVersion :: Lens' VersionInfo (Maybe Text)+viDockerVersion = lens _viDockerVersion (\ s a -> s{_viDockerVersion = a});++instance FromJSON VersionInfo where+ parseJSON+ = withObject "VersionInfo"+ (\ x ->+ VersionInfo' <$>+ (x .:? "agentHash") <*> (x .:? "agentVersion") <*>+ (x .:? "dockerVersion"))++instance Hashable VersionInfo where++instance NFData VersionInfo where++instance ToJSON VersionInfo where+ toJSON VersionInfo'{..}+ = object+ (catMaybes+ [("agentHash" .=) <$> _viAgentHash,+ ("agentVersion" .=) <$> _viAgentVersion,+ ("dockerVersion" .=) <$> _viDockerVersion])++-- | A data volume used in a task definition.+--+--+--+-- /See:/ 'volume' smart constructor.+data Volume = Volume'+ { _vName :: !(Maybe Text)+ , _vHost :: !(Maybe HostVolumeProperties)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Volume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vName' - The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the @sourceVolume@ parameter of container definition @mountPoints@ .+--+-- * 'vHost' - The contents of the @host@ parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.+volume+ :: Volume+volume = Volume' {_vName = Nothing, _vHost = Nothing}+++-- | The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the @sourceVolume@ parameter of container definition @mountPoints@ .+vName :: Lens' Volume (Maybe Text)+vName = lens _vName (\ s a -> s{_vName = a});++-- | The contents of the @host@ parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data is not guaranteed to persist after the containers associated with it stop running.+vHost :: Lens' Volume (Maybe HostVolumeProperties)+vHost = lens _vHost (\ s a -> s{_vHost = a});++instance FromJSON Volume where+ parseJSON+ = withObject "Volume"+ (\ x ->+ Volume' <$> (x .:? "name") <*> (x .:? "host"))++instance Hashable Volume where++instance NFData Volume where++instance ToJSON Volume where+ toJSON Volume'{..}+ = object+ (catMaybes+ [("name" .=) <$> _vName, ("host" .=) <$> _vHost])++-- | Details on a data volume from another container in the same task definition.+--+--+--+-- /See:/ 'volumeFrom' smart constructor.+data VolumeFrom = VolumeFrom'+ { _vfSourceContainer :: !(Maybe Text)+ , _vfReadOnly :: !(Maybe Bool)+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'VolumeFrom' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vfSourceContainer' - The name of another container within the same task definition to mount volumes from.+--+-- * 'vfReadOnly' - 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@ .+volumeFrom+ :: VolumeFrom+volumeFrom = VolumeFrom' {_vfSourceContainer = Nothing, _vfReadOnly = Nothing}+++-- | The name of another container within the same task definition to mount volumes from.+vfSourceContainer :: Lens' VolumeFrom (Maybe Text)+vfSourceContainer = lens _vfSourceContainer (\ s a -> s{_vfSourceContainer = 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@ .+vfReadOnly :: Lens' VolumeFrom (Maybe Bool)+vfReadOnly = lens _vfReadOnly (\ s a -> s{_vfReadOnly = a});++instance FromJSON VolumeFrom where+ parseJSON+ = withObject "VolumeFrom"+ (\ x ->+ VolumeFrom' <$>+ (x .:? "sourceContainer") <*> (x .:? "readOnly"))++instance Hashable VolumeFrom where++instance NFData VolumeFrom where instance ToJSON VolumeFrom where toJSON VolumeFrom'{..}
gen/Network/AWS/ECS/Types/Sum.hs view
@@ -9,25 +9,26 @@ -- | -- Module : Network.AWS.ECS.Types.Sum--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ECS.Types.Sum where -import Network.AWS.Prelude+import Network.AWS.Prelude data AgentUpdateStatus- = AUSFailed- | AUSPending- | AUSStaged- | AUSStaging- | AUSUpdated- | AUSUpdating- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = AUSFailed+ | AUSPending+ | AUSStaged+ | AUSStaging+ | AUSUpdated+ | AUSUpdating+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText AgentUpdateStatus where parser = takeLowerText >>= \case "failed" -> pure AUSFailed@@ -57,12 +58,40 @@ instance FromJSON AgentUpdateStatus where parseJSON = parseJSONText "AgentUpdateStatus" +data ContainerInstanceStatus+ = Active+ | Draining+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ContainerInstanceStatus where+ parser = takeLowerText >>= \case+ "active" -> pure Active+ "draining" -> pure Draining+ e -> fromTextError $ "Failure parsing ContainerInstanceStatus from value: '" <> e+ <> "'. Accepted values: active, draining"++instance ToText ContainerInstanceStatus where+ toText = \case+ Active -> "ACTIVE"+ Draining -> "DRAINING"++instance Hashable ContainerInstanceStatus+instance NFData ContainerInstanceStatus+instance ToByteString ContainerInstanceStatus+instance ToQuery ContainerInstanceStatus+instance ToHeader ContainerInstanceStatus++instance ToJSON ContainerInstanceStatus where+ toJSON = toJSONText+ data DesiredStatus- = Pending- | Running- | Stopped- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Pending+ | Running+ | Stopped+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText DesiredStatus where parser = takeLowerText >>= \case "pending" -> pure Pending@@ -86,16 +115,50 @@ instance ToJSON DesiredStatus where toJSON = toJSONText +data DeviceCgroupPermission+ = Mknod+ | Read+ | Write+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DeviceCgroupPermission where+ parser = takeLowerText >>= \case+ "mknod" -> pure Mknod+ "read" -> pure Read+ "write" -> pure Write+ e -> fromTextError $ "Failure parsing DeviceCgroupPermission from value: '" <> e+ <> "'. Accepted values: mknod, read, write"++instance ToText DeviceCgroupPermission where+ toText = \case+ Mknod -> "mknod"+ Read -> "read"+ Write -> "write"++instance Hashable DeviceCgroupPermission+instance NFData DeviceCgroupPermission+instance ToByteString DeviceCgroupPermission+instance ToQuery DeviceCgroupPermission+instance ToHeader DeviceCgroupPermission++instance ToJSON DeviceCgroupPermission where+ toJSON = toJSONText++instance FromJSON DeviceCgroupPermission where+ parseJSON = parseJSONText "DeviceCgroupPermission"+ data LogDriver- = AWSlogs- | Fluentd- | Gelf- | JSONFile- | Journald- | Splunk- | Syslog- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = AWSlogs+ | Fluentd+ | Gelf+ | JSONFile+ | Journald+ | Splunk+ | Syslog+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText LogDriver where parser = takeLowerText >>= \case "awslogs" -> pure AWSlogs@@ -131,11 +194,12 @@ parseJSON = parseJSONText "LogDriver" data NetworkMode- = Bridge- | Host- | None- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Bridge+ | Host+ | None+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText NetworkMode where parser = takeLowerText >>= \case "bridge" -> pure Bridge@@ -162,11 +226,75 @@ instance FromJSON NetworkMode where parseJSON = parseJSONText "NetworkMode" +data PlacementConstraintType+ = PCTDistinctInstance+ | PCTMemberOf+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PlacementConstraintType where+ parser = takeLowerText >>= \case+ "distinctinstance" -> pure PCTDistinctInstance+ "memberof" -> pure PCTMemberOf+ e -> fromTextError $ "Failure parsing PlacementConstraintType from value: '" <> e+ <> "'. Accepted values: distinctinstance, memberof"++instance ToText PlacementConstraintType where+ toText = \case+ PCTDistinctInstance -> "distinctInstance"+ PCTMemberOf -> "memberOf"++instance Hashable PlacementConstraintType+instance NFData PlacementConstraintType+instance ToByteString PlacementConstraintType+instance ToQuery PlacementConstraintType+instance ToHeader PlacementConstraintType++instance ToJSON PlacementConstraintType where+ toJSON = toJSONText++instance FromJSON PlacementConstraintType where+ parseJSON = parseJSONText "PlacementConstraintType"++data PlacementStrategyType+ = Binpack+ | Random+ | Spread+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText PlacementStrategyType where+ parser = takeLowerText >>= \case+ "binpack" -> pure Binpack+ "random" -> pure Random+ "spread" -> pure Spread+ e -> fromTextError $ "Failure parsing PlacementStrategyType from value: '" <> e+ <> "'. Accepted values: binpack, random, spread"++instance ToText PlacementStrategyType where+ toText = \case+ Binpack -> "binpack"+ Random -> "random"+ Spread -> "spread"++instance Hashable PlacementStrategyType+instance NFData PlacementStrategyType+instance ToByteString PlacementStrategyType+instance ToQuery PlacementStrategyType+instance ToHeader PlacementStrategyType++instance ToJSON PlacementStrategyType where+ toJSON = toJSONText++instance FromJSON PlacementStrategyType where+ parseJSON = parseJSONText "PlacementStrategyType"+ data SortOrder- = Asc- | Desc- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = Asc+ | Desc+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText SortOrder where parser = takeLowerText >>= \case "asc" -> pure Asc@@ -188,25 +316,53 @@ instance ToJSON SortOrder where toJSON = toJSONText +data TargetType =+ ContainerInstance+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TargetType where+ parser = takeLowerText >>= \case+ "container-instance" -> pure ContainerInstance+ e -> fromTextError $ "Failure parsing TargetType from value: '" <> e+ <> "'. Accepted values: container-instance"++instance ToText TargetType where+ toText = \case+ ContainerInstance -> "container-instance"++instance Hashable TargetType+instance NFData TargetType+instance ToByteString TargetType+instance ToQuery TargetType+instance ToHeader TargetType++instance ToJSON TargetType where+ toJSON = toJSONText++instance FromJSON TargetType where+ parseJSON = parseJSONText "TargetType"+ data TaskDefinitionFamilyStatus- = Active- | All- | Inactive- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = TDFSActive+ | TDFSAll+ | TDFSInactive+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText TaskDefinitionFamilyStatus where parser = takeLowerText >>= \case- "active" -> pure Active- "all" -> pure All- "inactive" -> pure Inactive+ "active" -> pure TDFSActive+ "all" -> pure TDFSAll+ "inactive" -> pure TDFSInactive e -> fromTextError $ "Failure parsing TaskDefinitionFamilyStatus from value: '" <> e <> "'. Accepted values: active, all, inactive" instance ToText TaskDefinitionFamilyStatus where toText = \case- Active -> "ACTIVE"- All -> "ALL"- Inactive -> "INACTIVE"+ TDFSActive -> "ACTIVE"+ TDFSAll -> "ALL"+ TDFSInactive -> "INACTIVE" instance Hashable TaskDefinitionFamilyStatus instance NFData TaskDefinitionFamilyStatus@@ -217,11 +373,39 @@ instance ToJSON TaskDefinitionFamilyStatus where toJSON = toJSONText +data TaskDefinitionPlacementConstraintType =+ MemberOf+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText TaskDefinitionPlacementConstraintType where+ parser = takeLowerText >>= \case+ "memberof" -> pure MemberOf+ e -> fromTextError $ "Failure parsing TaskDefinitionPlacementConstraintType from value: '" <> e+ <> "'. Accepted values: memberof"++instance ToText TaskDefinitionPlacementConstraintType where+ toText = \case+ MemberOf -> "memberOf"++instance Hashable TaskDefinitionPlacementConstraintType+instance NFData TaskDefinitionPlacementConstraintType+instance ToByteString TaskDefinitionPlacementConstraintType+instance ToQuery TaskDefinitionPlacementConstraintType+instance ToHeader TaskDefinitionPlacementConstraintType++instance ToJSON TaskDefinitionPlacementConstraintType where+ toJSON = toJSONText++instance FromJSON TaskDefinitionPlacementConstraintType where+ parseJSON = parseJSONText "TaskDefinitionPlacementConstraintType"+ data TaskDefinitionStatus- = TDSActive- | TDSInactive- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = TDSActive+ | TDSInactive+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText TaskDefinitionStatus where parser = takeLowerText >>= \case "active" -> pure TDSActive@@ -247,10 +431,11 @@ parseJSON = parseJSONText "TaskDefinitionStatus" data TransportProtocol- = TCP- | Udp- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = TCP+ | Udp+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) + instance FromText TransportProtocol where parser = takeLowerText >>= \case "tcp" -> pure TCP@@ -276,22 +461,23 @@ parseJSON = parseJSONText "TransportProtocol" data UlimitName- = CPU- | Core- | Data- | Fsize- | Locks- | Memlock- | Msgqueue- | Nice- | Nofile- | Nproc- | Rss- | Rtprio- | Rttime- | Sigpending- | Stack- deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)+ = CPU+ | Core+ | Data+ | Fsize+ | Locks+ | Memlock+ | Msgqueue+ | Nice+ | Nofile+ | Nproc+ | Rss+ | Rtprio+ | Rttime+ | Sigpending+ | Stack+ deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+ instance FromText UlimitName where parser = takeLowerText >>= \case
gen/Network/AWS/ECS/UpdateContainerAgent.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.UpdateContainerAgent--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -40,19 +40,20 @@ , ucarsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'updateContainerAgent' smart constructor. data UpdateContainerAgent = UpdateContainerAgent'- { _ucaCluster :: !(Maybe Text)- , _ucaContainerInstance :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ucaCluster :: !(Maybe Text)+ , _ucaContainerInstance :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateContainerAgent' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -64,11 +65,10 @@ :: Text -- ^ 'ucaContainerInstance' -> UpdateContainerAgent updateContainerAgent pContainerInstance_ =- UpdateContainerAgent'- { _ucaCluster = Nothing- , _ucaContainerInstance = pContainerInstance_- }+ UpdateContainerAgent'+ {_ucaCluster = Nothing, _ucaContainerInstance = pContainerInstance_} + -- | The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is running on. If you do not specify a cluster, the default cluster is assumed. ucaCluster :: Lens' UpdateContainerAgent (Maybe Text) ucaCluster = lens _ucaCluster (\ s a -> s{_ucaCluster = a});@@ -87,9 +87,9 @@ UpdateContainerAgentResponse' <$> (x .?> "containerInstance") <*> (pure (fromEnum s))) -instance Hashable UpdateContainerAgent+instance Hashable UpdateContainerAgent where -instance NFData UpdateContainerAgent+instance NFData UpdateContainerAgent where instance ToHeaders UpdateContainerAgent where toHeaders@@ -116,10 +116,11 @@ -- | /See:/ 'updateContainerAgentResponse' smart constructor. data UpdateContainerAgentResponse = UpdateContainerAgentResponse'- { _ucarsContainerInstance :: !(Maybe ContainerInstance)- , _ucarsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _ucarsContainerInstance :: !(Maybe ContainerInstance)+ , _ucarsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateContainerAgentResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -131,11 +132,10 @@ :: Int -- ^ 'ucarsResponseStatus' -> UpdateContainerAgentResponse updateContainerAgentResponse pResponseStatus_ =- UpdateContainerAgentResponse'- { _ucarsContainerInstance = Nothing- , _ucarsResponseStatus = pResponseStatus_- }+ UpdateContainerAgentResponse'+ {_ucarsContainerInstance = Nothing, _ucarsResponseStatus = pResponseStatus_} + -- | The container instance for which the container agent was updated. ucarsContainerInstance :: Lens' UpdateContainerAgentResponse (Maybe ContainerInstance) ucarsContainerInstance = lens _ucarsContainerInstance (\ s a -> s{_ucarsContainerInstance = a});@@ -144,4 +144,4 @@ ucarsResponseStatus :: Lens' UpdateContainerAgentResponse Int ucarsResponseStatus = lens _ucarsResponseStatus (\ s a -> s{_ucarsResponseStatus = a}); -instance NFData UpdateContainerAgentResponse+instance NFData UpdateContainerAgentResponse where
+ gen/Network/AWS/ECS/UpdateContainerInstancesState.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.ECS.UpdateContainerInstancesState+-- Copyright : (c) 2013-2017 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the status of an Amazon ECS container instance.+--+--+-- You can change the status of a container instance to @DRAINING@ to manually remove an instance from a cluster, for example to perform system updates, update the Docker daemon, or scale down the cluster size.+--+-- When you set a container instance to @DRAINING@ , Amazon ECS prevents new tasks from being scheduled for placement on the container instance and replacement service tasks are started on other container instances in the cluster if the resources are available. Service tasks on the container instance that are in the @PENDING@ state are stopped immediately.+--+-- Service tasks on the container instance that are in the @RUNNING@ state are stopped and replaced according the service's deployment configuration parameters, @minimumHealthyPercent@ and @maximumPercent@ . Note that you can change the deployment configuration of your service using 'UpdateService' .+--+-- * If @minimumHealthyPercent@ is below 100%, the scheduler can ignore @desiredCount@ temporarily during task replacement. For example, @desiredCount@ is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. If the minimum is 100%, the service scheduler can't remove existing tasks until the replacement tasks are considered healthy. Tasks for services that do not use a load balancer are considered healthy if they are in the @RUNNING@ state. Tasks for services that use a load balancer are considered healthy if they are in the @RUNNING@ state and the container instance they are hosted on is reported as healthy by the load balancer.+--+-- * The @maximumPercent@ parameter represents an upper limit on the number of running tasks during task replacement, which enables you to define the replacement batch size. For example, if @desiredCount@ of four tasks, a maximum of 200% starts four new tasks before stopping the four tasks to be drained (provided that the cluster resources required to do this are available). If the maximum is 100%, then replacement tasks can't start until the draining tasks have stopped.+--+--+--+-- Any @PENDING@ or @RUNNING@ tasks that do not belong to a service are not affected; you must wait for them to finish or stop them manually.+--+-- A container instance has completed draining when it has no more @RUNNING@ tasks. You can verify this using 'ListTasks' .+--+-- When you set a container instance to @ACTIVE@ , the Amazon ECS scheduler can begin scheduling tasks on the instance again.+--+module Network.AWS.ECS.UpdateContainerInstancesState+ (+ -- * Creating a Request+ updateContainerInstancesState+ , UpdateContainerInstancesState+ -- * Request Lenses+ , ucisCluster+ , ucisContainerInstances+ , ucisStatus++ -- * Destructuring the Response+ , updateContainerInstancesStateResponse+ , UpdateContainerInstancesStateResponse+ -- * Response Lenses+ , ucisrsFailures+ , ucisrsContainerInstances+ , ucisrsResponseStatus+ ) where++import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateContainerInstancesState' smart constructor.+data UpdateContainerInstancesState = UpdateContainerInstancesState'+ { _ucisCluster :: !(Maybe Text)+ , _ucisContainerInstances :: ![Text]+ , _ucisStatus :: !ContainerInstanceStatus+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateContainerInstancesState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucisCluster' - The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to update. If you do not specify a cluster, the default cluster is assumed.+--+-- * 'ucisContainerInstances' - A list of container instance IDs or full Amazon Resource Name (ARN) entries.+--+-- * 'ucisStatus' - The container instance state with which to update the container instance.+updateContainerInstancesState+ :: ContainerInstanceStatus -- ^ 'ucisStatus'+ -> UpdateContainerInstancesState+updateContainerInstancesState pStatus_ =+ UpdateContainerInstancesState'+ { _ucisCluster = Nothing+ , _ucisContainerInstances = mempty+ , _ucisStatus = pStatus_+ }+++-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to update. If you do not specify a cluster, the default cluster is assumed.+ucisCluster :: Lens' UpdateContainerInstancesState (Maybe Text)+ucisCluster = lens _ucisCluster (\ s a -> s{_ucisCluster = a});++-- | A list of container instance IDs or full Amazon Resource Name (ARN) entries.+ucisContainerInstances :: Lens' UpdateContainerInstancesState [Text]+ucisContainerInstances = lens _ucisContainerInstances (\ s a -> s{_ucisContainerInstances = a}) . _Coerce;++-- | The container instance state with which to update the container instance.+ucisStatus :: Lens' UpdateContainerInstancesState ContainerInstanceStatus+ucisStatus = lens _ucisStatus (\ s a -> s{_ucisStatus = a});++instance AWSRequest UpdateContainerInstancesState+ where+ type Rs UpdateContainerInstancesState =+ UpdateContainerInstancesStateResponse+ request = postJSON ecs+ response+ = receiveJSON+ (\ s h x ->+ UpdateContainerInstancesStateResponse' <$>+ (x .?> "failures" .!@ mempty) <*>+ (x .?> "containerInstances" .!@ mempty)+ <*> (pure (fromEnum s)))++instance Hashable UpdateContainerInstancesState where++instance NFData UpdateContainerInstancesState where++instance ToHeaders UpdateContainerInstancesState+ where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("AmazonEC2ContainerServiceV20141113.UpdateContainerInstancesState"+ :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateContainerInstancesState where+ toJSON UpdateContainerInstancesState'{..}+ = object+ (catMaybes+ [("cluster" .=) <$> _ucisCluster,+ Just+ ("containerInstances" .= _ucisContainerInstances),+ Just ("status" .= _ucisStatus)])++instance ToPath UpdateContainerInstancesState where+ toPath = const "/"++instance ToQuery UpdateContainerInstancesState where+ toQuery = const mempty++-- | /See:/ 'updateContainerInstancesStateResponse' smart constructor.+data UpdateContainerInstancesStateResponse = UpdateContainerInstancesStateResponse'+ { _ucisrsFailures :: !(Maybe [Failure])+ , _ucisrsContainerInstances :: !(Maybe [ContainerInstance])+ , _ucisrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateContainerInstancesStateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucisrsFailures' - Any failures associated with the call.+--+-- * 'ucisrsContainerInstances' - The list of container instances.+--+-- * 'ucisrsResponseStatus' - -- | The response status code.+updateContainerInstancesStateResponse+ :: Int -- ^ 'ucisrsResponseStatus'+ -> UpdateContainerInstancesStateResponse+updateContainerInstancesStateResponse pResponseStatus_ =+ UpdateContainerInstancesStateResponse'+ { _ucisrsFailures = Nothing+ , _ucisrsContainerInstances = Nothing+ , _ucisrsResponseStatus = pResponseStatus_+ }+++-- | Any failures associated with the call.+ucisrsFailures :: Lens' UpdateContainerInstancesStateResponse [Failure]+ucisrsFailures = lens _ucisrsFailures (\ s a -> s{_ucisrsFailures = a}) . _Default . _Coerce;++-- | The list of container instances.+ucisrsContainerInstances :: Lens' UpdateContainerInstancesStateResponse [ContainerInstance]+ucisrsContainerInstances = lens _ucisrsContainerInstances (\ s a -> s{_ucisrsContainerInstances = a}) . _Default . _Coerce;++-- | -- | The response status code.+ucisrsResponseStatus :: Lens' UpdateContainerInstancesStateResponse Int+ucisrsResponseStatus = lens _ucisrsResponseStatus (\ s a -> s{_ucisrsResponseStatus = a});++instance NFData UpdateContainerInstancesStateResponse+ where
gen/Network/AWS/ECS/UpdateService.hs view
@@ -12,9 +12,9 @@ -- | -- Module : Network.AWS.ECS.UpdateService--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --@@ -27,22 +27,36 @@ -- -- You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, @minimumHealthyPercent@ and @maximumPercent@ , to determine the deployment strategy. ----- If the @minimumHealthyPercent@ is below 100%, the scheduler can ignore the @desiredCount@ temporarily during a deployment. For example, if your service has a @desiredCount@ of four tasks, a @minimumHealthyPercent@ of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that /do not/ use a load balancer are considered healthy if they are in the @RUNNING@ state; tasks for services that /do/ use a load balancer are considered healthy if they are in the @RUNNING@ state and the container instance it is hosted on is reported as healthy by the load balancer.+-- * If @minimumHealthyPercent@ is below 100%, the scheduler can ignore @desiredCount@ temporarily during a deployment. For example, if @desiredCount@ is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they are in the @RUNNING@ state. Tasks for services that use a load balancer are considered healthy if they are in the @RUNNING@ state and the container instance they are hosted on is reported as healthy by the load balancer. ----- The @maximumPercent@ parameter represents an upper limit on the number of running tasks during a deployment, which enables you to define the deployment batch size. For example, if your service has a @desiredCount@ of four tasks, a @maximumPercent@ value of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).+-- * The @maximumPercent@ parameter represents an upper limit on the number of running tasks during a deployment, which enables you to define the deployment batch size. For example, if @desiredCount@ is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). --+--+-- -- When 'UpdateService' stops a task during a deployment, the equivalent of @docker stop@ is issued to the containers running in the task. This results in a @SIGTERM@ and a 30-second timeout, after which @SIGKILL@ is sent and the containers are forcibly stopped. If the container handles the @SIGTERM@ gracefully and exits within 30 seconds from receiving it, no @SIGKILL@ is sent. ----- When the service scheduler launches new tasks, it attempts to balance them across the Availability Zones in your cluster with the following logic:+-- When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic: -- -- * Determine which of the container instances in your cluster can support your service's task definition (for example, they have the required CPU, memory, ports, and container instance attributes). --+-- * By default, the service scheduler attempts to balance tasks across Availability Zones in this manner (although you can choose a different placement strategy):+-- -- * Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement. -- -- * Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service. -- -- --+--+--+-- When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:+--+-- * Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.+--+-- * Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.+--+--+-- module Network.AWS.ECS.UpdateService ( -- * Creating a Request@@ -63,22 +77,23 @@ , usrsResponseStatus ) where -import Network.AWS.ECS.Types-import Network.AWS.ECS.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response+import Network.AWS.ECS.Types+import Network.AWS.ECS.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -- | /See:/ 'updateService' smart constructor. data UpdateService = UpdateService'- { _usCluster :: !(Maybe Text)- , _usDesiredCount :: !(Maybe Int)- , _usTaskDefinition :: !(Maybe Text)- , _usDeploymentConfiguration :: !(Maybe DeploymentConfiguration)- , _usService :: !Text- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _usCluster :: !(Maybe Text)+ , _usDesiredCount :: !(Maybe Int)+ , _usTaskDefinition :: !(Maybe Text)+ , _usDeploymentConfiguration :: !(Maybe DeploymentConfiguration)+ , _usService :: !Text+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateService' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -96,14 +111,15 @@ :: Text -- ^ 'usService' -> UpdateService updateService pService_ =- UpdateService'- { _usCluster = Nothing- , _usDesiredCount = Nothing- , _usTaskDefinition = Nothing- , _usDeploymentConfiguration = Nothing- , _usService = pService_- }+ UpdateService'+ { _usCluster = Nothing+ , _usDesiredCount = Nothing+ , _usTaskDefinition = Nothing+ , _usDeploymentConfiguration = Nothing+ , _usService = pService_+ } + -- | The short name or full Amazon Resource Name (ARN) of the cluster that your service is running on. If you do not specify a cluster, the default cluster is assumed. usCluster :: Lens' UpdateService (Maybe Text) usCluster = lens _usCluster (\ s a -> s{_usCluster = a});@@ -133,9 +149,9 @@ UpdateServiceResponse' <$> (x .?> "service") <*> (pure (fromEnum s))) -instance Hashable UpdateService+instance Hashable UpdateService where -instance NFData UpdateService+instance NFData UpdateService where instance ToHeaders UpdateService where toHeaders@@ -166,10 +182,11 @@ -- | /See:/ 'updateServiceResponse' smart constructor. data UpdateServiceResponse = UpdateServiceResponse'- { _usrsService :: !(Maybe ContainerService)- , _usrsResponseStatus :: !Int- } deriving (Eq,Read,Show,Data,Typeable,Generic)+ { _usrsService :: !(Maybe ContainerService)+ , _usrsResponseStatus :: !Int+ } deriving (Eq, Read, Show, Data, Typeable, Generic) + -- | Creates a value of 'UpdateServiceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired:@@ -181,11 +198,10 @@ :: Int -- ^ 'usrsResponseStatus' -> UpdateServiceResponse updateServiceResponse pResponseStatus_ =- UpdateServiceResponse'- { _usrsService = Nothing- , _usrsResponseStatus = pResponseStatus_- }+ UpdateServiceResponse'+ {_usrsService = Nothing, _usrsResponseStatus = pResponseStatus_} + -- | The full description of your service following the update call. usrsService :: Lens' UpdateServiceResponse (Maybe ContainerService) usrsService = lens _usrsService (\ s a -> s{_usrsService = a});@@ -194,4 +210,4 @@ usrsResponseStatus :: Lens' UpdateServiceResponse Int usrsResponseStatus = lens _usrsResponseStatus (\ s a -> s{_usrsResponseStatus = a}); -instance NFData UpdateServiceResponse+instance NFData UpdateServiceResponse where
gen/Network/AWS/ECS/Waiters.hs view
@@ -7,75 +7,78 @@ -- | -- Module : Network.AWS.ECS.Waiters--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ECS.Waiters where -import Network.AWS.ECS.DescribeServices-import Network.AWS.ECS.DescribeTasks-import Network.AWS.ECS.DescribeTasks-import Network.AWS.ECS.Types-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Waiter+import Network.AWS.ECS.DescribeServices+import Network.AWS.ECS.DescribeTasks+import Network.AWS.ECS.DescribeTasks+import Network.AWS.ECS.Types+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Waiter -- | Polls 'Network.AWS.ECS.DescribeServices' every 15 seconds until a successful state is reached. An error is returned after 40 failed checks. servicesInactive :: Wait DescribeServices servicesInactive =- Wait- { _waitName = "ServicesInactive"- , _waitAttempts = 40- , _waitDelay = 15- , _waitAcceptors = [ matchAny- "MISSING"- AcceptFailure- (folding (concatOf dssrsFailures) .- fReason . _Just . to toTextCI)- , matchAny- "INACTIVE"- AcceptSuccess- (folding (concatOf dssrsServices) .- csStatus . _Just . to toTextCI)]- }+ Wait+ { _waitName = "ServicesInactive"+ , _waitAttempts = 40+ , _waitDelay = 15+ , _waitAcceptors =+ [ matchAny+ "MISSING"+ AcceptFailure+ (folding (concatOf dssrsFailures) . fReason . _Just . to toTextCI)+ , matchAny+ "INACTIVE"+ AcceptSuccess+ (folding (concatOf dssrsServices) . csStatus . _Just . to toTextCI)+ ]+ } + -- | Polls 'Network.AWS.ECS.DescribeTasks' every 6 seconds until a successful state is reached. An error is returned after 100 failed checks. tasksRunning :: Wait DescribeTasks tasksRunning =- Wait- { _waitName = "TasksRunning"- , _waitAttempts = 100- , _waitDelay = 6- , _waitAcceptors = [ matchAny- "STOPPED"- AcceptFailure- (folding (concatOf dtrsTasks) .- tLastStatus . _Just . to toTextCI)- , matchAny- "MISSING"- AcceptFailure- (folding (concatOf dtrsFailures) .- fReason . _Just . to toTextCI)- , matchAll- "RUNNING"- AcceptSuccess- (folding (concatOf dtrsTasks) .- tLastStatus . _Just . to toTextCI)]- }+ Wait+ { _waitName = "TasksRunning"+ , _waitAttempts = 100+ , _waitDelay = 6+ , _waitAcceptors =+ [ matchAny+ "STOPPED"+ AcceptFailure+ (folding (concatOf dtrsTasks) . tLastStatus . _Just . to toTextCI)+ , matchAny+ "MISSING"+ AcceptFailure+ (folding (concatOf dtrsFailures) . fReason . _Just . to toTextCI)+ , matchAll+ "RUNNING"+ AcceptSuccess+ (folding (concatOf dtrsTasks) . tLastStatus . _Just . to toTextCI)+ ]+ } + -- | Polls 'Network.AWS.ECS.DescribeTasks' every 6 seconds until a successful state is reached. An error is returned after 100 failed checks. tasksStopped :: Wait DescribeTasks tasksStopped =- Wait- { _waitName = "TasksStopped"- , _waitAttempts = 100- , _waitDelay = 6- , _waitAcceptors = [ matchAll- "STOPPED"- AcceptSuccess- (folding (concatOf dtrsTasks) .- tLastStatus . _Just . to toTextCI)]- }+ Wait+ { _waitName = "TasksStopped"+ , _waitAttempts = 100+ , _waitDelay = 6+ , _waitAcceptors =+ [ matchAll+ "STOPPED"+ AcceptSuccess+ (folding (concatOf dtrsTasks) . tLastStatus . _Just . to toTextCI)+ ]+ }+
test/Main.hs view
@@ -2,9 +2,9 @@ -- | -- Module : Main--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) --
test/Test/AWS/Gen/ECS.hs view
@@ -5,20 +5,20 @@ -- | -- Module : Test.AWS.Gen.ECS--- Copyright : (c) 2013-2016 Brendan Hay+-- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Test.AWS.Gen.ECS where import Data.Proxy+import Network.AWS.ECS+import Test.AWS.ECS.Internal import Test.AWS.Fixture import Test.AWS.Prelude import Test.Tasty-import Network.AWS.ECS-import Test.AWS.ECS.Internal -- Auto-generated: the actual test selection needs to be manually placed into -- the top-level so that real test data can be incrementally added.@@ -58,6 +58,9 @@ -- , requestDescribeContainerInstances $ -- describeContainerInstances --+-- , requestUpdateContainerInstancesState $+-- updateContainerInstancesState+-- -- , requestDeleteCluster $ -- deleteCluster --@@ -88,6 +91,9 @@ -- , requestStartTask $ -- startTask --+-- , requestListAttributes $+-- listAttributes+-- -- , requestDeregisterTaskDefinition $ -- deregisterTaskDefinition --@@ -103,6 +109,12 @@ -- , requestDeregisterContainerInstance $ -- deregisterContainerInstance --+-- , requestDeleteAttributes $+-- deleteAttributes+--+-- , requestPutAttributes $+-- putAttributes+-- -- , requestRegisterTaskDefinition $ -- registerTaskDefinition --@@ -142,6 +154,9 @@ -- , responseDescribeContainerInstances $ -- describeContainerInstancesResponse --+-- , responseUpdateContainerInstancesState $+-- updateContainerInstancesStateResponse+-- -- , responseDeleteCluster $ -- deleteClusterResponse --@@ -172,6 +187,9 @@ -- , responseStartTask $ -- startTaskResponse --+-- , responseListAttributes $+-- listAttributesResponse+-- -- , responseDeregisterTaskDefinition $ -- deregisterTaskDefinitionResponse --@@ -187,6 +205,12 @@ -- , responseDeregisterContainerInstance $ -- deregisterContainerInstanceResponse --+-- , responseDeleteAttributes $+-- deleteAttributesResponse+--+-- , responsePutAttributes $+-- putAttributesResponse+-- -- , responseRegisterTaskDefinition $ -- registerTaskDefinitionResponse --@@ -248,6 +272,11 @@ "DescribeContainerInstances" "fixture/DescribeContainerInstances.yaml" +requestUpdateContainerInstancesState :: UpdateContainerInstancesState -> TestTree+requestUpdateContainerInstancesState = req+ "UpdateContainerInstancesState"+ "fixture/UpdateContainerInstancesState.yaml"+ requestDeleteCluster :: DeleteCluster -> TestTree requestDeleteCluster = req "DeleteCluster"@@ -298,6 +327,11 @@ "StartTask" "fixture/StartTask.yaml" +requestListAttributes :: ListAttributes -> TestTree+requestListAttributes = req+ "ListAttributes"+ "fixture/ListAttributes.yaml"+ requestDeregisterTaskDefinition :: DeregisterTaskDefinition -> TestTree requestDeregisterTaskDefinition = req "DeregisterTaskDefinition"@@ -323,6 +357,16 @@ "DeregisterContainerInstance" "fixture/DeregisterContainerInstance.yaml" +requestDeleteAttributes :: DeleteAttributes -> TestTree+requestDeleteAttributes = req+ "DeleteAttributes"+ "fixture/DeleteAttributes.yaml"++requestPutAttributes :: PutAttributes -> TestTree+requestPutAttributes = req+ "PutAttributes"+ "fixture/PutAttributes.yaml"+ requestRegisterTaskDefinition :: RegisterTaskDefinition -> TestTree requestRegisterTaskDefinition = req "RegisterTaskDefinition"@@ -405,6 +449,13 @@ ecs (Proxy :: Proxy DescribeContainerInstances) +responseUpdateContainerInstancesState :: UpdateContainerInstancesStateResponse -> TestTree+responseUpdateContainerInstancesState = res+ "UpdateContainerInstancesStateResponse"+ "fixture/UpdateContainerInstancesStateResponse.proto"+ ecs+ (Proxy :: Proxy UpdateContainerInstancesState)+ responseDeleteCluster :: DeleteClusterResponse -> TestTree responseDeleteCluster = res "DeleteClusterResponse"@@ -475,6 +526,13 @@ ecs (Proxy :: Proxy StartTask) +responseListAttributes :: ListAttributesResponse -> TestTree+responseListAttributes = res+ "ListAttributesResponse"+ "fixture/ListAttributesResponse.proto"+ ecs+ (Proxy :: Proxy ListAttributes)+ responseDeregisterTaskDefinition :: DeregisterTaskDefinitionResponse -> TestTree responseDeregisterTaskDefinition = res "DeregisterTaskDefinitionResponse"@@ -509,6 +567,20 @@ "fixture/DeregisterContainerInstanceResponse.proto" ecs (Proxy :: Proxy DeregisterContainerInstance)++responseDeleteAttributes :: DeleteAttributesResponse -> TestTree+responseDeleteAttributes = res+ "DeleteAttributesResponse"+ "fixture/DeleteAttributesResponse.proto"+ ecs+ (Proxy :: Proxy DeleteAttributes)++responsePutAttributes :: PutAttributesResponse -> TestTree+responsePutAttributes = res+ "PutAttributesResponse"+ "fixture/PutAttributesResponse.proto"+ ecs+ (Proxy :: Proxy PutAttributes) responseRegisterTaskDefinition :: RegisterTaskDefinitionResponse -> TestTree responseRegisterTaskDefinition = res