module Network.AWS.ELB.DescribeTags
(
DescribeTags
, describeTags
, dtLoadBalancerNames
, DescribeTagsResponse
, describeTagsResponse
, dtrTagDescriptions
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ELB.Types
import qualified GHC.Exts
newtype DescribeTags = DescribeTags
{ _dtLoadBalancerNames :: List1 "member" Text
} deriving (Eq, Ord, Read, Show, Semigroup)
describeTags :: NonEmpty Text
-> DescribeTags
describeTags p1 = DescribeTags
{ _dtLoadBalancerNames = withIso _List1 (const id) p1
}
dtLoadBalancerNames :: Lens' DescribeTags (NonEmpty Text)
dtLoadBalancerNames =
lens _dtLoadBalancerNames (\s a -> s { _dtLoadBalancerNames = a })
. _List1
newtype DescribeTagsResponse = DescribeTagsResponse
{ _dtrTagDescriptions :: List "member" TagDescription
} deriving (Eq, Read, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeTagsResponse where
type Item DescribeTagsResponse = TagDescription
fromList = DescribeTagsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _dtrTagDescriptions
describeTagsResponse :: DescribeTagsResponse
describeTagsResponse = DescribeTagsResponse
{ _dtrTagDescriptions = mempty
}
dtrTagDescriptions :: Lens' DescribeTagsResponse [TagDescription]
dtrTagDescriptions =
lens _dtrTagDescriptions (\s a -> s { _dtrTagDescriptions = a })
. _List
instance ToPath DescribeTags where
toPath = const "/"
instance ToQuery DescribeTags where
toQuery DescribeTags{..} = mconcat
[ "LoadBalancerNames" =? _dtLoadBalancerNames
]
instance ToHeaders DescribeTags
instance AWSRequest DescribeTags where
type Sv DescribeTags = ELB
type Rs DescribeTags = DescribeTagsResponse
request = post "DescribeTags"
response = xmlResponse
instance FromXML DescribeTagsResponse where
parseXML = withElement "DescribeTagsResult" $ \x -> DescribeTagsResponse
<$> x .@? "TagDescriptions" .!@ mempty