{-# 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.KMS.ReEncrypt
(
ReEncrypt (..),
newReEncrypt,
reEncrypt_destinationEncryptionContext,
reEncrypt_sourceKeyId,
reEncrypt_sourceEncryptionContext,
reEncrypt_grantTokens,
reEncrypt_destinationEncryptionAlgorithm,
reEncrypt_sourceEncryptionAlgorithm,
reEncrypt_ciphertextBlob,
reEncrypt_destinationKeyId,
ReEncryptResponse (..),
newReEncryptResponse,
reEncryptResponse_sourceKeyId,
reEncryptResponse_keyId,
reEncryptResponse_destinationEncryptionAlgorithm,
reEncryptResponse_sourceEncryptionAlgorithm,
reEncryptResponse_ciphertextBlob,
reEncryptResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import Amazonka.KMS.Types
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data ReEncrypt = ReEncrypt'
{
ReEncrypt -> Maybe (HashMap Text Text)
destinationEncryptionContext :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
ReEncrypt -> Maybe Text
sourceKeyId :: Prelude.Maybe Prelude.Text,
ReEncrypt -> Maybe (HashMap Text Text)
sourceEncryptionContext :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
ReEncrypt -> Maybe [Text]
grantTokens :: Prelude.Maybe [Prelude.Text],
ReEncrypt -> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm :: Prelude.Maybe EncryptionAlgorithmSpec,
ReEncrypt -> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm :: Prelude.Maybe EncryptionAlgorithmSpec,
ReEncrypt -> Base64
ciphertextBlob :: Core.Base64,
ReEncrypt -> Text
destinationKeyId :: Prelude.Text
}
deriving (ReEncrypt -> ReEncrypt -> Bool
(ReEncrypt -> ReEncrypt -> Bool)
-> (ReEncrypt -> ReEncrypt -> Bool) -> Eq ReEncrypt
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReEncrypt -> ReEncrypt -> Bool
$c/= :: ReEncrypt -> ReEncrypt -> Bool
== :: ReEncrypt -> ReEncrypt -> Bool
$c== :: ReEncrypt -> ReEncrypt -> Bool
Prelude.Eq, ReadPrec [ReEncrypt]
ReadPrec ReEncrypt
Int -> ReadS ReEncrypt
ReadS [ReEncrypt]
(Int -> ReadS ReEncrypt)
-> ReadS [ReEncrypt]
-> ReadPrec ReEncrypt
-> ReadPrec [ReEncrypt]
-> Read ReEncrypt
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReEncrypt]
$creadListPrec :: ReadPrec [ReEncrypt]
readPrec :: ReadPrec ReEncrypt
$creadPrec :: ReadPrec ReEncrypt
readList :: ReadS [ReEncrypt]
$creadList :: ReadS [ReEncrypt]
readsPrec :: Int -> ReadS ReEncrypt
$creadsPrec :: Int -> ReadS ReEncrypt
Prelude.Read, Int -> ReEncrypt -> ShowS
[ReEncrypt] -> ShowS
ReEncrypt -> String
(Int -> ReEncrypt -> ShowS)
-> (ReEncrypt -> String)
-> ([ReEncrypt] -> ShowS)
-> Show ReEncrypt
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReEncrypt] -> ShowS
$cshowList :: [ReEncrypt] -> ShowS
show :: ReEncrypt -> String
$cshow :: ReEncrypt -> String
showsPrec :: Int -> ReEncrypt -> ShowS
$cshowsPrec :: Int -> ReEncrypt -> ShowS
Prelude.Show, (forall x. ReEncrypt -> Rep ReEncrypt x)
-> (forall x. Rep ReEncrypt x -> ReEncrypt) -> Generic ReEncrypt
forall x. Rep ReEncrypt x -> ReEncrypt
forall x. ReEncrypt -> Rep ReEncrypt x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReEncrypt x -> ReEncrypt
$cfrom :: forall x. ReEncrypt -> Rep ReEncrypt x
Prelude.Generic)
newReEncrypt ::
Prelude.ByteString ->
Prelude.Text ->
ReEncrypt
newReEncrypt :: ByteString -> Text -> ReEncrypt
newReEncrypt ByteString
pCiphertextBlob_ Text
pDestinationKeyId_ =
ReEncrypt' :: Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe [Text]
-> Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Base64
-> Text
-> ReEncrypt
ReEncrypt'
{ $sel:destinationEncryptionContext:ReEncrypt' :: Maybe (HashMap Text Text)
destinationEncryptionContext =
Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
$sel:sourceKeyId:ReEncrypt' :: Maybe Text
sourceKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
$sel:sourceEncryptionContext:ReEncrypt' :: Maybe (HashMap Text Text)
sourceEncryptionContext = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
$sel:grantTokens:ReEncrypt' :: Maybe [Text]
grantTokens = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
$sel:destinationEncryptionAlgorithm:ReEncrypt' :: Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
forall a. Maybe a
Prelude.Nothing,
$sel:sourceEncryptionAlgorithm:ReEncrypt' :: Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
forall a. Maybe a
Prelude.Nothing,
$sel:ciphertextBlob:ReEncrypt' :: Base64
ciphertextBlob =
Tagged ByteString (Identity ByteString)
-> Tagged Base64 (Identity Base64)
Iso' Base64 ByteString
Core._Base64 (Tagged ByteString (Identity ByteString)
-> Tagged Base64 (Identity Base64))
-> ByteString -> Base64
forall t b. AReview t b -> b -> t
Lens.# ByteString
pCiphertextBlob_,
$sel:destinationKeyId:ReEncrypt' :: Text
destinationKeyId = Text
pDestinationKeyId_
}
reEncrypt_destinationEncryptionContext :: Lens.Lens' ReEncrypt (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
reEncrypt_destinationEncryptionContext :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ReEncrypt -> f ReEncrypt
reEncrypt_destinationEncryptionContext = (ReEncrypt -> Maybe (HashMap Text Text))
-> (ReEncrypt -> Maybe (HashMap Text Text) -> ReEncrypt)
-> Lens
ReEncrypt
ReEncrypt
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Maybe (HashMap Text Text)
destinationEncryptionContext :: Maybe (HashMap Text Text)
$sel:destinationEncryptionContext:ReEncrypt' :: ReEncrypt -> Maybe (HashMap Text Text)
destinationEncryptionContext} -> Maybe (HashMap Text Text)
destinationEncryptionContext) (\s :: ReEncrypt
s@ReEncrypt' {} Maybe (HashMap Text Text)
a -> ReEncrypt
s {$sel:destinationEncryptionContext:ReEncrypt' :: Maybe (HashMap Text Text)
destinationEncryptionContext = Maybe (HashMap Text Text)
a} :: ReEncrypt) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ReEncrypt -> f ReEncrypt)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ReEncrypt
-> f ReEncrypt
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
-> Iso
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
reEncrypt_sourceKeyId :: Lens.Lens' ReEncrypt (Prelude.Maybe Prelude.Text)
reEncrypt_sourceKeyId :: (Maybe Text -> f (Maybe Text)) -> ReEncrypt -> f ReEncrypt
reEncrypt_sourceKeyId = (ReEncrypt -> Maybe Text)
-> (ReEncrypt -> Maybe Text -> ReEncrypt)
-> Lens ReEncrypt ReEncrypt (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Maybe Text
sourceKeyId :: Maybe Text
$sel:sourceKeyId:ReEncrypt' :: ReEncrypt -> Maybe Text
sourceKeyId} -> Maybe Text
sourceKeyId) (\s :: ReEncrypt
s@ReEncrypt' {} Maybe Text
a -> ReEncrypt
s {$sel:sourceKeyId:ReEncrypt' :: Maybe Text
sourceKeyId = Maybe Text
a} :: ReEncrypt)
reEncrypt_sourceEncryptionContext :: Lens.Lens' ReEncrypt (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
reEncrypt_sourceEncryptionContext :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ReEncrypt -> f ReEncrypt
reEncrypt_sourceEncryptionContext = (ReEncrypt -> Maybe (HashMap Text Text))
-> (ReEncrypt -> Maybe (HashMap Text Text) -> ReEncrypt)
-> Lens
ReEncrypt
ReEncrypt
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Maybe (HashMap Text Text)
sourceEncryptionContext :: Maybe (HashMap Text Text)
$sel:sourceEncryptionContext:ReEncrypt' :: ReEncrypt -> Maybe (HashMap Text Text)
sourceEncryptionContext} -> Maybe (HashMap Text Text)
sourceEncryptionContext) (\s :: ReEncrypt
s@ReEncrypt' {} Maybe (HashMap Text Text)
a -> ReEncrypt
s {$sel:sourceEncryptionContext:ReEncrypt' :: Maybe (HashMap Text Text)
sourceEncryptionContext = Maybe (HashMap Text Text)
a} :: ReEncrypt) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ReEncrypt -> f ReEncrypt)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> ReEncrypt
-> f ReEncrypt
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
-> Iso
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
(Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
(HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
reEncrypt_grantTokens :: Lens.Lens' ReEncrypt (Prelude.Maybe [Prelude.Text])
reEncrypt_grantTokens :: (Maybe [Text] -> f (Maybe [Text])) -> ReEncrypt -> f ReEncrypt
reEncrypt_grantTokens = (ReEncrypt -> Maybe [Text])
-> (ReEncrypt -> Maybe [Text] -> ReEncrypt)
-> Lens ReEncrypt ReEncrypt (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Maybe [Text]
grantTokens :: Maybe [Text]
$sel:grantTokens:ReEncrypt' :: ReEncrypt -> Maybe [Text]
grantTokens} -> Maybe [Text]
grantTokens) (\s :: ReEncrypt
s@ReEncrypt' {} Maybe [Text]
a -> ReEncrypt
s {$sel:grantTokens:ReEncrypt' :: Maybe [Text]
grantTokens = Maybe [Text]
a} :: ReEncrypt) ((Maybe [Text] -> f (Maybe [Text])) -> ReEncrypt -> f ReEncrypt)
-> ((Maybe [Text] -> f (Maybe [Text]))
-> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> ReEncrypt
-> f ReEncrypt
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
reEncrypt_destinationEncryptionAlgorithm :: Lens.Lens' ReEncrypt (Prelude.Maybe EncryptionAlgorithmSpec)
reEncrypt_destinationEncryptionAlgorithm :: (Maybe EncryptionAlgorithmSpec
-> f (Maybe EncryptionAlgorithmSpec))
-> ReEncrypt -> f ReEncrypt
reEncrypt_destinationEncryptionAlgorithm = (ReEncrypt -> Maybe EncryptionAlgorithmSpec)
-> (ReEncrypt -> Maybe EncryptionAlgorithmSpec -> ReEncrypt)
-> Lens
ReEncrypt
ReEncrypt
(Maybe EncryptionAlgorithmSpec)
(Maybe EncryptionAlgorithmSpec)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm :: Maybe EncryptionAlgorithmSpec
$sel:destinationEncryptionAlgorithm:ReEncrypt' :: ReEncrypt -> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm} -> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm) (\s :: ReEncrypt
s@ReEncrypt' {} Maybe EncryptionAlgorithmSpec
a -> ReEncrypt
s {$sel:destinationEncryptionAlgorithm:ReEncrypt' :: Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
a} :: ReEncrypt)
reEncrypt_sourceEncryptionAlgorithm :: Lens.Lens' ReEncrypt (Prelude.Maybe EncryptionAlgorithmSpec)
reEncrypt_sourceEncryptionAlgorithm :: (Maybe EncryptionAlgorithmSpec
-> f (Maybe EncryptionAlgorithmSpec))
-> ReEncrypt -> f ReEncrypt
reEncrypt_sourceEncryptionAlgorithm = (ReEncrypt -> Maybe EncryptionAlgorithmSpec)
-> (ReEncrypt -> Maybe EncryptionAlgorithmSpec -> ReEncrypt)
-> Lens
ReEncrypt
ReEncrypt
(Maybe EncryptionAlgorithmSpec)
(Maybe EncryptionAlgorithmSpec)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm :: Maybe EncryptionAlgorithmSpec
$sel:sourceEncryptionAlgorithm:ReEncrypt' :: ReEncrypt -> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm} -> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm) (\s :: ReEncrypt
s@ReEncrypt' {} Maybe EncryptionAlgorithmSpec
a -> ReEncrypt
s {$sel:sourceEncryptionAlgorithm:ReEncrypt' :: Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
a} :: ReEncrypt)
reEncrypt_ciphertextBlob :: Lens.Lens' ReEncrypt Prelude.ByteString
reEncrypt_ciphertextBlob :: (ByteString -> f ByteString) -> ReEncrypt -> f ReEncrypt
reEncrypt_ciphertextBlob = (ReEncrypt -> Base64)
-> (ReEncrypt -> Base64 -> ReEncrypt)
-> Lens ReEncrypt ReEncrypt Base64 Base64
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Base64
ciphertextBlob :: Base64
$sel:ciphertextBlob:ReEncrypt' :: ReEncrypt -> Base64
ciphertextBlob} -> Base64
ciphertextBlob) (\s :: ReEncrypt
s@ReEncrypt' {} Base64
a -> ReEncrypt
s {$sel:ciphertextBlob:ReEncrypt' :: Base64
ciphertextBlob = Base64
a} :: ReEncrypt) ((Base64 -> f Base64) -> ReEncrypt -> f ReEncrypt)
-> ((ByteString -> f ByteString) -> Base64 -> f Base64)
-> (ByteString -> f ByteString)
-> ReEncrypt
-> f ReEncrypt
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (ByteString -> f ByteString) -> Base64 -> f Base64
Iso' Base64 ByteString
Core._Base64
reEncrypt_destinationKeyId :: Lens.Lens' ReEncrypt Prelude.Text
reEncrypt_destinationKeyId :: (Text -> f Text) -> ReEncrypt -> f ReEncrypt
reEncrypt_destinationKeyId = (ReEncrypt -> Text)
-> (ReEncrypt -> Text -> ReEncrypt)
-> Lens ReEncrypt ReEncrypt Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncrypt' {Text
destinationKeyId :: Text
$sel:destinationKeyId:ReEncrypt' :: ReEncrypt -> Text
destinationKeyId} -> Text
destinationKeyId) (\s :: ReEncrypt
s@ReEncrypt' {} Text
a -> ReEncrypt
s {$sel:destinationKeyId:ReEncrypt' :: Text
destinationKeyId = Text
a} :: ReEncrypt)
instance Core.AWSRequest ReEncrypt where
type AWSResponse ReEncrypt = ReEncryptResponse
request :: ReEncrypt -> Request ReEncrypt
request = Service -> ReEncrypt -> Request ReEncrypt
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
response :: Logger
-> Service
-> Proxy ReEncrypt
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ReEncrypt)))
response =
(Int
-> ResponseHeaders
-> Object
-> Either String (AWSResponse ReEncrypt))
-> Logger
-> Service
-> Proxy ReEncrypt
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ReEncrypt)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe Text
-> Maybe Text
-> Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse
ReEncryptResponse'
(Maybe Text
-> Maybe Text
-> Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse)
-> Either String (Maybe Text)
-> Either
String
(Maybe Text
-> Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SourceKeyId")
Either
String
(Maybe Text
-> Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse)
-> Either String (Maybe Text)
-> Either
String
(Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"KeyId")
Either
String
(Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse)
-> Either String (Maybe EncryptionAlgorithmSpec)
-> Either
String
(Maybe EncryptionAlgorithmSpec
-> Maybe Base64 -> Int -> ReEncryptResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe EncryptionAlgorithmSpec)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DestinationEncryptionAlgorithm")
Either
String
(Maybe EncryptionAlgorithmSpec
-> Maybe Base64 -> Int -> ReEncryptResponse)
-> Either String (Maybe EncryptionAlgorithmSpec)
-> Either String (Maybe Base64 -> Int -> ReEncryptResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe EncryptionAlgorithmSpec)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SourceEncryptionAlgorithm")
Either String (Maybe Base64 -> Int -> ReEncryptResponse)
-> Either String (Maybe Base64)
-> Either String (Int -> ReEncryptResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Base64)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"CiphertextBlob")
Either String (Int -> ReEncryptResponse)
-> Either String Int -> Either String ReEncryptResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable ReEncrypt
instance Prelude.NFData ReEncrypt
instance Core.ToHeaders ReEncrypt where
toHeaders :: ReEncrypt -> ResponseHeaders
toHeaders =
ResponseHeaders -> ReEncrypt -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# (ByteString
"TrentService.ReEncrypt" :: Prelude.ByteString),
HeaderName
"Content-Type"
HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Core.ToJSON ReEncrypt where
toJSON :: ReEncrypt -> Value
toJSON ReEncrypt' {Maybe [Text]
Maybe Text
Maybe (HashMap Text Text)
Maybe EncryptionAlgorithmSpec
Text
Base64
destinationKeyId :: Text
ciphertextBlob :: Base64
sourceEncryptionAlgorithm :: Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm :: Maybe EncryptionAlgorithmSpec
grantTokens :: Maybe [Text]
sourceEncryptionContext :: Maybe (HashMap Text Text)
sourceKeyId :: Maybe Text
destinationEncryptionContext :: Maybe (HashMap Text Text)
$sel:destinationKeyId:ReEncrypt' :: ReEncrypt -> Text
$sel:ciphertextBlob:ReEncrypt' :: ReEncrypt -> Base64
$sel:sourceEncryptionAlgorithm:ReEncrypt' :: ReEncrypt -> Maybe EncryptionAlgorithmSpec
$sel:destinationEncryptionAlgorithm:ReEncrypt' :: ReEncrypt -> Maybe EncryptionAlgorithmSpec
$sel:grantTokens:ReEncrypt' :: ReEncrypt -> Maybe [Text]
$sel:sourceEncryptionContext:ReEncrypt' :: ReEncrypt -> Maybe (HashMap Text Text)
$sel:sourceKeyId:ReEncrypt' :: ReEncrypt -> Maybe Text
$sel:destinationEncryptionContext:ReEncrypt' :: ReEncrypt -> Maybe (HashMap Text Text)
..} =
[Pair] -> Value
Core.object
( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Text
"DestinationEncryptionContext" Text -> HashMap Text Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(HashMap Text Text -> Pair)
-> Maybe (HashMap Text Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
destinationEncryptionContext,
(Text
"SourceKeyId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
sourceKeyId,
(Text
"SourceEncryptionContext" Text -> HashMap Text Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(HashMap Text Text -> Pair)
-> Maybe (HashMap Text Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
sourceEncryptionContext,
(Text
"GrantTokens" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
grantTokens,
(Text
"DestinationEncryptionAlgorithm" Text -> EncryptionAlgorithmSpec -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(EncryptionAlgorithmSpec -> Pair)
-> Maybe EncryptionAlgorithmSpec -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm,
(Text
"SourceEncryptionAlgorithm" Text -> EncryptionAlgorithmSpec -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(EncryptionAlgorithmSpec -> Pair)
-> Maybe EncryptionAlgorithmSpec -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm,
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
(Text
"CiphertextBlob" Text -> Base64 -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Base64
ciphertextBlob),
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
(Text
"DestinationKeyId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
destinationKeyId)
]
)
instance Core.ToPath ReEncrypt where
toPath :: ReEncrypt -> ByteString
toPath = ByteString -> ReEncrypt -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Core.ToQuery ReEncrypt where
toQuery :: ReEncrypt -> QueryString
toQuery = QueryString -> ReEncrypt -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty
data ReEncryptResponse = ReEncryptResponse'
{
ReEncryptResponse -> Maybe Text
sourceKeyId :: Prelude.Maybe Prelude.Text,
ReEncryptResponse -> Maybe Text
keyId :: Prelude.Maybe Prelude.Text,
ReEncryptResponse -> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm :: Prelude.Maybe EncryptionAlgorithmSpec,
ReEncryptResponse -> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm :: Prelude.Maybe EncryptionAlgorithmSpec,
ReEncryptResponse -> Maybe Base64
ciphertextBlob :: Prelude.Maybe Core.Base64,
ReEncryptResponse -> Int
httpStatus :: Prelude.Int
}
deriving (ReEncryptResponse -> ReEncryptResponse -> Bool
(ReEncryptResponse -> ReEncryptResponse -> Bool)
-> (ReEncryptResponse -> ReEncryptResponse -> Bool)
-> Eq ReEncryptResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReEncryptResponse -> ReEncryptResponse -> Bool
$c/= :: ReEncryptResponse -> ReEncryptResponse -> Bool
== :: ReEncryptResponse -> ReEncryptResponse -> Bool
$c== :: ReEncryptResponse -> ReEncryptResponse -> Bool
Prelude.Eq, ReadPrec [ReEncryptResponse]
ReadPrec ReEncryptResponse
Int -> ReadS ReEncryptResponse
ReadS [ReEncryptResponse]
(Int -> ReadS ReEncryptResponse)
-> ReadS [ReEncryptResponse]
-> ReadPrec ReEncryptResponse
-> ReadPrec [ReEncryptResponse]
-> Read ReEncryptResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReEncryptResponse]
$creadListPrec :: ReadPrec [ReEncryptResponse]
readPrec :: ReadPrec ReEncryptResponse
$creadPrec :: ReadPrec ReEncryptResponse
readList :: ReadS [ReEncryptResponse]
$creadList :: ReadS [ReEncryptResponse]
readsPrec :: Int -> ReadS ReEncryptResponse
$creadsPrec :: Int -> ReadS ReEncryptResponse
Prelude.Read, Int -> ReEncryptResponse -> ShowS
[ReEncryptResponse] -> ShowS
ReEncryptResponse -> String
(Int -> ReEncryptResponse -> ShowS)
-> (ReEncryptResponse -> String)
-> ([ReEncryptResponse] -> ShowS)
-> Show ReEncryptResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReEncryptResponse] -> ShowS
$cshowList :: [ReEncryptResponse] -> ShowS
show :: ReEncryptResponse -> String
$cshow :: ReEncryptResponse -> String
showsPrec :: Int -> ReEncryptResponse -> ShowS
$cshowsPrec :: Int -> ReEncryptResponse -> ShowS
Prelude.Show, (forall x. ReEncryptResponse -> Rep ReEncryptResponse x)
-> (forall x. Rep ReEncryptResponse x -> ReEncryptResponse)
-> Generic ReEncryptResponse
forall x. Rep ReEncryptResponse x -> ReEncryptResponse
forall x. ReEncryptResponse -> Rep ReEncryptResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReEncryptResponse x -> ReEncryptResponse
$cfrom :: forall x. ReEncryptResponse -> Rep ReEncryptResponse x
Prelude.Generic)
newReEncryptResponse ::
Prelude.Int ->
ReEncryptResponse
newReEncryptResponse :: Int -> ReEncryptResponse
newReEncryptResponse Int
pHttpStatus_ =
ReEncryptResponse' :: Maybe Text
-> Maybe Text
-> Maybe EncryptionAlgorithmSpec
-> Maybe EncryptionAlgorithmSpec
-> Maybe Base64
-> Int
-> ReEncryptResponse
ReEncryptResponse'
{ $sel:sourceKeyId:ReEncryptResponse' :: Maybe Text
sourceKeyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
$sel:keyId:ReEncryptResponse' :: Maybe Text
keyId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
$sel:destinationEncryptionAlgorithm:ReEncryptResponse' :: Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
forall a. Maybe a
Prelude.Nothing,
$sel:sourceEncryptionAlgorithm:ReEncryptResponse' :: Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
forall a. Maybe a
Prelude.Nothing,
$sel:ciphertextBlob:ReEncryptResponse' :: Maybe Base64
ciphertextBlob = Maybe Base64
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:ReEncryptResponse' :: Int
httpStatus = Int
pHttpStatus_
}
reEncryptResponse_sourceKeyId :: Lens.Lens' ReEncryptResponse (Prelude.Maybe Prelude.Text)
reEncryptResponse_sourceKeyId :: (Maybe Text -> f (Maybe Text))
-> ReEncryptResponse -> f ReEncryptResponse
reEncryptResponse_sourceKeyId = (ReEncryptResponse -> Maybe Text)
-> (ReEncryptResponse -> Maybe Text -> ReEncryptResponse)
-> Lens
ReEncryptResponse ReEncryptResponse (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncryptResponse' {Maybe Text
sourceKeyId :: Maybe Text
$sel:sourceKeyId:ReEncryptResponse' :: ReEncryptResponse -> Maybe Text
sourceKeyId} -> Maybe Text
sourceKeyId) (\s :: ReEncryptResponse
s@ReEncryptResponse' {} Maybe Text
a -> ReEncryptResponse
s {$sel:sourceKeyId:ReEncryptResponse' :: Maybe Text
sourceKeyId = Maybe Text
a} :: ReEncryptResponse)
reEncryptResponse_keyId :: Lens.Lens' ReEncryptResponse (Prelude.Maybe Prelude.Text)
reEncryptResponse_keyId :: (Maybe Text -> f (Maybe Text))
-> ReEncryptResponse -> f ReEncryptResponse
reEncryptResponse_keyId = (ReEncryptResponse -> Maybe Text)
-> (ReEncryptResponse -> Maybe Text -> ReEncryptResponse)
-> Lens
ReEncryptResponse ReEncryptResponse (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncryptResponse' {Maybe Text
keyId :: Maybe Text
$sel:keyId:ReEncryptResponse' :: ReEncryptResponse -> Maybe Text
keyId} -> Maybe Text
keyId) (\s :: ReEncryptResponse
s@ReEncryptResponse' {} Maybe Text
a -> ReEncryptResponse
s {$sel:keyId:ReEncryptResponse' :: Maybe Text
keyId = Maybe Text
a} :: ReEncryptResponse)
reEncryptResponse_destinationEncryptionAlgorithm :: Lens.Lens' ReEncryptResponse (Prelude.Maybe EncryptionAlgorithmSpec)
reEncryptResponse_destinationEncryptionAlgorithm :: (Maybe EncryptionAlgorithmSpec
-> f (Maybe EncryptionAlgorithmSpec))
-> ReEncryptResponse -> f ReEncryptResponse
reEncryptResponse_destinationEncryptionAlgorithm = (ReEncryptResponse -> Maybe EncryptionAlgorithmSpec)
-> (ReEncryptResponse
-> Maybe EncryptionAlgorithmSpec -> ReEncryptResponse)
-> Lens
ReEncryptResponse
ReEncryptResponse
(Maybe EncryptionAlgorithmSpec)
(Maybe EncryptionAlgorithmSpec)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncryptResponse' {Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm :: Maybe EncryptionAlgorithmSpec
$sel:destinationEncryptionAlgorithm:ReEncryptResponse' :: ReEncryptResponse -> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm} -> Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm) (\s :: ReEncryptResponse
s@ReEncryptResponse' {} Maybe EncryptionAlgorithmSpec
a -> ReEncryptResponse
s {$sel:destinationEncryptionAlgorithm:ReEncryptResponse' :: Maybe EncryptionAlgorithmSpec
destinationEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
a} :: ReEncryptResponse)
reEncryptResponse_sourceEncryptionAlgorithm :: Lens.Lens' ReEncryptResponse (Prelude.Maybe EncryptionAlgorithmSpec)
reEncryptResponse_sourceEncryptionAlgorithm :: (Maybe EncryptionAlgorithmSpec
-> f (Maybe EncryptionAlgorithmSpec))
-> ReEncryptResponse -> f ReEncryptResponse
reEncryptResponse_sourceEncryptionAlgorithm = (ReEncryptResponse -> Maybe EncryptionAlgorithmSpec)
-> (ReEncryptResponse
-> Maybe EncryptionAlgorithmSpec -> ReEncryptResponse)
-> Lens
ReEncryptResponse
ReEncryptResponse
(Maybe EncryptionAlgorithmSpec)
(Maybe EncryptionAlgorithmSpec)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncryptResponse' {Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm :: Maybe EncryptionAlgorithmSpec
$sel:sourceEncryptionAlgorithm:ReEncryptResponse' :: ReEncryptResponse -> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm} -> Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm) (\s :: ReEncryptResponse
s@ReEncryptResponse' {} Maybe EncryptionAlgorithmSpec
a -> ReEncryptResponse
s {$sel:sourceEncryptionAlgorithm:ReEncryptResponse' :: Maybe EncryptionAlgorithmSpec
sourceEncryptionAlgorithm = Maybe EncryptionAlgorithmSpec
a} :: ReEncryptResponse)
reEncryptResponse_ciphertextBlob :: Lens.Lens' ReEncryptResponse (Prelude.Maybe Prelude.ByteString)
reEncryptResponse_ciphertextBlob :: (Maybe ByteString -> f (Maybe ByteString))
-> ReEncryptResponse -> f ReEncryptResponse
reEncryptResponse_ciphertextBlob = (ReEncryptResponse -> Maybe Base64)
-> (ReEncryptResponse -> Maybe Base64 -> ReEncryptResponse)
-> Lens
ReEncryptResponse ReEncryptResponse (Maybe Base64) (Maybe Base64)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncryptResponse' {Maybe Base64
ciphertextBlob :: Maybe Base64
$sel:ciphertextBlob:ReEncryptResponse' :: ReEncryptResponse -> Maybe Base64
ciphertextBlob} -> Maybe Base64
ciphertextBlob) (\s :: ReEncryptResponse
s@ReEncryptResponse' {} Maybe Base64
a -> ReEncryptResponse
s {$sel:ciphertextBlob:ReEncryptResponse' :: Maybe Base64
ciphertextBlob = Maybe Base64
a} :: ReEncryptResponse) ((Maybe Base64 -> f (Maybe Base64))
-> ReEncryptResponse -> f ReEncryptResponse)
-> ((Maybe ByteString -> f (Maybe ByteString))
-> Maybe Base64 -> f (Maybe Base64))
-> (Maybe ByteString -> f (Maybe ByteString))
-> ReEncryptResponse
-> f ReEncryptResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso Base64 Base64 ByteString ByteString
-> Iso
(Maybe Base64) (Maybe Base64) (Maybe ByteString) (Maybe ByteString)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso Base64 Base64 ByteString ByteString
Iso' Base64 ByteString
Core._Base64
reEncryptResponse_httpStatus :: Lens.Lens' ReEncryptResponse Prelude.Int
reEncryptResponse_httpStatus :: (Int -> f Int) -> ReEncryptResponse -> f ReEncryptResponse
reEncryptResponse_httpStatus = (ReEncryptResponse -> Int)
-> (ReEncryptResponse -> Int -> ReEncryptResponse)
-> Lens ReEncryptResponse ReEncryptResponse Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReEncryptResponse' {Int
httpStatus :: Int
$sel:httpStatus:ReEncryptResponse' :: ReEncryptResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ReEncryptResponse
s@ReEncryptResponse' {} Int
a -> ReEncryptResponse
s {$sel:httpStatus:ReEncryptResponse' :: Int
httpStatus = Int
a} :: ReEncryptResponse)
instance Prelude.NFData ReEncryptResponse