amazonka-ecs-0.3.4: gen/Network/AWS/ECS/SubmitContainerStateChange.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- Module : Network.AWS.ECS.SubmitContainerStateChange
-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
-- License : This Source Code Form is subject to the terms of
-- the Mozilla Public License, v. 2.0.
-- A copy of the MPL can be found in the LICENSE file or
-- you can obtain it at http://mozilla.org/MPL/2.0/.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
--
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- | This action is only used by the Amazon EC2 Container Service agent, and it is
-- not intended for use outside of the agent.
--
-- Sent to acknowledge that a container changed states.
--
-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_SubmitContainerStateChange.html>
module Network.AWS.ECS.SubmitContainerStateChange
(
-- * Request
SubmitContainerStateChange
-- ** Request constructor
, submitContainerStateChange
-- ** Request lenses
, scscCluster
, scscContainerName
, scscExitCode
, scscNetworkBindings
, scscReason
, scscStatus
, scscTask
-- * Response
, SubmitContainerStateChangeResponse
-- ** Response constructor
, submitContainerStateChangeResponse
-- ** Response lenses
, scscrAcknowledgment
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.ECS.Types
import qualified GHC.Exts
data SubmitContainerStateChange = SubmitContainerStateChange
{ _scscCluster :: Maybe Text
, _scscContainerName :: Maybe Text
, _scscExitCode :: Maybe Int
, _scscNetworkBindings :: List "networkBindings" NetworkBinding
, _scscReason :: Maybe Text
, _scscStatus :: Maybe Text
, _scscTask :: Maybe Text
} deriving (Eq, Read, Show)
-- | 'SubmitContainerStateChange' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'scscCluster' @::@ 'Maybe' 'Text'
--
-- * 'scscContainerName' @::@ 'Maybe' 'Text'
--
-- * 'scscExitCode' @::@ 'Maybe' 'Int'
--
-- * 'scscNetworkBindings' @::@ ['NetworkBinding']
--
-- * 'scscReason' @::@ 'Maybe' 'Text'
--
-- * 'scscStatus' @::@ 'Maybe' 'Text'
--
-- * 'scscTask' @::@ 'Maybe' 'Text'
--
submitContainerStateChange :: SubmitContainerStateChange
submitContainerStateChange = SubmitContainerStateChange
{ _scscCluster = Nothing
, _scscTask = Nothing
, _scscContainerName = Nothing
, _scscStatus = Nothing
, _scscExitCode = Nothing
, _scscReason = Nothing
, _scscNetworkBindings = mempty
}
-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts
-- the container.
scscCluster :: Lens' SubmitContainerStateChange (Maybe Text)
scscCluster = lens _scscCluster (\s a -> s { _scscCluster = a })
-- | The name of the container.
scscContainerName :: Lens' SubmitContainerStateChange (Maybe Text)
scscContainerName =
lens _scscContainerName (\s a -> s { _scscContainerName = a })
-- | The exit code returned for the state change request.
scscExitCode :: Lens' SubmitContainerStateChange (Maybe Int)
scscExitCode = lens _scscExitCode (\s a -> s { _scscExitCode = a })
-- | The network bindings of the container.
scscNetworkBindings :: Lens' SubmitContainerStateChange [NetworkBinding]
scscNetworkBindings =
lens _scscNetworkBindings (\s a -> s { _scscNetworkBindings = a })
. _List
-- | The reason for the state change request.
scscReason :: Lens' SubmitContainerStateChange (Maybe Text)
scscReason = lens _scscReason (\s a -> s { _scscReason = a })
-- | The status of the state change request.
scscStatus :: Lens' SubmitContainerStateChange (Maybe Text)
scscStatus = lens _scscStatus (\s a -> s { _scscStatus = a })
-- | The task UUID or full Amazon Resource Name (ARN) of the task that hosts the
-- container.
scscTask :: Lens' SubmitContainerStateChange (Maybe Text)
scscTask = lens _scscTask (\s a -> s { _scscTask = a })
newtype SubmitContainerStateChangeResponse = SubmitContainerStateChangeResponse
{ _scscrAcknowledgment :: Maybe Text
} deriving (Eq, Ord, Read, Show, Monoid)
-- | 'SubmitContainerStateChangeResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'scscrAcknowledgment' @::@ 'Maybe' 'Text'
--
submitContainerStateChangeResponse :: SubmitContainerStateChangeResponse
submitContainerStateChangeResponse = SubmitContainerStateChangeResponse
{ _scscrAcknowledgment = Nothing
}
-- | Acknowledgement of the state change.
scscrAcknowledgment :: Lens' SubmitContainerStateChangeResponse (Maybe Text)
scscrAcknowledgment =
lens _scscrAcknowledgment (\s a -> s { _scscrAcknowledgment = a })
instance ToPath SubmitContainerStateChange where
toPath = const "/"
instance ToQuery SubmitContainerStateChange where
toQuery = const mempty
instance ToHeaders SubmitContainerStateChange
instance ToJSON SubmitContainerStateChange where
toJSON SubmitContainerStateChange{..} = object
[ "cluster" .= _scscCluster
, "task" .= _scscTask
, "containerName" .= _scscContainerName
, "status" .= _scscStatus
, "exitCode" .= _scscExitCode
, "reason" .= _scscReason
, "networkBindings" .= _scscNetworkBindings
]
instance AWSRequest SubmitContainerStateChange where
type Sv SubmitContainerStateChange = ECS
type Rs SubmitContainerStateChange = SubmitContainerStateChangeResponse
request = post "SubmitContainerStateChange"
response = jsonResponse
instance FromJSON SubmitContainerStateChangeResponse where
parseJSON = withObject "SubmitContainerStateChangeResponse" $ \o -> SubmitContainerStateChangeResponse
<$> o .:? "acknowledgment"