module Network.AWS.ElasticBeanstalk.CheckDNSAvailability
(
CheckDNSAvailability
, checkDNSAvailability
, cdnsaCNAMEPrefix
, CheckDNSAvailabilityResponse
, checkDNSAvailabilityResponse
, cdnsarAvailable
, cdnsarFullyQualifiedCNAME
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.ElasticBeanstalk.Types
import qualified GHC.Exts
newtype CheckDNSAvailability = CheckDNSAvailability
{ _cdnsaCNAMEPrefix :: Text
} deriving (Eq, Ord, Show, Monoid, IsString)
checkDNSAvailability :: Text
-> CheckDNSAvailability
checkDNSAvailability p1 = CheckDNSAvailability
{ _cdnsaCNAMEPrefix = p1
}
cdnsaCNAMEPrefix :: Lens' CheckDNSAvailability Text
cdnsaCNAMEPrefix = lens _cdnsaCNAMEPrefix (\s a -> s { _cdnsaCNAMEPrefix = a })
data CheckDNSAvailabilityResponse = CheckDNSAvailabilityResponse
{ _cdnsarAvailable :: Maybe Bool
, _cdnsarFullyQualifiedCNAME :: Maybe Text
} deriving (Eq, Ord, Show)
checkDNSAvailabilityResponse :: CheckDNSAvailabilityResponse
checkDNSAvailabilityResponse = CheckDNSAvailabilityResponse
{ _cdnsarAvailable = Nothing
, _cdnsarFullyQualifiedCNAME = Nothing
}
cdnsarAvailable :: Lens' CheckDNSAvailabilityResponse (Maybe Bool)
cdnsarAvailable = lens _cdnsarAvailable (\s a -> s { _cdnsarAvailable = a })
cdnsarFullyQualifiedCNAME :: Lens' CheckDNSAvailabilityResponse (Maybe Text)
cdnsarFullyQualifiedCNAME =
lens _cdnsarFullyQualifiedCNAME
(\s a -> s { _cdnsarFullyQualifiedCNAME = a })
instance ToPath CheckDNSAvailability where
toPath = const "/"
instance ToQuery CheckDNSAvailability where
toQuery CheckDNSAvailability{..} = mconcat
[ "CNAMEPrefix" =? _cdnsaCNAMEPrefix
]
instance ToHeaders CheckDNSAvailability
instance AWSRequest CheckDNSAvailability where
type Sv CheckDNSAvailability = ElasticBeanstalk
type Rs CheckDNSAvailability = CheckDNSAvailabilityResponse
request = post "CheckDNSAvailability"
response = xmlResponse
instance FromXML CheckDNSAvailabilityResponse where
parseXML = withElement "CheckDNSAvailabilityResult" $ \x -> CheckDNSAvailabilityResponse
<$> x .@? "Available"
<*> x .@? "FullyQualifiedCNAME"