{-# 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.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 :: !ResourceId
, _ctpiName :: !Text
, _ctpiTTL :: !Nat
, _ctpiTrafficPolicyId :: !Text
, _ctpiTrafficPolicyVersion :: !Nat
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createTrafficPolicyInstance
:: ResourceId
-> 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 ResourceId
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 where
instance NFData CreateTrafficPolicyInstance where
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
where