module Stratosphere.Kinesis.Stream.StreamEncryptionProperty (
        StreamEncryptionProperty(..), mkStreamEncryptionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data StreamEncryptionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html>
    StreamEncryptionProperty {StreamEncryptionProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-encryptiontype>
                              StreamEncryptionProperty -> Value Text
encryptionType :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-keyid>
                              StreamEncryptionProperty -> Value Text
keyId :: (Value Prelude.Text)}
  deriving stock (StreamEncryptionProperty -> StreamEncryptionProperty -> Bool
(StreamEncryptionProperty -> StreamEncryptionProperty -> Bool)
-> (StreamEncryptionProperty -> StreamEncryptionProperty -> Bool)
-> Eq StreamEncryptionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StreamEncryptionProperty -> StreamEncryptionProperty -> Bool
== :: StreamEncryptionProperty -> StreamEncryptionProperty -> Bool
$c/= :: StreamEncryptionProperty -> StreamEncryptionProperty -> Bool
/= :: StreamEncryptionProperty -> StreamEncryptionProperty -> Bool
Prelude.Eq, Int -> StreamEncryptionProperty -> ShowS
[StreamEncryptionProperty] -> ShowS
StreamEncryptionProperty -> String
(Int -> StreamEncryptionProperty -> ShowS)
-> (StreamEncryptionProperty -> String)
-> ([StreamEncryptionProperty] -> ShowS)
-> Show StreamEncryptionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StreamEncryptionProperty -> ShowS
showsPrec :: Int -> StreamEncryptionProperty -> ShowS
$cshow :: StreamEncryptionProperty -> String
show :: StreamEncryptionProperty -> String
$cshowList :: [StreamEncryptionProperty] -> ShowS
showList :: [StreamEncryptionProperty] -> ShowS
Prelude.Show)
mkStreamEncryptionProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> StreamEncryptionProperty
mkStreamEncryptionProperty :: Value Text -> Value Text -> StreamEncryptionProperty
mkStreamEncryptionProperty Value Text
encryptionType Value Text
keyId
  = StreamEncryptionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), encryptionType :: Value Text
encryptionType = Value Text
encryptionType,
       keyId :: Value Text
keyId = Value Text
keyId}
instance ToResourceProperties StreamEncryptionProperty where
  toResourceProperties :: StreamEncryptionProperty -> ResourceProperties
toResourceProperties StreamEncryptionProperty {()
Value Text
haddock_workaround_ :: StreamEncryptionProperty -> ()
encryptionType :: StreamEncryptionProperty -> Value Text
keyId :: StreamEncryptionProperty -> Value Text
haddock_workaround_ :: ()
encryptionType :: Value Text
keyId :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Kinesis::Stream.StreamEncryption",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EncryptionType" 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
encryptionType,
                       Key
"KeyId" 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
keyId]}
instance JSON.ToJSON StreamEncryptionProperty where
  toJSON :: StreamEncryptionProperty -> Value
toJSON StreamEncryptionProperty {()
Value Text
haddock_workaround_ :: StreamEncryptionProperty -> ()
encryptionType :: StreamEncryptionProperty -> Value Text
keyId :: StreamEncryptionProperty -> Value Text
haddock_workaround_ :: ()
encryptionType :: Value Text
keyId :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"EncryptionType" 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
encryptionType, Key
"KeyId" 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
keyId]
instance Property "EncryptionType" StreamEncryptionProperty where
  type PropertyType "EncryptionType" StreamEncryptionProperty = Value Prelude.Text
  set :: PropertyType "EncryptionType" StreamEncryptionProperty
-> StreamEncryptionProperty -> StreamEncryptionProperty
set PropertyType "EncryptionType" StreamEncryptionProperty
newValue StreamEncryptionProperty {()
Value Text
haddock_workaround_ :: StreamEncryptionProperty -> ()
encryptionType :: StreamEncryptionProperty -> Value Text
keyId :: StreamEncryptionProperty -> Value Text
haddock_workaround_ :: ()
encryptionType :: Value Text
keyId :: Value Text
..}
    = StreamEncryptionProperty {encryptionType :: Value Text
encryptionType = PropertyType "EncryptionType" StreamEncryptionProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
keyId :: Value Text
haddock_workaround_ :: ()
keyId :: Value Text
..}
instance Property "KeyId" StreamEncryptionProperty where
  type PropertyType "KeyId" StreamEncryptionProperty = Value Prelude.Text
  set :: PropertyType "KeyId" StreamEncryptionProperty
-> StreamEncryptionProperty -> StreamEncryptionProperty
set PropertyType "KeyId" StreamEncryptionProperty
newValue StreamEncryptionProperty {()
Value Text
haddock_workaround_ :: StreamEncryptionProperty -> ()
encryptionType :: StreamEncryptionProperty -> Value Text
keyId :: StreamEncryptionProperty -> Value Text
haddock_workaround_ :: ()
encryptionType :: Value Text
keyId :: Value Text
..}
    = StreamEncryptionProperty {keyId :: Value Text
keyId = PropertyType "KeyId" StreamEncryptionProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
encryptionType :: Value Text
haddock_workaround_ :: ()
encryptionType :: Value Text
..}