{-# 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.ElastiCache.StartMigration
(
StartMigration (..),
newStartMigration,
startMigration_replicationGroupId,
startMigration_customerNodeEndpointList,
StartMigrationResponse (..),
newStartMigrationResponse,
startMigrationResponse_replicationGroup,
startMigrationResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElastiCache.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data StartMigration = StartMigration'
{
StartMigration -> Text
replicationGroupId :: Prelude.Text,
StartMigration -> [CustomerNodeEndpoint]
customerNodeEndpointList :: [CustomerNodeEndpoint]
}
deriving (StartMigration -> StartMigration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartMigration -> StartMigration -> Bool
$c/= :: StartMigration -> StartMigration -> Bool
== :: StartMigration -> StartMigration -> Bool
$c== :: StartMigration -> StartMigration -> Bool
Prelude.Eq, ReadPrec [StartMigration]
ReadPrec StartMigration
Int -> ReadS StartMigration
ReadS [StartMigration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartMigration]
$creadListPrec :: ReadPrec [StartMigration]
readPrec :: ReadPrec StartMigration
$creadPrec :: ReadPrec StartMigration
readList :: ReadS [StartMigration]
$creadList :: ReadS [StartMigration]
readsPrec :: Int -> ReadS StartMigration
$creadsPrec :: Int -> ReadS StartMigration
Prelude.Read, Int -> StartMigration -> ShowS
[StartMigration] -> ShowS
StartMigration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartMigration] -> ShowS
$cshowList :: [StartMigration] -> ShowS
show :: StartMigration -> String
$cshow :: StartMigration -> String
showsPrec :: Int -> StartMigration -> ShowS
$cshowsPrec :: Int -> StartMigration -> ShowS
Prelude.Show, forall x. Rep StartMigration x -> StartMigration
forall x. StartMigration -> Rep StartMigration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartMigration x -> StartMigration
$cfrom :: forall x. StartMigration -> Rep StartMigration x
Prelude.Generic)
newStartMigration ::
Prelude.Text ->
StartMigration
newStartMigration :: Text -> StartMigration
newStartMigration Text
pReplicationGroupId_ =
StartMigration'
{ $sel:replicationGroupId:StartMigration' :: Text
replicationGroupId =
Text
pReplicationGroupId_,
$sel:customerNodeEndpointList:StartMigration' :: [CustomerNodeEndpoint]
customerNodeEndpointList = forall a. Monoid a => a
Prelude.mempty
}
startMigration_replicationGroupId :: Lens.Lens' StartMigration Prelude.Text
startMigration_replicationGroupId :: Lens' StartMigration Text
startMigration_replicationGroupId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMigration' {Text
replicationGroupId :: Text
$sel:replicationGroupId:StartMigration' :: StartMigration -> Text
replicationGroupId} -> Text
replicationGroupId) (\s :: StartMigration
s@StartMigration' {} Text
a -> StartMigration
s {$sel:replicationGroupId:StartMigration' :: Text
replicationGroupId = Text
a} :: StartMigration)
startMigration_customerNodeEndpointList :: Lens.Lens' StartMigration [CustomerNodeEndpoint]
startMigration_customerNodeEndpointList :: Lens' StartMigration [CustomerNodeEndpoint]
startMigration_customerNodeEndpointList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMigration' {[CustomerNodeEndpoint]
customerNodeEndpointList :: [CustomerNodeEndpoint]
$sel:customerNodeEndpointList:StartMigration' :: StartMigration -> [CustomerNodeEndpoint]
customerNodeEndpointList} -> [CustomerNodeEndpoint]
customerNodeEndpointList) (\s :: StartMigration
s@StartMigration' {} [CustomerNodeEndpoint]
a -> StartMigration
s {$sel:customerNodeEndpointList:StartMigration' :: [CustomerNodeEndpoint]
customerNodeEndpointList = [CustomerNodeEndpoint]
a} :: StartMigration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest StartMigration where
type
AWSResponse StartMigration =
StartMigrationResponse
request :: (Service -> Service) -> StartMigration -> Request StartMigration
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 StartMigration
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartMigration)))
response =
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"StartMigrationResult"
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe ReplicationGroup -> Int -> StartMigrationResponse
StartMigrationResponse'
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
"ReplicationGroup")
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 StartMigration where
hashWithSalt :: Int -> StartMigration -> Int
hashWithSalt Int
_salt StartMigration' {[CustomerNodeEndpoint]
Text
customerNodeEndpointList :: [CustomerNodeEndpoint]
replicationGroupId :: Text
$sel:customerNodeEndpointList:StartMigration' :: StartMigration -> [CustomerNodeEndpoint]
$sel:replicationGroupId:StartMigration' :: StartMigration -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
replicationGroupId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [CustomerNodeEndpoint]
customerNodeEndpointList
instance Prelude.NFData StartMigration where
rnf :: StartMigration -> ()
rnf StartMigration' {[CustomerNodeEndpoint]
Text
customerNodeEndpointList :: [CustomerNodeEndpoint]
replicationGroupId :: Text
$sel:customerNodeEndpointList:StartMigration' :: StartMigration -> [CustomerNodeEndpoint]
$sel:replicationGroupId:StartMigration' :: StartMigration -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
replicationGroupId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [CustomerNodeEndpoint]
customerNodeEndpointList
instance Data.ToHeaders StartMigration where
toHeaders :: StartMigration -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath StartMigration where
toPath :: StartMigration -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery StartMigration where
toQuery :: StartMigration -> QueryString
toQuery StartMigration' {[CustomerNodeEndpoint]
Text
customerNodeEndpointList :: [CustomerNodeEndpoint]
replicationGroupId :: Text
$sel:customerNodeEndpointList:StartMigration' :: StartMigration -> [CustomerNodeEndpoint]
$sel:replicationGroupId:StartMigration' :: StartMigration -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"StartMigration" :: Prelude.ByteString),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2015-02-02" :: Prelude.ByteString),
ByteString
"ReplicationGroupId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
replicationGroupId,
ByteString
"CustomerNodeEndpointList"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"member" [CustomerNodeEndpoint]
customerNodeEndpointList
]
data StartMigrationResponse = StartMigrationResponse'
{ StartMigrationResponse -> Maybe ReplicationGroup
replicationGroup :: Prelude.Maybe ReplicationGroup,
StartMigrationResponse -> Int
httpStatus :: Prelude.Int
}
deriving (StartMigrationResponse -> StartMigrationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartMigrationResponse -> StartMigrationResponse -> Bool
$c/= :: StartMigrationResponse -> StartMigrationResponse -> Bool
== :: StartMigrationResponse -> StartMigrationResponse -> Bool
$c== :: StartMigrationResponse -> StartMigrationResponse -> Bool
Prelude.Eq, ReadPrec [StartMigrationResponse]
ReadPrec StartMigrationResponse
Int -> ReadS StartMigrationResponse
ReadS [StartMigrationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartMigrationResponse]
$creadListPrec :: ReadPrec [StartMigrationResponse]
readPrec :: ReadPrec StartMigrationResponse
$creadPrec :: ReadPrec StartMigrationResponse
readList :: ReadS [StartMigrationResponse]
$creadList :: ReadS [StartMigrationResponse]
readsPrec :: Int -> ReadS StartMigrationResponse
$creadsPrec :: Int -> ReadS StartMigrationResponse
Prelude.Read, Int -> StartMigrationResponse -> ShowS
[StartMigrationResponse] -> ShowS
StartMigrationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartMigrationResponse] -> ShowS
$cshowList :: [StartMigrationResponse] -> ShowS
show :: StartMigrationResponse -> String
$cshow :: StartMigrationResponse -> String
showsPrec :: Int -> StartMigrationResponse -> ShowS
$cshowsPrec :: Int -> StartMigrationResponse -> ShowS
Prelude.Show, forall x. Rep StartMigrationResponse x -> StartMigrationResponse
forall x. StartMigrationResponse -> Rep StartMigrationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartMigrationResponse x -> StartMigrationResponse
$cfrom :: forall x. StartMigrationResponse -> Rep StartMigrationResponse x
Prelude.Generic)
newStartMigrationResponse ::
Prelude.Int ->
StartMigrationResponse
newStartMigrationResponse :: Int -> StartMigrationResponse
newStartMigrationResponse Int
pHttpStatus_ =
StartMigrationResponse'
{ $sel:replicationGroup:StartMigrationResponse' :: Maybe ReplicationGroup
replicationGroup =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:StartMigrationResponse' :: Int
httpStatus = Int
pHttpStatus_
}
startMigrationResponse_replicationGroup :: Lens.Lens' StartMigrationResponse (Prelude.Maybe ReplicationGroup)
startMigrationResponse_replicationGroup :: Lens' StartMigrationResponse (Maybe ReplicationGroup)
startMigrationResponse_replicationGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMigrationResponse' {Maybe ReplicationGroup
replicationGroup :: Maybe ReplicationGroup
$sel:replicationGroup:StartMigrationResponse' :: StartMigrationResponse -> Maybe ReplicationGroup
replicationGroup} -> Maybe ReplicationGroup
replicationGroup) (\s :: StartMigrationResponse
s@StartMigrationResponse' {} Maybe ReplicationGroup
a -> StartMigrationResponse
s {$sel:replicationGroup:StartMigrationResponse' :: Maybe ReplicationGroup
replicationGroup = Maybe ReplicationGroup
a} :: StartMigrationResponse)
startMigrationResponse_httpStatus :: Lens.Lens' StartMigrationResponse Prelude.Int
startMigrationResponse_httpStatus :: Lens' StartMigrationResponse Int
startMigrationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartMigrationResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartMigrationResponse' :: StartMigrationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartMigrationResponse
s@StartMigrationResponse' {} Int
a -> StartMigrationResponse
s {$sel:httpStatus:StartMigrationResponse' :: Int
httpStatus = Int
a} :: StartMigrationResponse)
instance Prelude.NFData StartMigrationResponse where
rnf :: StartMigrationResponse -> ()
rnf StartMigrationResponse' {Int
Maybe ReplicationGroup
httpStatus :: Int
replicationGroup :: Maybe ReplicationGroup
$sel:httpStatus:StartMigrationResponse' :: StartMigrationResponse -> Int
$sel:replicationGroup:StartMigrationResponse' :: StartMigrationResponse -> Maybe ReplicationGroup
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationGroup
replicationGroup
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus