module Network.AWS.CloudSearch.DescribeDomains
(
DescribeDomains
, describeDomains
, ddDomainNames
, DescribeDomainsResponse
, describeDomainsResponse
, ddrDomainStatusList
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.CloudSearch.Types
import qualified GHC.Exts
newtype DescribeDomains = DescribeDomains
{ _ddDomainNames :: List "member" Text
} deriving (Eq, Ord, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeDomains where
type Item DescribeDomains = Text
fromList = DescribeDomains . GHC.Exts.fromList
toList = GHC.Exts.toList . _ddDomainNames
describeDomains :: DescribeDomains
describeDomains = DescribeDomains
{ _ddDomainNames = mempty
}
ddDomainNames :: Lens' DescribeDomains [Text]
ddDomainNames = lens _ddDomainNames (\s a -> s { _ddDomainNames = a }) . _List
newtype DescribeDomainsResponse = DescribeDomainsResponse
{ _ddrDomainStatusList :: List "member" DomainStatus
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeDomainsResponse where
type Item DescribeDomainsResponse = DomainStatus
fromList = DescribeDomainsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _ddrDomainStatusList
describeDomainsResponse :: DescribeDomainsResponse
describeDomainsResponse = DescribeDomainsResponse
{ _ddrDomainStatusList = mempty
}
ddrDomainStatusList :: Lens' DescribeDomainsResponse [DomainStatus]
ddrDomainStatusList =
lens _ddrDomainStatusList (\s a -> s { _ddrDomainStatusList = a })
. _List
instance ToPath DescribeDomains where
toPath = const "/"
instance ToQuery DescribeDomains where
toQuery DescribeDomains{..} = mconcat
[ "DomainNames" =? _ddDomainNames
]
instance ToHeaders DescribeDomains
instance AWSRequest DescribeDomains where
type Sv DescribeDomains = CloudSearch
type Rs DescribeDomains = DescribeDomainsResponse
request = post "DescribeDomains"
response = xmlResponse
instance FromXML DescribeDomainsResponse where
parseXML = withElement "DescribeDomainsResult" $ \x -> DescribeDomainsResponse
<$> x .@? "DomainStatusList" .!@ mempty