module Network.AWS.CloudSearch.CreateDomain
(
createDomain
, CreateDomain
, cdDomainName
, createDomainResponse
, CreateDomainResponse
, cdrsDomainStatus
, cdrsResponseStatus
) where
import Network.AWS.CloudSearch.Types
import Network.AWS.CloudSearch.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype CreateDomain = CreateDomain'
{ _cdDomainName :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createDomain
:: Text
-> CreateDomain
createDomain pDomainName_ =
CreateDomain'
{ _cdDomainName = pDomainName_
}
cdDomainName :: Lens' CreateDomain Text
cdDomainName = lens _cdDomainName (\ s a -> s{_cdDomainName = a});
instance AWSRequest CreateDomain where
type Rs CreateDomain = CreateDomainResponse
request = postQuery cloudSearch
response
= receiveXMLWrapper "CreateDomainResult"
(\ s h x ->
CreateDomainResponse' <$>
(x .@? "DomainStatus") <*> (pure (fromEnum s)))
instance Hashable CreateDomain
instance NFData CreateDomain
instance ToHeaders CreateDomain where
toHeaders = const mempty
instance ToPath CreateDomain where
toPath = const "/"
instance ToQuery CreateDomain where
toQuery CreateDomain'{..}
= mconcat
["Action" =: ("CreateDomain" :: ByteString),
"Version" =: ("2013-01-01" :: ByteString),
"DomainName" =: _cdDomainName]
data CreateDomainResponse = CreateDomainResponse'
{ _cdrsDomainStatus :: !(Maybe DomainStatus)
, _cdrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createDomainResponse
:: Int
-> CreateDomainResponse
createDomainResponse pResponseStatus_ =
CreateDomainResponse'
{ _cdrsDomainStatus = Nothing
, _cdrsResponseStatus = pResponseStatus_
}
cdrsDomainStatus :: Lens' CreateDomainResponse (Maybe DomainStatus)
cdrsDomainStatus = lens _cdrsDomainStatus (\ s a -> s{_cdrsDomainStatus = a});
cdrsResponseStatus :: Lens' CreateDomainResponse Int
cdrsResponseStatus = lens _cdrsResponseStatus (\ s a -> s{_cdrsResponseStatus = a});
instance NFData CreateDomainResponse