module Network.AWS.OpsWorks.DescribeCommands
(
DescribeCommands
, describeCommands
, dcCommandIds
, dcDeploymentId
, dcInstanceId
, DescribeCommandsResponse
, describeCommandsResponse
, dcrCommands
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.OpsWorks.Types
import qualified GHC.Exts
data DescribeCommands = DescribeCommands
{ _dcCommandIds :: List "InstanceIds" Text
, _dcDeploymentId :: Maybe Text
, _dcInstanceId :: Maybe Text
} deriving (Eq, Ord, Show)
describeCommands :: DescribeCommands
describeCommands = DescribeCommands
{ _dcDeploymentId = Nothing
, _dcInstanceId = Nothing
, _dcCommandIds = mempty
}
dcCommandIds :: Lens' DescribeCommands [Text]
dcCommandIds = lens _dcCommandIds (\s a -> s { _dcCommandIds = a }) . _List
dcDeploymentId :: Lens' DescribeCommands (Maybe Text)
dcDeploymentId = lens _dcDeploymentId (\s a -> s { _dcDeploymentId = a })
dcInstanceId :: Lens' DescribeCommands (Maybe Text)
dcInstanceId = lens _dcInstanceId (\s a -> s { _dcInstanceId = a })
newtype DescribeCommandsResponse = DescribeCommandsResponse
{ _dcrCommands :: List "Commands" Command
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeCommandsResponse where
type Item DescribeCommandsResponse = Command
fromList = DescribeCommandsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _dcrCommands
describeCommandsResponse :: DescribeCommandsResponse
describeCommandsResponse = DescribeCommandsResponse
{ _dcrCommands = mempty
}
dcrCommands :: Lens' DescribeCommandsResponse [Command]
dcrCommands = lens _dcrCommands (\s a -> s { _dcrCommands = a }) . _List
instance ToPath DescribeCommands where
toPath = const "/"
instance ToQuery DescribeCommands where
toQuery = const mempty
instance ToHeaders DescribeCommands
instance ToJSON DescribeCommands where
toJSON DescribeCommands{..} = object
[ "DeploymentId" .= _dcDeploymentId
, "InstanceId" .= _dcInstanceId
, "CommandIds" .= _dcCommandIds
]
instance AWSRequest DescribeCommands where
type Sv DescribeCommands = OpsWorks
type Rs DescribeCommands = DescribeCommandsResponse
request = post "DescribeCommands"
response = jsonResponse
instance FromJSON DescribeCommandsResponse where
parseJSON = withObject "DescribeCommandsResponse" $ \o -> DescribeCommandsResponse
<$> o .: "Commands"