{-# 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.CreateTrafficPolicy
(
createTrafficPolicy
, CreateTrafficPolicy
, ctpComment
, ctpName
, ctpDocument
, createTrafficPolicyResponse
, CreateTrafficPolicyResponse
, ctprsResponseStatus
, ctprsTrafficPolicy
, ctprsLocation
) 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 CreateTrafficPolicy = CreateTrafficPolicy'
{ _ctpComment :: !(Maybe Text)
, _ctpName :: !Text
, _ctpDocument :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createTrafficPolicy
:: Text
-> Text
-> CreateTrafficPolicy
createTrafficPolicy pName_ pDocument_ =
CreateTrafficPolicy'
{_ctpComment = Nothing, _ctpName = pName_, _ctpDocument = pDocument_}
ctpComment :: Lens' CreateTrafficPolicy (Maybe Text)
ctpComment = lens _ctpComment (\ s a -> s{_ctpComment = a})
ctpName :: Lens' CreateTrafficPolicy Text
ctpName = lens _ctpName (\ s a -> s{_ctpName = a})
ctpDocument :: Lens' CreateTrafficPolicy Text
ctpDocument = lens _ctpDocument (\ s a -> s{_ctpDocument = a})
instance AWSRequest CreateTrafficPolicy where
type Rs CreateTrafficPolicy =
CreateTrafficPolicyResponse
request = postXML route53
response
= receiveXML
(\ s h x ->
CreateTrafficPolicyResponse' <$>
(pure (fromEnum s)) <*> (x .@ "TrafficPolicy") <*>
(h .# "Location"))
instance Hashable CreateTrafficPolicy where
instance NFData CreateTrafficPolicy where
instance ToElement CreateTrafficPolicy where
toElement
= mkElement
"{https://route53.amazonaws.com/doc/2013-04-01/}CreateTrafficPolicyRequest"
instance ToHeaders CreateTrafficPolicy where
toHeaders = const mempty
instance ToPath CreateTrafficPolicy where
toPath = const "/2013-04-01/trafficpolicy"
instance ToQuery CreateTrafficPolicy where
toQuery = const mempty
instance ToXML CreateTrafficPolicy where
toXML CreateTrafficPolicy'{..}
= mconcat
["Comment" @= _ctpComment, "Name" @= _ctpName,
"Document" @= _ctpDocument]
data CreateTrafficPolicyResponse = CreateTrafficPolicyResponse'
{ _ctprsResponseStatus :: !Int
, _ctprsTrafficPolicy :: !TrafficPolicy
, _ctprsLocation :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createTrafficPolicyResponse
:: Int
-> TrafficPolicy
-> Text
-> CreateTrafficPolicyResponse
createTrafficPolicyResponse pResponseStatus_ pTrafficPolicy_ pLocation_ =
CreateTrafficPolicyResponse'
{ _ctprsResponseStatus = pResponseStatus_
, _ctprsTrafficPolicy = pTrafficPolicy_
, _ctprsLocation = pLocation_
}
ctprsResponseStatus :: Lens' CreateTrafficPolicyResponse Int
ctprsResponseStatus = lens _ctprsResponseStatus (\ s a -> s{_ctprsResponseStatus = a})
ctprsTrafficPolicy :: Lens' CreateTrafficPolicyResponse TrafficPolicy
ctprsTrafficPolicy = lens _ctprsTrafficPolicy (\ s a -> s{_ctprsTrafficPolicy = a})
ctprsLocation :: Lens' CreateTrafficPolicyResponse Text
ctprsLocation = lens _ctprsLocation (\ s a -> s{_ctprsLocation = a})
instance NFData CreateTrafficPolicyResponse where