module Network.AWS.Route53.CreateTrafficPolicyInstance
(
createTrafficPolicyInstance
, CreateTrafficPolicyInstance
, ctpiHostedZoneId
, ctpiName
, ctpiTTL
, ctpiTrafficPolicyId
, ctpiTrafficPolicyVersion
, createTrafficPolicyInstanceResponse
, CreateTrafficPolicyInstanceResponse
, ctpirsResponseStatus
, ctpirsTrafficPolicyInstance
, ctpirsLocation
) 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 CreateTrafficPolicyInstance = CreateTrafficPolicyInstance'
{ _ctpiHostedZoneId :: !Text
, _ctpiName :: !Text
, _ctpiTTL :: !Nat
, _ctpiTrafficPolicyId :: !Text
, _ctpiTrafficPolicyVersion :: !Nat
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createTrafficPolicyInstance
:: Text
-> Text
-> Natural
-> Text
-> Natural
-> CreateTrafficPolicyInstance
createTrafficPolicyInstance pHostedZoneId_ pName_ pTTL_ pTrafficPolicyId_ pTrafficPolicyVersion_ =
CreateTrafficPolicyInstance'
{ _ctpiHostedZoneId = pHostedZoneId_
, _ctpiName = pName_
, _ctpiTTL = _Nat # pTTL_
, _ctpiTrafficPolicyId = pTrafficPolicyId_
, _ctpiTrafficPolicyVersion = _Nat # pTrafficPolicyVersion_
}
ctpiHostedZoneId :: Lens' CreateTrafficPolicyInstance Text
ctpiHostedZoneId = lens _ctpiHostedZoneId (\ s a -> s{_ctpiHostedZoneId = a});
ctpiName :: Lens' CreateTrafficPolicyInstance Text
ctpiName = lens _ctpiName (\ s a -> s{_ctpiName = a});
ctpiTTL :: Lens' CreateTrafficPolicyInstance Natural
ctpiTTL = lens _ctpiTTL (\ s a -> s{_ctpiTTL = a}) . _Nat;
ctpiTrafficPolicyId :: Lens' CreateTrafficPolicyInstance Text
ctpiTrafficPolicyId = lens _ctpiTrafficPolicyId (\ s a -> s{_ctpiTrafficPolicyId = a});
ctpiTrafficPolicyVersion :: Lens' CreateTrafficPolicyInstance Natural
ctpiTrafficPolicyVersion = lens _ctpiTrafficPolicyVersion (\ s a -> s{_ctpiTrafficPolicyVersion = a}) . _Nat;
instance AWSRequest CreateTrafficPolicyInstance where
type Rs CreateTrafficPolicyInstance =
CreateTrafficPolicyInstanceResponse
request = postXML route53
response
= receiveXML
(\ s h x ->
CreateTrafficPolicyInstanceResponse' <$>
(pure (fromEnum s)) <*>
(x .@ "TrafficPolicyInstance")
<*> (h .# "Location"))
instance Hashable CreateTrafficPolicyInstance
instance NFData CreateTrafficPolicyInstance
instance ToElement CreateTrafficPolicyInstance where
toElement
= mkElement
"{https://route53.amazonaws.com/doc/2013-04-01/}CreateTrafficPolicyInstanceRequest"
instance ToHeaders CreateTrafficPolicyInstance where
toHeaders = const mempty
instance ToPath CreateTrafficPolicyInstance where
toPath = const "/2013-04-01/trafficpolicyinstance"
instance ToQuery CreateTrafficPolicyInstance where
toQuery = const mempty
instance ToXML CreateTrafficPolicyInstance where
toXML CreateTrafficPolicyInstance'{..}
= mconcat
["HostedZoneId" @= _ctpiHostedZoneId,
"Name" @= _ctpiName, "TTL" @= _ctpiTTL,
"TrafficPolicyId" @= _ctpiTrafficPolicyId,
"TrafficPolicyVersion" @= _ctpiTrafficPolicyVersion]
data CreateTrafficPolicyInstanceResponse = CreateTrafficPolicyInstanceResponse'
{ _ctpirsResponseStatus :: !Int
, _ctpirsTrafficPolicyInstance :: !TrafficPolicyInstance
, _ctpirsLocation :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createTrafficPolicyInstanceResponse
:: Int
-> TrafficPolicyInstance
-> Text
-> CreateTrafficPolicyInstanceResponse
createTrafficPolicyInstanceResponse pResponseStatus_ pTrafficPolicyInstance_ pLocation_ =
CreateTrafficPolicyInstanceResponse'
{ _ctpirsResponseStatus = pResponseStatus_
, _ctpirsTrafficPolicyInstance = pTrafficPolicyInstance_
, _ctpirsLocation = pLocation_
}
ctpirsResponseStatus :: Lens' CreateTrafficPolicyInstanceResponse Int
ctpirsResponseStatus = lens _ctpirsResponseStatus (\ s a -> s{_ctpirsResponseStatus = a});
ctpirsTrafficPolicyInstance :: Lens' CreateTrafficPolicyInstanceResponse TrafficPolicyInstance
ctpirsTrafficPolicyInstance = lens _ctpirsTrafficPolicyInstance (\ s a -> s{_ctpirsTrafficPolicyInstance = a});
ctpirsLocation :: Lens' CreateTrafficPolicyInstanceResponse Text
ctpirsLocation = lens _ctpirsLocation (\ s a -> s{_ctpirsLocation = a});
instance NFData CreateTrafficPolicyInstanceResponse