{-# 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.Route53Resolver.AssociateResolverEndpointIpAddress
(
AssociateResolverEndpointIpAddress (..),
newAssociateResolverEndpointIpAddress,
associateResolverEndpointIpAddress_resolverEndpointId,
associateResolverEndpointIpAddress_ipAddress,
AssociateResolverEndpointIpAddressResponse (..),
newAssociateResolverEndpointIpAddressResponse,
associateResolverEndpointIpAddressResponse_resolverEndpoint,
associateResolverEndpointIpAddressResponse_httpStatus,
)
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.Route53Resolver.Types
data AssociateResolverEndpointIpAddress = AssociateResolverEndpointIpAddress'
{
AssociateResolverEndpointIpAddress -> Text
resolverEndpointId :: Prelude.Text,
AssociateResolverEndpointIpAddress -> IpAddressUpdate
ipAddress :: IpAddressUpdate
}
deriving (AssociateResolverEndpointIpAddress
-> AssociateResolverEndpointIpAddress -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociateResolverEndpointIpAddress
-> AssociateResolverEndpointIpAddress -> Bool
$c/= :: AssociateResolverEndpointIpAddress
-> AssociateResolverEndpointIpAddress -> Bool
== :: AssociateResolverEndpointIpAddress
-> AssociateResolverEndpointIpAddress -> Bool
$c== :: AssociateResolverEndpointIpAddress
-> AssociateResolverEndpointIpAddress -> Bool
Prelude.Eq, ReadPrec [AssociateResolverEndpointIpAddress]
ReadPrec AssociateResolverEndpointIpAddress
Int -> ReadS AssociateResolverEndpointIpAddress
ReadS [AssociateResolverEndpointIpAddress]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssociateResolverEndpointIpAddress]
$creadListPrec :: ReadPrec [AssociateResolverEndpointIpAddress]
readPrec :: ReadPrec AssociateResolverEndpointIpAddress
$creadPrec :: ReadPrec AssociateResolverEndpointIpAddress
readList :: ReadS [AssociateResolverEndpointIpAddress]
$creadList :: ReadS [AssociateResolverEndpointIpAddress]
readsPrec :: Int -> ReadS AssociateResolverEndpointIpAddress
$creadsPrec :: Int -> ReadS AssociateResolverEndpointIpAddress
Prelude.Read, Int -> AssociateResolverEndpointIpAddress -> ShowS
[AssociateResolverEndpointIpAddress] -> ShowS
AssociateResolverEndpointIpAddress -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociateResolverEndpointIpAddress] -> ShowS
$cshowList :: [AssociateResolverEndpointIpAddress] -> ShowS
show :: AssociateResolverEndpointIpAddress -> String
$cshow :: AssociateResolverEndpointIpAddress -> String
showsPrec :: Int -> AssociateResolverEndpointIpAddress -> ShowS
$cshowsPrec :: Int -> AssociateResolverEndpointIpAddress -> ShowS
Prelude.Show, forall x.
Rep AssociateResolverEndpointIpAddress x
-> AssociateResolverEndpointIpAddress
forall x.
AssociateResolverEndpointIpAddress
-> Rep AssociateResolverEndpointIpAddress x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AssociateResolverEndpointIpAddress x
-> AssociateResolverEndpointIpAddress
$cfrom :: forall x.
AssociateResolverEndpointIpAddress
-> Rep AssociateResolverEndpointIpAddress x
Prelude.Generic)
newAssociateResolverEndpointIpAddress ::
Prelude.Text ->
IpAddressUpdate ->
AssociateResolverEndpointIpAddress
newAssociateResolverEndpointIpAddress :: Text -> IpAddressUpdate -> AssociateResolverEndpointIpAddress
newAssociateResolverEndpointIpAddress
Text
pResolverEndpointId_
IpAddressUpdate
pIpAddress_ =
AssociateResolverEndpointIpAddress'
{ $sel:resolverEndpointId:AssociateResolverEndpointIpAddress' :: Text
resolverEndpointId =
Text
pResolverEndpointId_,
$sel:ipAddress:AssociateResolverEndpointIpAddress' :: IpAddressUpdate
ipAddress = IpAddressUpdate
pIpAddress_
}
associateResolverEndpointIpAddress_resolverEndpointId :: Lens.Lens' AssociateResolverEndpointIpAddress Prelude.Text
associateResolverEndpointIpAddress_resolverEndpointId :: Lens' AssociateResolverEndpointIpAddress Text
associateResolverEndpointIpAddress_resolverEndpointId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateResolverEndpointIpAddress' {Text
resolverEndpointId :: Text
$sel:resolverEndpointId:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> Text
resolverEndpointId} -> Text
resolverEndpointId) (\s :: AssociateResolverEndpointIpAddress
s@AssociateResolverEndpointIpAddress' {} Text
a -> AssociateResolverEndpointIpAddress
s {$sel:resolverEndpointId:AssociateResolverEndpointIpAddress' :: Text
resolverEndpointId = Text
a} :: AssociateResolverEndpointIpAddress)
associateResolverEndpointIpAddress_ipAddress :: Lens.Lens' AssociateResolverEndpointIpAddress IpAddressUpdate
associateResolverEndpointIpAddress_ipAddress :: Lens' AssociateResolverEndpointIpAddress IpAddressUpdate
associateResolverEndpointIpAddress_ipAddress = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateResolverEndpointIpAddress' {IpAddressUpdate
ipAddress :: IpAddressUpdate
$sel:ipAddress:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> IpAddressUpdate
ipAddress} -> IpAddressUpdate
ipAddress) (\s :: AssociateResolverEndpointIpAddress
s@AssociateResolverEndpointIpAddress' {} IpAddressUpdate
a -> AssociateResolverEndpointIpAddress
s {$sel:ipAddress:AssociateResolverEndpointIpAddress' :: IpAddressUpdate
ipAddress = IpAddressUpdate
a} :: AssociateResolverEndpointIpAddress)
instance
Core.AWSRequest
AssociateResolverEndpointIpAddress
where
type
AWSResponse AssociateResolverEndpointIpAddress =
AssociateResolverEndpointIpAddressResponse
request :: (Service -> Service)
-> AssociateResolverEndpointIpAddress
-> Request AssociateResolverEndpointIpAddress
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy AssociateResolverEndpointIpAddress
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse (AWSResponse AssociateResolverEndpointIpAddress)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe ResolverEndpoint
-> Int -> AssociateResolverEndpointIpAddressResponse
AssociateResolverEndpointIpAddressResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ResolverEndpoint")
forall (f :: * -> *) a b. Applicative f => 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))
)
instance
Prelude.Hashable
AssociateResolverEndpointIpAddress
where
hashWithSalt :: Int -> AssociateResolverEndpointIpAddress -> Int
hashWithSalt
Int
_salt
AssociateResolverEndpointIpAddress' {Text
IpAddressUpdate
ipAddress :: IpAddressUpdate
resolverEndpointId :: Text
$sel:ipAddress:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> IpAddressUpdate
$sel:resolverEndpointId:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resolverEndpointId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` IpAddressUpdate
ipAddress
instance
Prelude.NFData
AssociateResolverEndpointIpAddress
where
rnf :: AssociateResolverEndpointIpAddress -> ()
rnf AssociateResolverEndpointIpAddress' {Text
IpAddressUpdate
ipAddress :: IpAddressUpdate
resolverEndpointId :: Text
$sel:ipAddress:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> IpAddressUpdate
$sel:resolverEndpointId:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
resolverEndpointId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf IpAddressUpdate
ipAddress
instance
Data.ToHeaders
AssociateResolverEndpointIpAddress
where
toHeaders :: AssociateResolverEndpointIpAddress -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"Route53Resolver.AssociateResolverEndpointIpAddress" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance
Data.ToJSON
AssociateResolverEndpointIpAddress
where
toJSON :: AssociateResolverEndpointIpAddress -> Value
toJSON AssociateResolverEndpointIpAddress' {Text
IpAddressUpdate
ipAddress :: IpAddressUpdate
resolverEndpointId :: Text
$sel:ipAddress:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> IpAddressUpdate
$sel:resolverEndpointId:AssociateResolverEndpointIpAddress' :: AssociateResolverEndpointIpAddress -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"ResolverEndpointId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resolverEndpointId),
forall a. a -> Maybe a
Prelude.Just (Key
"IpAddress" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= IpAddressUpdate
ipAddress)
]
)
instance
Data.ToPath
AssociateResolverEndpointIpAddress
where
toPath :: AssociateResolverEndpointIpAddress -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance
Data.ToQuery
AssociateResolverEndpointIpAddress
where
toQuery :: AssociateResolverEndpointIpAddress -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data AssociateResolverEndpointIpAddressResponse = AssociateResolverEndpointIpAddressResponse'
{
AssociateResolverEndpointIpAddressResponse
-> Maybe ResolverEndpoint
resolverEndpoint :: Prelude.Maybe ResolverEndpoint,
AssociateResolverEndpointIpAddressResponse -> Int
httpStatus :: Prelude.Int
}
deriving (AssociateResolverEndpointIpAddressResponse
-> AssociateResolverEndpointIpAddressResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AssociateResolverEndpointIpAddressResponse
-> AssociateResolverEndpointIpAddressResponse -> Bool
$c/= :: AssociateResolverEndpointIpAddressResponse
-> AssociateResolverEndpointIpAddressResponse -> Bool
== :: AssociateResolverEndpointIpAddressResponse
-> AssociateResolverEndpointIpAddressResponse -> Bool
$c== :: AssociateResolverEndpointIpAddressResponse
-> AssociateResolverEndpointIpAddressResponse -> Bool
Prelude.Eq, ReadPrec [AssociateResolverEndpointIpAddressResponse]
ReadPrec AssociateResolverEndpointIpAddressResponse
Int -> ReadS AssociateResolverEndpointIpAddressResponse
ReadS [AssociateResolverEndpointIpAddressResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AssociateResolverEndpointIpAddressResponse]
$creadListPrec :: ReadPrec [AssociateResolverEndpointIpAddressResponse]
readPrec :: ReadPrec AssociateResolverEndpointIpAddressResponse
$creadPrec :: ReadPrec AssociateResolverEndpointIpAddressResponse
readList :: ReadS [AssociateResolverEndpointIpAddressResponse]
$creadList :: ReadS [AssociateResolverEndpointIpAddressResponse]
readsPrec :: Int -> ReadS AssociateResolverEndpointIpAddressResponse
$creadsPrec :: Int -> ReadS AssociateResolverEndpointIpAddressResponse
Prelude.Read, Int -> AssociateResolverEndpointIpAddressResponse -> ShowS
[AssociateResolverEndpointIpAddressResponse] -> ShowS
AssociateResolverEndpointIpAddressResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AssociateResolverEndpointIpAddressResponse] -> ShowS
$cshowList :: [AssociateResolverEndpointIpAddressResponse] -> ShowS
show :: AssociateResolverEndpointIpAddressResponse -> String
$cshow :: AssociateResolverEndpointIpAddressResponse -> String
showsPrec :: Int -> AssociateResolverEndpointIpAddressResponse -> ShowS
$cshowsPrec :: Int -> AssociateResolverEndpointIpAddressResponse -> ShowS
Prelude.Show, forall x.
Rep AssociateResolverEndpointIpAddressResponse x
-> AssociateResolverEndpointIpAddressResponse
forall x.
AssociateResolverEndpointIpAddressResponse
-> Rep AssociateResolverEndpointIpAddressResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AssociateResolverEndpointIpAddressResponse x
-> AssociateResolverEndpointIpAddressResponse
$cfrom :: forall x.
AssociateResolverEndpointIpAddressResponse
-> Rep AssociateResolverEndpointIpAddressResponse x
Prelude.Generic)
newAssociateResolverEndpointIpAddressResponse ::
Prelude.Int ->
AssociateResolverEndpointIpAddressResponse
newAssociateResolverEndpointIpAddressResponse :: Int -> AssociateResolverEndpointIpAddressResponse
newAssociateResolverEndpointIpAddressResponse
Int
pHttpStatus_ =
AssociateResolverEndpointIpAddressResponse'
{ $sel:resolverEndpoint:AssociateResolverEndpointIpAddressResponse' :: Maybe ResolverEndpoint
resolverEndpoint =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:AssociateResolverEndpointIpAddressResponse' :: Int
httpStatus = Int
pHttpStatus_
}
associateResolverEndpointIpAddressResponse_resolverEndpoint :: Lens.Lens' AssociateResolverEndpointIpAddressResponse (Prelude.Maybe ResolverEndpoint)
associateResolverEndpointIpAddressResponse_resolverEndpoint :: Lens'
AssociateResolverEndpointIpAddressResponse (Maybe ResolverEndpoint)
associateResolverEndpointIpAddressResponse_resolverEndpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateResolverEndpointIpAddressResponse' {Maybe ResolverEndpoint
resolverEndpoint :: Maybe ResolverEndpoint
$sel:resolverEndpoint:AssociateResolverEndpointIpAddressResponse' :: AssociateResolverEndpointIpAddressResponse
-> Maybe ResolverEndpoint
resolverEndpoint} -> Maybe ResolverEndpoint
resolverEndpoint) (\s :: AssociateResolverEndpointIpAddressResponse
s@AssociateResolverEndpointIpAddressResponse' {} Maybe ResolverEndpoint
a -> AssociateResolverEndpointIpAddressResponse
s {$sel:resolverEndpoint:AssociateResolverEndpointIpAddressResponse' :: Maybe ResolverEndpoint
resolverEndpoint = Maybe ResolverEndpoint
a} :: AssociateResolverEndpointIpAddressResponse)
associateResolverEndpointIpAddressResponse_httpStatus :: Lens.Lens' AssociateResolverEndpointIpAddressResponse Prelude.Int
associateResolverEndpointIpAddressResponse_httpStatus :: Lens' AssociateResolverEndpointIpAddressResponse Int
associateResolverEndpointIpAddressResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AssociateResolverEndpointIpAddressResponse' {Int
httpStatus :: Int
$sel:httpStatus:AssociateResolverEndpointIpAddressResponse' :: AssociateResolverEndpointIpAddressResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: AssociateResolverEndpointIpAddressResponse
s@AssociateResolverEndpointIpAddressResponse' {} Int
a -> AssociateResolverEndpointIpAddressResponse
s {$sel:httpStatus:AssociateResolverEndpointIpAddressResponse' :: Int
httpStatus = Int
a} :: AssociateResolverEndpointIpAddressResponse)
instance
Prelude.NFData
AssociateResolverEndpointIpAddressResponse
where
rnf :: AssociateResolverEndpointIpAddressResponse -> ()
rnf AssociateResolverEndpointIpAddressResponse' {Int
Maybe ResolverEndpoint
httpStatus :: Int
resolverEndpoint :: Maybe ResolverEndpoint
$sel:httpStatus:AssociateResolverEndpointIpAddressResponse' :: AssociateResolverEndpointIpAddressResponse -> Int
$sel:resolverEndpoint:AssociateResolverEndpointIpAddressResponse' :: AssociateResolverEndpointIpAddressResponse
-> Maybe ResolverEndpoint
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ResolverEndpoint
resolverEndpoint
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus