{-# 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.EC2.EnableAddressTransfer
(
EnableAddressTransfer (..),
newEnableAddressTransfer,
enableAddressTransfer_dryRun,
enableAddressTransfer_allocationId,
enableAddressTransfer_transferAccountId,
EnableAddressTransferResponse (..),
newEnableAddressTransferResponse,
enableAddressTransferResponse_addressTransfer,
enableAddressTransferResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EC2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data EnableAddressTransfer = EnableAddressTransfer'
{
EnableAddressTransfer -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
EnableAddressTransfer -> Text
allocationId :: Prelude.Text,
EnableAddressTransfer -> Text
transferAccountId :: Prelude.Text
}
deriving (EnableAddressTransfer -> EnableAddressTransfer -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnableAddressTransfer -> EnableAddressTransfer -> Bool
$c/= :: EnableAddressTransfer -> EnableAddressTransfer -> Bool
== :: EnableAddressTransfer -> EnableAddressTransfer -> Bool
$c== :: EnableAddressTransfer -> EnableAddressTransfer -> Bool
Prelude.Eq, ReadPrec [EnableAddressTransfer]
ReadPrec EnableAddressTransfer
Int -> ReadS EnableAddressTransfer
ReadS [EnableAddressTransfer]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EnableAddressTransfer]
$creadListPrec :: ReadPrec [EnableAddressTransfer]
readPrec :: ReadPrec EnableAddressTransfer
$creadPrec :: ReadPrec EnableAddressTransfer
readList :: ReadS [EnableAddressTransfer]
$creadList :: ReadS [EnableAddressTransfer]
readsPrec :: Int -> ReadS EnableAddressTransfer
$creadsPrec :: Int -> ReadS EnableAddressTransfer
Prelude.Read, Int -> EnableAddressTransfer -> ShowS
[EnableAddressTransfer] -> ShowS
EnableAddressTransfer -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EnableAddressTransfer] -> ShowS
$cshowList :: [EnableAddressTransfer] -> ShowS
show :: EnableAddressTransfer -> String
$cshow :: EnableAddressTransfer -> String
showsPrec :: Int -> EnableAddressTransfer -> ShowS
$cshowsPrec :: Int -> EnableAddressTransfer -> ShowS
Prelude.Show, forall x. Rep EnableAddressTransfer x -> EnableAddressTransfer
forall x. EnableAddressTransfer -> Rep EnableAddressTransfer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EnableAddressTransfer x -> EnableAddressTransfer
$cfrom :: forall x. EnableAddressTransfer -> Rep EnableAddressTransfer x
Prelude.Generic)
newEnableAddressTransfer ::
Prelude.Text ->
Prelude.Text ->
EnableAddressTransfer
newEnableAddressTransfer :: Text -> Text -> EnableAddressTransfer
newEnableAddressTransfer
Text
pAllocationId_
Text
pTransferAccountId_ =
EnableAddressTransfer'
{ $sel:dryRun:EnableAddressTransfer' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
$sel:allocationId:EnableAddressTransfer' :: Text
allocationId = Text
pAllocationId_,
$sel:transferAccountId:EnableAddressTransfer' :: Text
transferAccountId = Text
pTransferAccountId_
}
enableAddressTransfer_dryRun :: Lens.Lens' EnableAddressTransfer (Prelude.Maybe Prelude.Bool)
enableAddressTransfer_dryRun :: Lens' EnableAddressTransfer (Maybe Bool)
enableAddressTransfer_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableAddressTransfer' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:EnableAddressTransfer' :: EnableAddressTransfer -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: EnableAddressTransfer
s@EnableAddressTransfer' {} Maybe Bool
a -> EnableAddressTransfer
s {$sel:dryRun:EnableAddressTransfer' :: Maybe Bool
dryRun = Maybe Bool
a} :: EnableAddressTransfer)
enableAddressTransfer_allocationId :: Lens.Lens' EnableAddressTransfer Prelude.Text
enableAddressTransfer_allocationId :: Lens' EnableAddressTransfer Text
enableAddressTransfer_allocationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableAddressTransfer' {Text
allocationId :: Text
$sel:allocationId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
allocationId} -> Text
allocationId) (\s :: EnableAddressTransfer
s@EnableAddressTransfer' {} Text
a -> EnableAddressTransfer
s {$sel:allocationId:EnableAddressTransfer' :: Text
allocationId = Text
a} :: EnableAddressTransfer)
enableAddressTransfer_transferAccountId :: Lens.Lens' EnableAddressTransfer Prelude.Text
enableAddressTransfer_transferAccountId :: Lens' EnableAddressTransfer Text
enableAddressTransfer_transferAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableAddressTransfer' {Text
transferAccountId :: Text
$sel:transferAccountId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
transferAccountId} -> Text
transferAccountId) (\s :: EnableAddressTransfer
s@EnableAddressTransfer' {} Text
a -> EnableAddressTransfer
s {$sel:transferAccountId:EnableAddressTransfer' :: Text
transferAccountId = Text
a} :: EnableAddressTransfer)
instance Core.AWSRequest EnableAddressTransfer where
type
AWSResponse EnableAddressTransfer =
EnableAddressTransferResponse
request :: (Service -> Service)
-> EnableAddressTransfer -> Request EnableAddressTransfer
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy EnableAddressTransfer
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse EnableAddressTransfer)))
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 ->
Maybe AddressTransfer -> Int -> EnableAddressTransferResponse
EnableAddressTransferResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"addressTransfer")
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 EnableAddressTransfer where
hashWithSalt :: Int -> EnableAddressTransfer -> Int
hashWithSalt Int
_salt EnableAddressTransfer' {Maybe Bool
Text
transferAccountId :: Text
allocationId :: Text
dryRun :: Maybe Bool
$sel:transferAccountId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
$sel:allocationId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
$sel:dryRun:EnableAddressTransfer' :: EnableAddressTransfer -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
allocationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
transferAccountId
instance Prelude.NFData EnableAddressTransfer where
rnf :: EnableAddressTransfer -> ()
rnf EnableAddressTransfer' {Maybe Bool
Text
transferAccountId :: Text
allocationId :: Text
dryRun :: Maybe Bool
$sel:transferAccountId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
$sel:allocationId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
$sel:dryRun:EnableAddressTransfer' :: EnableAddressTransfer -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
dryRun
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
allocationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
transferAccountId
instance Data.ToHeaders EnableAddressTransfer where
toHeaders :: EnableAddressTransfer -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath EnableAddressTransfer where
toPath :: EnableAddressTransfer -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery EnableAddressTransfer where
toQuery :: EnableAddressTransfer -> QueryString
toQuery EnableAddressTransfer' {Maybe Bool
Text
transferAccountId :: Text
allocationId :: Text
dryRun :: Maybe Bool
$sel:transferAccountId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
$sel:allocationId:EnableAddressTransfer' :: EnableAddressTransfer -> Text
$sel:dryRun:EnableAddressTransfer' :: EnableAddressTransfer -> Maybe Bool
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"EnableAddressTransfer" :: Prelude.ByteString),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
ByteString
"AllocationId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
allocationId,
ByteString
"TransferAccountId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
transferAccountId
]
data EnableAddressTransferResponse = EnableAddressTransferResponse'
{
EnableAddressTransferResponse -> Maybe AddressTransfer
addressTransfer :: Prelude.Maybe AddressTransfer,
EnableAddressTransferResponse -> Int
httpStatus :: Prelude.Int
}
deriving (EnableAddressTransferResponse
-> EnableAddressTransferResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnableAddressTransferResponse
-> EnableAddressTransferResponse -> Bool
$c/= :: EnableAddressTransferResponse
-> EnableAddressTransferResponse -> Bool
== :: EnableAddressTransferResponse
-> EnableAddressTransferResponse -> Bool
$c== :: EnableAddressTransferResponse
-> EnableAddressTransferResponse -> Bool
Prelude.Eq, ReadPrec [EnableAddressTransferResponse]
ReadPrec EnableAddressTransferResponse
Int -> ReadS EnableAddressTransferResponse
ReadS [EnableAddressTransferResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EnableAddressTransferResponse]
$creadListPrec :: ReadPrec [EnableAddressTransferResponse]
readPrec :: ReadPrec EnableAddressTransferResponse
$creadPrec :: ReadPrec EnableAddressTransferResponse
readList :: ReadS [EnableAddressTransferResponse]
$creadList :: ReadS [EnableAddressTransferResponse]
readsPrec :: Int -> ReadS EnableAddressTransferResponse
$creadsPrec :: Int -> ReadS EnableAddressTransferResponse
Prelude.Read, Int -> EnableAddressTransferResponse -> ShowS
[EnableAddressTransferResponse] -> ShowS
EnableAddressTransferResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EnableAddressTransferResponse] -> ShowS
$cshowList :: [EnableAddressTransferResponse] -> ShowS
show :: EnableAddressTransferResponse -> String
$cshow :: EnableAddressTransferResponse -> String
showsPrec :: Int -> EnableAddressTransferResponse -> ShowS
$cshowsPrec :: Int -> EnableAddressTransferResponse -> ShowS
Prelude.Show, forall x.
Rep EnableAddressTransferResponse x
-> EnableAddressTransferResponse
forall x.
EnableAddressTransferResponse
-> Rep EnableAddressTransferResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EnableAddressTransferResponse x
-> EnableAddressTransferResponse
$cfrom :: forall x.
EnableAddressTransferResponse
-> Rep EnableAddressTransferResponse x
Prelude.Generic)
newEnableAddressTransferResponse ::
Prelude.Int ->
EnableAddressTransferResponse
newEnableAddressTransferResponse :: Int -> EnableAddressTransferResponse
newEnableAddressTransferResponse Int
pHttpStatus_ =
EnableAddressTransferResponse'
{ $sel:addressTransfer:EnableAddressTransferResponse' :: Maybe AddressTransfer
addressTransfer =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:EnableAddressTransferResponse' :: Int
httpStatus = Int
pHttpStatus_
}
enableAddressTransferResponse_addressTransfer :: Lens.Lens' EnableAddressTransferResponse (Prelude.Maybe AddressTransfer)
enableAddressTransferResponse_addressTransfer :: Lens' EnableAddressTransferResponse (Maybe AddressTransfer)
enableAddressTransferResponse_addressTransfer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableAddressTransferResponse' {Maybe AddressTransfer
addressTransfer :: Maybe AddressTransfer
$sel:addressTransfer:EnableAddressTransferResponse' :: EnableAddressTransferResponse -> Maybe AddressTransfer
addressTransfer} -> Maybe AddressTransfer
addressTransfer) (\s :: EnableAddressTransferResponse
s@EnableAddressTransferResponse' {} Maybe AddressTransfer
a -> EnableAddressTransferResponse
s {$sel:addressTransfer:EnableAddressTransferResponse' :: Maybe AddressTransfer
addressTransfer = Maybe AddressTransfer
a} :: EnableAddressTransferResponse)
enableAddressTransferResponse_httpStatus :: Lens.Lens' EnableAddressTransferResponse Prelude.Int
enableAddressTransferResponse_httpStatus :: Lens' EnableAddressTransferResponse Int
enableAddressTransferResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnableAddressTransferResponse' {Int
httpStatus :: Int
$sel:httpStatus:EnableAddressTransferResponse' :: EnableAddressTransferResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: EnableAddressTransferResponse
s@EnableAddressTransferResponse' {} Int
a -> EnableAddressTransferResponse
s {$sel:httpStatus:EnableAddressTransferResponse' :: Int
httpStatus = Int
a} :: EnableAddressTransferResponse)
instance Prelude.NFData EnableAddressTransferResponse where
rnf :: EnableAddressTransferResponse -> ()
rnf EnableAddressTransferResponse' {Int
Maybe AddressTransfer
httpStatus :: Int
addressTransfer :: Maybe AddressTransfer
$sel:httpStatus:EnableAddressTransferResponse' :: EnableAddressTransferResponse -> Int
$sel:addressTransfer:EnableAddressTransferResponse' :: EnableAddressTransferResponse -> Maybe AddressTransfer
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AddressTransfer
addressTransfer
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus