module Stratosphere.PaymentCryptography.Key.KeyAttributesProperty (
        module Exports, KeyAttributesProperty(..), mkKeyAttributesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.PaymentCryptography.Key.KeyModesOfUseProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data KeyAttributesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html>
    KeyAttributesProperty {KeyAttributesProperty -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keyalgorithm>
                           KeyAttributesProperty -> Value Text
keyAlgorithm :: (Value Prelude.Text),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keyclass>
                           KeyAttributesProperty -> Value Text
keyClass :: (Value Prelude.Text),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keymodesofuse>
                           KeyAttributesProperty -> KeyModesOfUseProperty
keyModesOfUse :: KeyModesOfUseProperty,
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-paymentcryptography-key-keyattributes.html#cfn-paymentcryptography-key-keyattributes-keyusage>
                           KeyAttributesProperty -> Value Text
keyUsage :: (Value Prelude.Text)}
  deriving stock (KeyAttributesProperty -> KeyAttributesProperty -> Bool
(KeyAttributesProperty -> KeyAttributesProperty -> Bool)
-> (KeyAttributesProperty -> KeyAttributesProperty -> Bool)
-> Eq KeyAttributesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KeyAttributesProperty -> KeyAttributesProperty -> Bool
== :: KeyAttributesProperty -> KeyAttributesProperty -> Bool
$c/= :: KeyAttributesProperty -> KeyAttributesProperty -> Bool
/= :: KeyAttributesProperty -> KeyAttributesProperty -> Bool
Prelude.Eq, Int -> KeyAttributesProperty -> ShowS
[KeyAttributesProperty] -> ShowS
KeyAttributesProperty -> String
(Int -> KeyAttributesProperty -> ShowS)
-> (KeyAttributesProperty -> String)
-> ([KeyAttributesProperty] -> ShowS)
-> Show KeyAttributesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KeyAttributesProperty -> ShowS
showsPrec :: Int -> KeyAttributesProperty -> ShowS
$cshow :: KeyAttributesProperty -> String
show :: KeyAttributesProperty -> String
$cshowList :: [KeyAttributesProperty] -> ShowS
showList :: [KeyAttributesProperty] -> ShowS
Prelude.Show)
mkKeyAttributesProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> KeyModesOfUseProperty
        -> Value Prelude.Text -> KeyAttributesProperty
mkKeyAttributesProperty :: Value Text
-> Value Text
-> KeyModesOfUseProperty
-> Value Text
-> KeyAttributesProperty
mkKeyAttributesProperty
  Value Text
keyAlgorithm
  Value Text
keyClass
  KeyModesOfUseProperty
keyModesOfUse
  Value Text
keyUsage
  = KeyAttributesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), keyAlgorithm :: Value Text
keyAlgorithm = Value Text
keyAlgorithm,
       keyClass :: Value Text
keyClass = Value Text
keyClass, keyModesOfUse :: KeyModesOfUseProperty
keyModesOfUse = KeyModesOfUseProperty
keyModesOfUse,
       keyUsage :: Value Text
keyUsage = Value Text
keyUsage}
instance ToResourceProperties KeyAttributesProperty where
  toResourceProperties :: KeyAttributesProperty -> ResourceProperties
toResourceProperties KeyAttributesProperty {()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: KeyAttributesProperty -> ()
keyAlgorithm :: KeyAttributesProperty -> Value Text
keyClass :: KeyAttributesProperty -> Value Text
keyModesOfUse :: KeyAttributesProperty -> KeyModesOfUseProperty
keyUsage :: KeyAttributesProperty -> Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::PaymentCryptography::Key.KeyAttributes",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"KeyAlgorithm" 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
keyAlgorithm,
                       Key
"KeyClass" 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
keyClass, Key
"KeyModesOfUse" Key -> KeyModesOfUseProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= KeyModesOfUseProperty
keyModesOfUse,
                       Key
"KeyUsage" 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
keyUsage]}
instance JSON.ToJSON KeyAttributesProperty where
  toJSON :: KeyAttributesProperty -> Value
toJSON KeyAttributesProperty {()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: KeyAttributesProperty -> ()
keyAlgorithm :: KeyAttributesProperty -> Value Text
keyClass :: KeyAttributesProperty -> Value Text
keyModesOfUse :: KeyAttributesProperty -> KeyModesOfUseProperty
keyUsage :: KeyAttributesProperty -> Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"KeyAlgorithm" 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
keyAlgorithm, Key
"KeyClass" 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
keyClass,
         Key
"KeyModesOfUse" Key -> KeyModesOfUseProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= KeyModesOfUseProperty
keyModesOfUse, Key
"KeyUsage" 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
keyUsage]
instance Property "KeyAlgorithm" KeyAttributesProperty where
  type PropertyType "KeyAlgorithm" KeyAttributesProperty = Value Prelude.Text
  set :: PropertyType "KeyAlgorithm" KeyAttributesProperty
-> KeyAttributesProperty -> KeyAttributesProperty
set PropertyType "KeyAlgorithm" KeyAttributesProperty
newValue KeyAttributesProperty {()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: KeyAttributesProperty -> ()
keyAlgorithm :: KeyAttributesProperty -> Value Text
keyClass :: KeyAttributesProperty -> Value Text
keyModesOfUse :: KeyAttributesProperty -> KeyModesOfUseProperty
keyUsage :: KeyAttributesProperty -> Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
    = KeyAttributesProperty {keyAlgorithm :: Value Text
keyAlgorithm = PropertyType "KeyAlgorithm" KeyAttributesProperty
Value Text
newValue, ()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: ()
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
haddock_workaround_ :: ()
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
instance Property "KeyClass" KeyAttributesProperty where
  type PropertyType "KeyClass" KeyAttributesProperty = Value Prelude.Text
  set :: PropertyType "KeyClass" KeyAttributesProperty
-> KeyAttributesProperty -> KeyAttributesProperty
set PropertyType "KeyClass" KeyAttributesProperty
newValue KeyAttributesProperty {()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: KeyAttributesProperty -> ()
keyAlgorithm :: KeyAttributesProperty -> Value Text
keyClass :: KeyAttributesProperty -> Value Text
keyModesOfUse :: KeyAttributesProperty -> KeyModesOfUseProperty
keyUsage :: KeyAttributesProperty -> Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
    = KeyAttributesProperty {keyClass :: Value Text
keyClass = PropertyType "KeyClass" KeyAttributesProperty
Value Text
newValue, ()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
instance Property "KeyModesOfUse" KeyAttributesProperty where
  type PropertyType "KeyModesOfUse" KeyAttributesProperty = KeyModesOfUseProperty
  set :: PropertyType "KeyModesOfUse" KeyAttributesProperty
-> KeyAttributesProperty -> KeyAttributesProperty
set PropertyType "KeyModesOfUse" KeyAttributesProperty
newValue KeyAttributesProperty {()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: KeyAttributesProperty -> ()
keyAlgorithm :: KeyAttributesProperty -> Value Text
keyClass :: KeyAttributesProperty -> Value Text
keyModesOfUse :: KeyAttributesProperty -> KeyModesOfUseProperty
keyUsage :: KeyAttributesProperty -> Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
    = KeyAttributesProperty {keyModesOfUse :: KeyModesOfUseProperty
keyModesOfUse = PropertyType "KeyModesOfUse" KeyAttributesProperty
KeyModesOfUseProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyUsage :: Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyUsage :: Value Text
..}
instance Property "KeyUsage" KeyAttributesProperty where
  type PropertyType "KeyUsage" KeyAttributesProperty = Value Prelude.Text
  set :: PropertyType "KeyUsage" KeyAttributesProperty
-> KeyAttributesProperty -> KeyAttributesProperty
set PropertyType "KeyUsage" KeyAttributesProperty
newValue KeyAttributesProperty {()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: KeyAttributesProperty -> ()
keyAlgorithm :: KeyAttributesProperty -> Value Text
keyClass :: KeyAttributesProperty -> Value Text
keyModesOfUse :: KeyAttributesProperty -> KeyModesOfUseProperty
keyUsage :: KeyAttributesProperty -> Value Text
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
keyUsage :: Value Text
..}
    = KeyAttributesProperty {keyUsage :: Value Text
keyUsage = PropertyType "KeyUsage" KeyAttributesProperty
Value Text
newValue, ()
Value Text
KeyModesOfUseProperty
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
haddock_workaround_ :: ()
keyAlgorithm :: Value Text
keyClass :: Value Text
keyModesOfUse :: KeyModesOfUseProperty
..}