packages feed

stratosphere-0.38.0: library-gen/Stratosphere/ResourceProperties/GlueSecurityConfigurationS3Encryption.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html

module Stratosphere.ResourceProperties.GlueSecurityConfigurationS3Encryption where

import Stratosphere.ResourceImports


-- | Full data type definition for GlueSecurityConfigurationS3Encryption. See
-- 'glueSecurityConfigurationS3Encryption' for a more convenient
-- constructor.
data GlueSecurityConfigurationS3Encryption =
  GlueSecurityConfigurationS3Encryption
  { _glueSecurityConfigurationS3EncryptionKmsKeyArn :: Maybe (Val Text)
  , _glueSecurityConfigurationS3EncryptionS3EncryptionMode :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON GlueSecurityConfigurationS3Encryption where
  toJSON GlueSecurityConfigurationS3Encryption{..} =
    object $
    catMaybes
    [ fmap (("KmsKeyArn",) . toJSON) _glueSecurityConfigurationS3EncryptionKmsKeyArn
    , fmap (("S3EncryptionMode",) . toJSON) _glueSecurityConfigurationS3EncryptionS3EncryptionMode
    ]

-- | Constructor for 'GlueSecurityConfigurationS3Encryption' containing
-- required fields as arguments.
glueSecurityConfigurationS3Encryption
  :: GlueSecurityConfigurationS3Encryption
glueSecurityConfigurationS3Encryption  =
  GlueSecurityConfigurationS3Encryption
  { _glueSecurityConfigurationS3EncryptionKmsKeyArn = Nothing
  , _glueSecurityConfigurationS3EncryptionS3EncryptionMode = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html#cfn-glue-securityconfiguration-s3encryption-kmskeyarn
gscseKmsKeyArn :: Lens' GlueSecurityConfigurationS3Encryption (Maybe (Val Text))
gscseKmsKeyArn = lens _glueSecurityConfigurationS3EncryptionKmsKeyArn (\s a -> s { _glueSecurityConfigurationS3EncryptionKmsKeyArn = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-securityconfiguration-s3encryption.html#cfn-glue-securityconfiguration-s3encryption-s3encryptionmode
gscseS3EncryptionMode :: Lens' GlueSecurityConfigurationS3Encryption (Maybe (Val Text))
gscseS3EncryptionMode = lens _glueSecurityConfigurationS3EncryptionS3EncryptionMode (\s a -> s { _glueSecurityConfigurationS3EncryptionS3EncryptionMode = a })