{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Glue.Types.EncryptionConfiguration where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Glue.Types.CloudWatchEncryption
import Amazonka.Glue.Types.JobBookmarksEncryption
import Amazonka.Glue.Types.S3Encryption
import qualified Amazonka.Prelude as Prelude
data EncryptionConfiguration = EncryptionConfiguration'
{
EncryptionConfiguration -> Maybe CloudWatchEncryption
cloudWatchEncryption :: Prelude.Maybe CloudWatchEncryption,
EncryptionConfiguration -> Maybe JobBookmarksEncryption
jobBookmarksEncryption :: Prelude.Maybe JobBookmarksEncryption,
EncryptionConfiguration -> Maybe [S3Encryption]
s3Encryption :: Prelude.Maybe [S3Encryption]
}
deriving (EncryptionConfiguration -> EncryptionConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EncryptionConfiguration -> EncryptionConfiguration -> Bool
$c/= :: EncryptionConfiguration -> EncryptionConfiguration -> Bool
== :: EncryptionConfiguration -> EncryptionConfiguration -> Bool
$c== :: EncryptionConfiguration -> EncryptionConfiguration -> Bool
Prelude.Eq, ReadPrec [EncryptionConfiguration]
ReadPrec EncryptionConfiguration
Int -> ReadS EncryptionConfiguration
ReadS [EncryptionConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EncryptionConfiguration]
$creadListPrec :: ReadPrec [EncryptionConfiguration]
readPrec :: ReadPrec EncryptionConfiguration
$creadPrec :: ReadPrec EncryptionConfiguration
readList :: ReadS [EncryptionConfiguration]
$creadList :: ReadS [EncryptionConfiguration]
readsPrec :: Int -> ReadS EncryptionConfiguration
$creadsPrec :: Int -> ReadS EncryptionConfiguration
Prelude.Read, Int -> EncryptionConfiguration -> ShowS
[EncryptionConfiguration] -> ShowS
EncryptionConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EncryptionConfiguration] -> ShowS
$cshowList :: [EncryptionConfiguration] -> ShowS
show :: EncryptionConfiguration -> String
$cshow :: EncryptionConfiguration -> String
showsPrec :: Int -> EncryptionConfiguration -> ShowS
$cshowsPrec :: Int -> EncryptionConfiguration -> ShowS
Prelude.Show, forall x. Rep EncryptionConfiguration x -> EncryptionConfiguration
forall x. EncryptionConfiguration -> Rep EncryptionConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EncryptionConfiguration x -> EncryptionConfiguration
$cfrom :: forall x. EncryptionConfiguration -> Rep EncryptionConfiguration x
Prelude.Generic)
newEncryptionConfiguration ::
EncryptionConfiguration
newEncryptionConfiguration :: EncryptionConfiguration
newEncryptionConfiguration =
EncryptionConfiguration'
{ $sel:cloudWatchEncryption:EncryptionConfiguration' :: Maybe CloudWatchEncryption
cloudWatchEncryption =
forall a. Maybe a
Prelude.Nothing,
$sel:jobBookmarksEncryption:EncryptionConfiguration' :: Maybe JobBookmarksEncryption
jobBookmarksEncryption = forall a. Maybe a
Prelude.Nothing,
$sel:s3Encryption:EncryptionConfiguration' :: Maybe [S3Encryption]
s3Encryption = forall a. Maybe a
Prelude.Nothing
}
encryptionConfiguration_cloudWatchEncryption :: Lens.Lens' EncryptionConfiguration (Prelude.Maybe CloudWatchEncryption)
encryptionConfiguration_cloudWatchEncryption :: Lens' EncryptionConfiguration (Maybe CloudWatchEncryption)
encryptionConfiguration_cloudWatchEncryption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EncryptionConfiguration' {Maybe CloudWatchEncryption
cloudWatchEncryption :: Maybe CloudWatchEncryption
$sel:cloudWatchEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe CloudWatchEncryption
cloudWatchEncryption} -> Maybe CloudWatchEncryption
cloudWatchEncryption) (\s :: EncryptionConfiguration
s@EncryptionConfiguration' {} Maybe CloudWatchEncryption
a -> EncryptionConfiguration
s {$sel:cloudWatchEncryption:EncryptionConfiguration' :: Maybe CloudWatchEncryption
cloudWatchEncryption = Maybe CloudWatchEncryption
a} :: EncryptionConfiguration)
encryptionConfiguration_jobBookmarksEncryption :: Lens.Lens' EncryptionConfiguration (Prelude.Maybe JobBookmarksEncryption)
encryptionConfiguration_jobBookmarksEncryption :: Lens' EncryptionConfiguration (Maybe JobBookmarksEncryption)
encryptionConfiguration_jobBookmarksEncryption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EncryptionConfiguration' {Maybe JobBookmarksEncryption
jobBookmarksEncryption :: Maybe JobBookmarksEncryption
$sel:jobBookmarksEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe JobBookmarksEncryption
jobBookmarksEncryption} -> Maybe JobBookmarksEncryption
jobBookmarksEncryption) (\s :: EncryptionConfiguration
s@EncryptionConfiguration' {} Maybe JobBookmarksEncryption
a -> EncryptionConfiguration
s {$sel:jobBookmarksEncryption:EncryptionConfiguration' :: Maybe JobBookmarksEncryption
jobBookmarksEncryption = Maybe JobBookmarksEncryption
a} :: EncryptionConfiguration)
encryptionConfiguration_s3Encryption :: Lens.Lens' EncryptionConfiguration (Prelude.Maybe [S3Encryption])
encryptionConfiguration_s3Encryption :: Lens' EncryptionConfiguration (Maybe [S3Encryption])
encryptionConfiguration_s3Encryption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EncryptionConfiguration' {Maybe [S3Encryption]
s3Encryption :: Maybe [S3Encryption]
$sel:s3Encryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe [S3Encryption]
s3Encryption} -> Maybe [S3Encryption]
s3Encryption) (\s :: EncryptionConfiguration
s@EncryptionConfiguration' {} Maybe [S3Encryption]
a -> EncryptionConfiguration
s {$sel:s3Encryption:EncryptionConfiguration' :: Maybe [S3Encryption]
s3Encryption = Maybe [S3Encryption]
a} :: EncryptionConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Data.FromJSON EncryptionConfiguration where
parseJSON :: Value -> Parser EncryptionConfiguration
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"EncryptionConfiguration"
( \Object
x ->
Maybe CloudWatchEncryption
-> Maybe JobBookmarksEncryption
-> Maybe [S3Encryption]
-> EncryptionConfiguration
EncryptionConfiguration'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CloudWatchEncryption")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"JobBookmarksEncryption")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3Encryption" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
)
instance Prelude.Hashable EncryptionConfiguration where
hashWithSalt :: Int -> EncryptionConfiguration -> Int
hashWithSalt Int
_salt EncryptionConfiguration' {Maybe [S3Encryption]
Maybe CloudWatchEncryption
Maybe JobBookmarksEncryption
s3Encryption :: Maybe [S3Encryption]
jobBookmarksEncryption :: Maybe JobBookmarksEncryption
cloudWatchEncryption :: Maybe CloudWatchEncryption
$sel:s3Encryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe [S3Encryption]
$sel:jobBookmarksEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe JobBookmarksEncryption
$sel:cloudWatchEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe CloudWatchEncryption
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CloudWatchEncryption
cloudWatchEncryption
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe JobBookmarksEncryption
jobBookmarksEncryption
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [S3Encryption]
s3Encryption
instance Prelude.NFData EncryptionConfiguration where
rnf :: EncryptionConfiguration -> ()
rnf EncryptionConfiguration' {Maybe [S3Encryption]
Maybe CloudWatchEncryption
Maybe JobBookmarksEncryption
s3Encryption :: Maybe [S3Encryption]
jobBookmarksEncryption :: Maybe JobBookmarksEncryption
cloudWatchEncryption :: Maybe CloudWatchEncryption
$sel:s3Encryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe [S3Encryption]
$sel:jobBookmarksEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe JobBookmarksEncryption
$sel:cloudWatchEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe CloudWatchEncryption
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CloudWatchEncryption
cloudWatchEncryption
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobBookmarksEncryption
jobBookmarksEncryption
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [S3Encryption]
s3Encryption
instance Data.ToJSON EncryptionConfiguration where
toJSON :: EncryptionConfiguration -> Value
toJSON EncryptionConfiguration' {Maybe [S3Encryption]
Maybe CloudWatchEncryption
Maybe JobBookmarksEncryption
s3Encryption :: Maybe [S3Encryption]
jobBookmarksEncryption :: Maybe JobBookmarksEncryption
cloudWatchEncryption :: Maybe CloudWatchEncryption
$sel:s3Encryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe [S3Encryption]
$sel:jobBookmarksEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe JobBookmarksEncryption
$sel:cloudWatchEncryption:EncryptionConfiguration' :: EncryptionConfiguration -> Maybe CloudWatchEncryption
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"CloudWatchEncryption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CloudWatchEncryption
cloudWatchEncryption,
(Key
"JobBookmarksEncryption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe JobBookmarksEncryption
jobBookmarksEncryption,
(Key
"S3Encryption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [S3Encryption]
s3Encryption
]
)