{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Route53.CreateTrafficPolicy
(
CreateTrafficPolicy (..),
newCreateTrafficPolicy,
createTrafficPolicy_comment,
createTrafficPolicy_name,
createTrafficPolicy_document,
CreateTrafficPolicyResponse (..),
newCreateTrafficPolicyResponse,
createTrafficPolicyResponse_httpStatus,
createTrafficPolicyResponse_trafficPolicy,
createTrafficPolicyResponse_location,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.Route53.Types
data CreateTrafficPolicy = CreateTrafficPolicy'
{
:: Prelude.Maybe Prelude.Text,
CreateTrafficPolicy -> Text
name :: Prelude.Text,
CreateTrafficPolicy -> Text
document :: Prelude.Text
}
deriving (CreateTrafficPolicy -> CreateTrafficPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateTrafficPolicy -> CreateTrafficPolicy -> Bool
$c/= :: CreateTrafficPolicy -> CreateTrafficPolicy -> Bool
== :: CreateTrafficPolicy -> CreateTrafficPolicy -> Bool
$c== :: CreateTrafficPolicy -> CreateTrafficPolicy -> Bool
Prelude.Eq, ReadPrec [CreateTrafficPolicy]
ReadPrec CreateTrafficPolicy
Int -> ReadS CreateTrafficPolicy
ReadS [CreateTrafficPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateTrafficPolicy]
$creadListPrec :: ReadPrec [CreateTrafficPolicy]
readPrec :: ReadPrec CreateTrafficPolicy
$creadPrec :: ReadPrec CreateTrafficPolicy
readList :: ReadS [CreateTrafficPolicy]
$creadList :: ReadS [CreateTrafficPolicy]
readsPrec :: Int -> ReadS CreateTrafficPolicy
$creadsPrec :: Int -> ReadS CreateTrafficPolicy
Prelude.Read, Int -> CreateTrafficPolicy -> ShowS
[CreateTrafficPolicy] -> ShowS
CreateTrafficPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateTrafficPolicy] -> ShowS
$cshowList :: [CreateTrafficPolicy] -> ShowS
show :: CreateTrafficPolicy -> String
$cshow :: CreateTrafficPolicy -> String
showsPrec :: Int -> CreateTrafficPolicy -> ShowS
$cshowsPrec :: Int -> CreateTrafficPolicy -> ShowS
Prelude.Show, forall x. Rep CreateTrafficPolicy x -> CreateTrafficPolicy
forall x. CreateTrafficPolicy -> Rep CreateTrafficPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateTrafficPolicy x -> CreateTrafficPolicy
$cfrom :: forall x. CreateTrafficPolicy -> Rep CreateTrafficPolicy x
Prelude.Generic)
newCreateTrafficPolicy ::
Prelude.Text ->
Prelude.Text ->
CreateTrafficPolicy
newCreateTrafficPolicy :: Text -> Text -> CreateTrafficPolicy
newCreateTrafficPolicy Text
pName_ Text
pDocument_ =
CreateTrafficPolicy'
{ $sel:comment:CreateTrafficPolicy' :: Maybe Text
comment = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateTrafficPolicy' :: Text
name = Text
pName_,
$sel:document:CreateTrafficPolicy' :: Text
document = Text
pDocument_
}
createTrafficPolicy_comment :: Lens.Lens' CreateTrafficPolicy (Prelude.Maybe Prelude.Text)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTrafficPolicy' {Maybe Text
comment :: Maybe Text
$sel:comment:CreateTrafficPolicy' :: CreateTrafficPolicy -> Maybe Text
comment} -> Maybe Text
comment) (\s :: CreateTrafficPolicy
s@CreateTrafficPolicy' {} Maybe Text
a -> CreateTrafficPolicy
s {$sel:comment:CreateTrafficPolicy' :: Maybe Text
comment = Maybe Text
a} :: CreateTrafficPolicy)
createTrafficPolicy_name :: Lens.Lens' CreateTrafficPolicy Prelude.Text
createTrafficPolicy_name :: Lens' CreateTrafficPolicy Text
createTrafficPolicy_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTrafficPolicy' {Text
name :: Text
$sel:name:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
name} -> Text
name) (\s :: CreateTrafficPolicy
s@CreateTrafficPolicy' {} Text
a -> CreateTrafficPolicy
s {$sel:name:CreateTrafficPolicy' :: Text
name = Text
a} :: CreateTrafficPolicy)
createTrafficPolicy_document :: Lens.Lens' CreateTrafficPolicy Prelude.Text
createTrafficPolicy_document :: Lens' CreateTrafficPolicy Text
createTrafficPolicy_document = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTrafficPolicy' {Text
document :: Text
$sel:document:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
document} -> Text
document) (\s :: CreateTrafficPolicy
s@CreateTrafficPolicy' {} Text
a -> CreateTrafficPolicy
s {$sel:document:CreateTrafficPolicy' :: Text
document = Text
a} :: CreateTrafficPolicy)
instance Core.AWSRequest CreateTrafficPolicy where
type
AWSResponse CreateTrafficPolicy =
CreateTrafficPolicyResponse
request :: (Service -> Service)
-> CreateTrafficPolicy -> Request CreateTrafficPolicy
request Service -> Service
overrides =
forall a. (ToRequest a, ToElement a) => Service -> a -> Request a
Request.postXML (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateTrafficPolicy
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateTrafficPolicy)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
( \Int
s ResponseHeaders
h [Node]
x ->
Int -> TrafficPolicy -> Text -> CreateTrafficPolicyResponse
CreateTrafficPolicyResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String a
Data..@ Text
"TrafficPolicy")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String a
Data..# HeaderName
"Location")
)
instance Prelude.Hashable CreateTrafficPolicy where
hashWithSalt :: Int -> CreateTrafficPolicy -> Int
hashWithSalt Int
_salt CreateTrafficPolicy' {Maybe Text
Text
document :: Text
name :: Text
comment :: Maybe Text
$sel:document:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
$sel:name:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
$sel:comment:CreateTrafficPolicy' :: CreateTrafficPolicy -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
comment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
document
instance Prelude.NFData CreateTrafficPolicy where
rnf :: CreateTrafficPolicy -> ()
rnf CreateTrafficPolicy' {Maybe Text
Text
document :: Text
name :: Text
comment :: Maybe Text
$sel:document:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
$sel:name:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
$sel:comment:CreateTrafficPolicy' :: CreateTrafficPolicy -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
comment
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
document
instance Data.ToElement CreateTrafficPolicy where
toElement :: CreateTrafficPolicy -> Element
toElement =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{https://route53.amazonaws.com/doc/2013-04-01/}CreateTrafficPolicyRequest"
instance Data.ToHeaders CreateTrafficPolicy where
toHeaders :: CreateTrafficPolicy -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath CreateTrafficPolicy where
toPath :: CreateTrafficPolicy -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/2013-04-01/trafficpolicy"
instance Data.ToQuery CreateTrafficPolicy where
toQuery :: CreateTrafficPolicy -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToXML CreateTrafficPolicy where
toXML :: CreateTrafficPolicy -> XML
toXML CreateTrafficPolicy' {Maybe Text
Text
document :: Text
name :: Text
comment :: Maybe Text
$sel:document:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
$sel:name:CreateTrafficPolicy' :: CreateTrafficPolicy -> Text
$sel:comment:CreateTrafficPolicy' :: CreateTrafficPolicy -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ Name
"Comment" forall a. ToXML a => Name -> a -> XML
Data.@= Maybe Text
comment,
Name
"Name" forall a. ToXML a => Name -> a -> XML
Data.@= Text
name,
Name
"Document" forall a. ToXML a => Name -> a -> XML
Data.@= Text
document
]
data CreateTrafficPolicyResponse = CreateTrafficPolicyResponse'
{
CreateTrafficPolicyResponse -> Int
httpStatus :: Prelude.Int,
CreateTrafficPolicyResponse -> TrafficPolicy
trafficPolicy :: TrafficPolicy,
CreateTrafficPolicyResponse -> Text
location :: Prelude.Text
}
deriving (CreateTrafficPolicyResponse -> CreateTrafficPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateTrafficPolicyResponse -> CreateTrafficPolicyResponse -> Bool
$c/= :: CreateTrafficPolicyResponse -> CreateTrafficPolicyResponse -> Bool
== :: CreateTrafficPolicyResponse -> CreateTrafficPolicyResponse -> Bool
$c== :: CreateTrafficPolicyResponse -> CreateTrafficPolicyResponse -> Bool
Prelude.Eq, ReadPrec [CreateTrafficPolicyResponse]
ReadPrec CreateTrafficPolicyResponse
Int -> ReadS CreateTrafficPolicyResponse
ReadS [CreateTrafficPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateTrafficPolicyResponse]
$creadListPrec :: ReadPrec [CreateTrafficPolicyResponse]
readPrec :: ReadPrec CreateTrafficPolicyResponse
$creadPrec :: ReadPrec CreateTrafficPolicyResponse
readList :: ReadS [CreateTrafficPolicyResponse]
$creadList :: ReadS [CreateTrafficPolicyResponse]
readsPrec :: Int -> ReadS CreateTrafficPolicyResponse
$creadsPrec :: Int -> ReadS CreateTrafficPolicyResponse
Prelude.Read, Int -> CreateTrafficPolicyResponse -> ShowS
[CreateTrafficPolicyResponse] -> ShowS
CreateTrafficPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateTrafficPolicyResponse] -> ShowS
$cshowList :: [CreateTrafficPolicyResponse] -> ShowS
show :: CreateTrafficPolicyResponse -> String
$cshow :: CreateTrafficPolicyResponse -> String
showsPrec :: Int -> CreateTrafficPolicyResponse -> ShowS
$cshowsPrec :: Int -> CreateTrafficPolicyResponse -> ShowS
Prelude.Show, forall x.
Rep CreateTrafficPolicyResponse x -> CreateTrafficPolicyResponse
forall x.
CreateTrafficPolicyResponse -> Rep CreateTrafficPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateTrafficPolicyResponse x -> CreateTrafficPolicyResponse
$cfrom :: forall x.
CreateTrafficPolicyResponse -> Rep CreateTrafficPolicyResponse x
Prelude.Generic)
newCreateTrafficPolicyResponse ::
Prelude.Int ->
TrafficPolicy ->
Prelude.Text ->
CreateTrafficPolicyResponse
newCreateTrafficPolicyResponse :: Int -> TrafficPolicy -> Text -> CreateTrafficPolicyResponse
newCreateTrafficPolicyResponse
Int
pHttpStatus_
TrafficPolicy
pTrafficPolicy_
Text
pLocation_ =
CreateTrafficPolicyResponse'
{ $sel:httpStatus:CreateTrafficPolicyResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:trafficPolicy:CreateTrafficPolicyResponse' :: TrafficPolicy
trafficPolicy = TrafficPolicy
pTrafficPolicy_,
$sel:location:CreateTrafficPolicyResponse' :: Text
location = Text
pLocation_
}
createTrafficPolicyResponse_httpStatus :: Lens.Lens' CreateTrafficPolicyResponse Prelude.Int
createTrafficPolicyResponse_httpStatus :: Lens' CreateTrafficPolicyResponse Int
createTrafficPolicyResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTrafficPolicyResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateTrafficPolicyResponse' :: CreateTrafficPolicyResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateTrafficPolicyResponse
s@CreateTrafficPolicyResponse' {} Int
a -> CreateTrafficPolicyResponse
s {$sel:httpStatus:CreateTrafficPolicyResponse' :: Int
httpStatus = Int
a} :: CreateTrafficPolicyResponse)
createTrafficPolicyResponse_trafficPolicy :: Lens.Lens' CreateTrafficPolicyResponse TrafficPolicy
createTrafficPolicyResponse_trafficPolicy :: Lens' CreateTrafficPolicyResponse TrafficPolicy
createTrafficPolicyResponse_trafficPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTrafficPolicyResponse' {TrafficPolicy
trafficPolicy :: TrafficPolicy
$sel:trafficPolicy:CreateTrafficPolicyResponse' :: CreateTrafficPolicyResponse -> TrafficPolicy
trafficPolicy} -> TrafficPolicy
trafficPolicy) (\s :: CreateTrafficPolicyResponse
s@CreateTrafficPolicyResponse' {} TrafficPolicy
a -> CreateTrafficPolicyResponse
s {$sel:trafficPolicy:CreateTrafficPolicyResponse' :: TrafficPolicy
trafficPolicy = TrafficPolicy
a} :: CreateTrafficPolicyResponse)
createTrafficPolicyResponse_location :: Lens.Lens' CreateTrafficPolicyResponse Prelude.Text
createTrafficPolicyResponse_location :: Lens' CreateTrafficPolicyResponse Text
createTrafficPolicyResponse_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTrafficPolicyResponse' {Text
location :: Text
$sel:location:CreateTrafficPolicyResponse' :: CreateTrafficPolicyResponse -> Text
location} -> Text
location) (\s :: CreateTrafficPolicyResponse
s@CreateTrafficPolicyResponse' {} Text
a -> CreateTrafficPolicyResponse
s {$sel:location:CreateTrafficPolicyResponse' :: Text
location = Text
a} :: CreateTrafficPolicyResponse)
instance Prelude.NFData CreateTrafficPolicyResponse where
rnf :: CreateTrafficPolicyResponse -> ()
rnf CreateTrafficPolicyResponse' {Int
Text
TrafficPolicy
location :: Text
trafficPolicy :: TrafficPolicy
httpStatus :: Int
$sel:location:CreateTrafficPolicyResponse' :: CreateTrafficPolicyResponse -> Text
$sel:trafficPolicy:CreateTrafficPolicyResponse' :: CreateTrafficPolicyResponse -> TrafficPolicy
$sel:httpStatus:CreateTrafficPolicyResponse' :: CreateTrafficPolicyResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TrafficPolicy
trafficPolicy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
location