{-# 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.Route53.TestDNSAnswer
(
testDNSAnswer
, TestDNSAnswer
, tdaResolverIP
, tdaEDNS0ClientSubnetIP
, tdaEDNS0ClientSubnetMask
, tdaHostedZoneId
, tdaRecordName
, tdaRecordType
, testDNSAnswerResponse
, TestDNSAnswerResponse
, tdarsResponseStatus
, tdarsNameserver
, tdarsRecordName
, tdarsRecordType
, tdarsRecordData
, tdarsResponseCode
, tdarsProtocol
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.Route53.Types
import Network.AWS.Route53.Types.Product
data TestDNSAnswer = TestDNSAnswer'
{ _tdaResolverIP :: !(Maybe Text)
, _tdaEDNS0ClientSubnetIP :: !(Maybe Text)
, _tdaEDNS0ClientSubnetMask :: !(Maybe Text)
, _tdaHostedZoneId :: !Text
, _tdaRecordName :: !Text
, _tdaRecordType :: !RecordType
} deriving (Eq,Read,Show,Data,Typeable,Generic)
testDNSAnswer
:: Text
-> Text
-> RecordType
-> TestDNSAnswer
testDNSAnswer pHostedZoneId_ pRecordName_ pRecordType_ =
TestDNSAnswer'
{ _tdaResolverIP = Nothing
, _tdaEDNS0ClientSubnetIP = Nothing
, _tdaEDNS0ClientSubnetMask = Nothing
, _tdaHostedZoneId = pHostedZoneId_
, _tdaRecordName = pRecordName_
, _tdaRecordType = pRecordType_
}
tdaResolverIP :: Lens' TestDNSAnswer (Maybe Text)
tdaResolverIP = lens _tdaResolverIP (\ s a -> s{_tdaResolverIP = a});
tdaEDNS0ClientSubnetIP :: Lens' TestDNSAnswer (Maybe Text)
tdaEDNS0ClientSubnetIP = lens _tdaEDNS0ClientSubnetIP (\ s a -> s{_tdaEDNS0ClientSubnetIP = a});
tdaEDNS0ClientSubnetMask :: Lens' TestDNSAnswer (Maybe Text)
tdaEDNS0ClientSubnetMask = lens _tdaEDNS0ClientSubnetMask (\ s a -> s{_tdaEDNS0ClientSubnetMask = a});
tdaHostedZoneId :: Lens' TestDNSAnswer Text
tdaHostedZoneId = lens _tdaHostedZoneId (\ s a -> s{_tdaHostedZoneId = a});
tdaRecordName :: Lens' TestDNSAnswer Text
tdaRecordName = lens _tdaRecordName (\ s a -> s{_tdaRecordName = a});
tdaRecordType :: Lens' TestDNSAnswer RecordType
tdaRecordType = lens _tdaRecordType (\ s a -> s{_tdaRecordType = a});
instance AWSRequest TestDNSAnswer where
type Rs TestDNSAnswer = TestDNSAnswerResponse
request = get route53
response
= receiveXML
(\ s h x ->
TestDNSAnswerResponse' <$>
(pure (fromEnum s)) <*> (x .@ "Nameserver") <*>
(x .@ "RecordName")
<*> (x .@ "RecordType")
<*>
(x .@? "RecordData" .!@ mempty >>=
parseXMLList "RecordDataEntry")
<*> (x .@ "ResponseCode")
<*> (x .@ "Protocol"))
instance Hashable TestDNSAnswer
instance NFData TestDNSAnswer
instance ToHeaders TestDNSAnswer where
toHeaders = const mempty
instance ToPath TestDNSAnswer where
toPath = const "/2013-04-01/testdnsanswer"
instance ToQuery TestDNSAnswer where
toQuery TestDNSAnswer'{..}
= mconcat
["resolverip" =: _tdaResolverIP,
"edns0clientsubnetip" =: _tdaEDNS0ClientSubnetIP,
"edns0clientsubnetmask" =: _tdaEDNS0ClientSubnetMask,
"hostedzoneid" =: _tdaHostedZoneId,
"recordname" =: _tdaRecordName,
"recordtype" =: _tdaRecordType]
data TestDNSAnswerResponse = TestDNSAnswerResponse'
{ _tdarsResponseStatus :: !Int
, _tdarsNameserver :: !Text
, _tdarsRecordName :: !Text
, _tdarsRecordType :: !RecordType
, _tdarsRecordData :: ![Text]
, _tdarsResponseCode :: !Text
, _tdarsProtocol :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
testDNSAnswerResponse
:: Int
-> Text
-> Text
-> RecordType
-> Text
-> Text
-> TestDNSAnswerResponse
testDNSAnswerResponse pResponseStatus_ pNameserver_ pRecordName_ pRecordType_ pResponseCode_ pProtocol_ =
TestDNSAnswerResponse'
{ _tdarsResponseStatus = pResponseStatus_
, _tdarsNameserver = pNameserver_
, _tdarsRecordName = pRecordName_
, _tdarsRecordType = pRecordType_
, _tdarsRecordData = mempty
, _tdarsResponseCode = pResponseCode_
, _tdarsProtocol = pProtocol_
}
tdarsResponseStatus :: Lens' TestDNSAnswerResponse Int
tdarsResponseStatus = lens _tdarsResponseStatus (\ s a -> s{_tdarsResponseStatus = a});
tdarsNameserver :: Lens' TestDNSAnswerResponse Text
tdarsNameserver = lens _tdarsNameserver (\ s a -> s{_tdarsNameserver = a});
tdarsRecordName :: Lens' TestDNSAnswerResponse Text
tdarsRecordName = lens _tdarsRecordName (\ s a -> s{_tdarsRecordName = a});
tdarsRecordType :: Lens' TestDNSAnswerResponse RecordType
tdarsRecordType = lens _tdarsRecordType (\ s a -> s{_tdarsRecordType = a});
tdarsRecordData :: Lens' TestDNSAnswerResponse [Text]
tdarsRecordData = lens _tdarsRecordData (\ s a -> s{_tdarsRecordData = a}) . _Coerce;
tdarsResponseCode :: Lens' TestDNSAnswerResponse Text
tdarsResponseCode = lens _tdarsResponseCode (\ s a -> s{_tdarsResponseCode = a});
tdarsProtocol :: Lens' TestDNSAnswerResponse Text
tdarsProtocol = lens _tdarsProtocol (\ s a -> s{_tdarsProtocol = a});
instance NFData TestDNSAnswerResponse