module Stratosphere.OSIS.Pipeline.EncryptionAtRestOptionsProperty (
        EncryptionAtRestOptionsProperty(..),
        mkEncryptionAtRestOptionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data EncryptionAtRestOptionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-encryptionatrestoptions.html>
    EncryptionAtRestOptionsProperty {EncryptionAtRestOptionsProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-encryptionatrestoptions.html#cfn-osis-pipeline-encryptionatrestoptions-kmskeyarn>
                                     EncryptionAtRestOptionsProperty -> Value Text
kmsKeyArn :: (Value Prelude.Text)}
  deriving stock (EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty -> Bool
(EncryptionAtRestOptionsProperty
 -> EncryptionAtRestOptionsProperty -> Bool)
-> (EncryptionAtRestOptionsProperty
    -> EncryptionAtRestOptionsProperty -> Bool)
-> Eq EncryptionAtRestOptionsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty -> Bool
== :: EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty -> Bool
$c/= :: EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty -> Bool
/= :: EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty -> Bool
Prelude.Eq, Int -> EncryptionAtRestOptionsProperty -> ShowS
[EncryptionAtRestOptionsProperty] -> ShowS
EncryptionAtRestOptionsProperty -> String
(Int -> EncryptionAtRestOptionsProperty -> ShowS)
-> (EncryptionAtRestOptionsProperty -> String)
-> ([EncryptionAtRestOptionsProperty] -> ShowS)
-> Show EncryptionAtRestOptionsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EncryptionAtRestOptionsProperty -> ShowS
showsPrec :: Int -> EncryptionAtRestOptionsProperty -> ShowS
$cshow :: EncryptionAtRestOptionsProperty -> String
show :: EncryptionAtRestOptionsProperty -> String
$cshowList :: [EncryptionAtRestOptionsProperty] -> ShowS
showList :: [EncryptionAtRestOptionsProperty] -> ShowS
Prelude.Show)
mkEncryptionAtRestOptionsProperty ::
  Value Prelude.Text -> EncryptionAtRestOptionsProperty
mkEncryptionAtRestOptionsProperty :: Value Text -> EncryptionAtRestOptionsProperty
mkEncryptionAtRestOptionsProperty Value Text
kmsKeyArn
  = EncryptionAtRestOptionsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), kmsKeyArn :: Value Text
kmsKeyArn = Value Text
kmsKeyArn}
instance ToResourceProperties EncryptionAtRestOptionsProperty where
  toResourceProperties :: EncryptionAtRestOptionsProperty -> ResourceProperties
toResourceProperties EncryptionAtRestOptionsProperty {()
Value Text
haddock_workaround_ :: EncryptionAtRestOptionsProperty -> ()
kmsKeyArn :: EncryptionAtRestOptionsProperty -> Value Text
haddock_workaround_ :: ()
kmsKeyArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::OSIS::Pipeline.EncryptionAtRestOptions",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"KmsKeyArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
kmsKeyArn]}
instance JSON.ToJSON EncryptionAtRestOptionsProperty where
  toJSON :: EncryptionAtRestOptionsProperty -> Value
toJSON EncryptionAtRestOptionsProperty {()
Value Text
haddock_workaround_ :: EncryptionAtRestOptionsProperty -> ()
kmsKeyArn :: EncryptionAtRestOptionsProperty -> Value Text
haddock_workaround_ :: ()
kmsKeyArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"KmsKeyArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
kmsKeyArn]
instance Property "KmsKeyArn" EncryptionAtRestOptionsProperty where
  type PropertyType "KmsKeyArn" EncryptionAtRestOptionsProperty = Value Prelude.Text
  set :: PropertyType "KmsKeyArn" EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty
-> EncryptionAtRestOptionsProperty
set PropertyType "KmsKeyArn" EncryptionAtRestOptionsProperty
newValue EncryptionAtRestOptionsProperty {()
Value Text
haddock_workaround_ :: EncryptionAtRestOptionsProperty -> ()
kmsKeyArn :: EncryptionAtRestOptionsProperty -> Value Text
haddock_workaround_ :: ()
kmsKeyArn :: Value Text
..}
    = EncryptionAtRestOptionsProperty {kmsKeyArn :: Value Text
kmsKeyArn = PropertyType "KmsKeyArn" EncryptionAtRestOptionsProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}