{-# 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 #-}
module Network.AWS.CloudFormation.DescribeStackResource
(
describeStackResource
, DescribeStackResource
, dsrsStackName
, dsrsLogicalResourceId
, describeStackResourceResponse
, DescribeStackResourceResponse
, dsrrsStackResourceDetail
, dsrrsResponseStatus
) where
import Network.AWS.CloudFormation.Types
import Network.AWS.CloudFormation.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeStackResource = DescribeStackResource'
{ _dsrsStackName :: !Text
, _dsrsLogicalResourceId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeStackResource
:: Text
-> Text
-> DescribeStackResource
describeStackResource pStackName_ pLogicalResourceId_ =
DescribeStackResource'
{ _dsrsStackName = pStackName_
, _dsrsLogicalResourceId = pLogicalResourceId_
}
dsrsStackName :: Lens' DescribeStackResource Text
dsrsStackName = lens _dsrsStackName (\ s a -> s{_dsrsStackName = a});
dsrsLogicalResourceId :: Lens' DescribeStackResource Text
dsrsLogicalResourceId = lens _dsrsLogicalResourceId (\ s a -> s{_dsrsLogicalResourceId = a});
instance AWSRequest DescribeStackResource where
type Rs DescribeStackResource =
DescribeStackResourceResponse
request = postQuery cloudFormation
response
= receiveXMLWrapper "DescribeStackResourceResult"
(\ s h x ->
DescribeStackResourceResponse' <$>
(x .@? "StackResourceDetail") <*>
(pure (fromEnum s)))
instance Hashable DescribeStackResource
instance NFData DescribeStackResource
instance ToHeaders DescribeStackResource where
toHeaders = const mempty
instance ToPath DescribeStackResource where
toPath = const "/"
instance ToQuery DescribeStackResource where
toQuery DescribeStackResource'{..}
= mconcat
["Action" =: ("DescribeStackResource" :: ByteString),
"Version" =: ("2010-05-15" :: ByteString),
"StackName" =: _dsrsStackName,
"LogicalResourceId" =: _dsrsLogicalResourceId]
data DescribeStackResourceResponse = DescribeStackResourceResponse'
{ _dsrrsStackResourceDetail :: !(Maybe StackResourceDetail)
, _dsrrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeStackResourceResponse
:: Int
-> DescribeStackResourceResponse
describeStackResourceResponse pResponseStatus_ =
DescribeStackResourceResponse'
{ _dsrrsStackResourceDetail = Nothing
, _dsrrsResponseStatus = pResponseStatus_
}
dsrrsStackResourceDetail :: Lens' DescribeStackResourceResponse (Maybe StackResourceDetail)
dsrrsStackResourceDetail = lens _dsrrsStackResourceDetail (\ s a -> s{_dsrrsStackResourceDetail = a});
dsrrsResponseStatus :: Lens' DescribeStackResourceResponse Int
dsrrsResponseStatus = lens _dsrrsResponseStatus (\ s a -> s{_dsrrsResponseStatus = a});
instance NFData DescribeStackResourceResponse