module Stratosphere.CleanRooms.Collaboration.DataEncryptionMetadataProperty (
        DataEncryptionMetadataProperty(..),
        mkDataEncryptionMetadataProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DataEncryptionMetadataProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-collaboration-dataencryptionmetadata.html>
    DataEncryptionMetadataProperty {DataEncryptionMetadataProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-collaboration-dataencryptionmetadata.html#cfn-cleanrooms-collaboration-dataencryptionmetadata-allowcleartext>
                                    DataEncryptionMetadataProperty -> Value Bool
allowCleartext :: (Value Prelude.Bool),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-collaboration-dataencryptionmetadata.html#cfn-cleanrooms-collaboration-dataencryptionmetadata-allowduplicates>
                                    DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: (Value Prelude.Bool),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-collaboration-dataencryptionmetadata.html#cfn-cleanrooms-collaboration-dataencryptionmetadata-allowjoinsoncolumnswithdifferentnames>
                                    DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: (Value Prelude.Bool),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cleanrooms-collaboration-dataencryptionmetadata.html#cfn-cleanrooms-collaboration-dataencryptionmetadata-preservenulls>
                                    DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: (Value Prelude.Bool)}
  deriving stock (DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> Bool
(DataEncryptionMetadataProperty
 -> DataEncryptionMetadataProperty -> Bool)
-> (DataEncryptionMetadataProperty
    -> DataEncryptionMetadataProperty -> Bool)
-> Eq DataEncryptionMetadataProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> Bool
== :: DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> Bool
$c/= :: DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> Bool
/= :: DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> Bool
Prelude.Eq, Int -> DataEncryptionMetadataProperty -> ShowS
[DataEncryptionMetadataProperty] -> ShowS
DataEncryptionMetadataProperty -> String
(Int -> DataEncryptionMetadataProperty -> ShowS)
-> (DataEncryptionMetadataProperty -> String)
-> ([DataEncryptionMetadataProperty] -> ShowS)
-> Show DataEncryptionMetadataProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DataEncryptionMetadataProperty -> ShowS
showsPrec :: Int -> DataEncryptionMetadataProperty -> ShowS
$cshow :: DataEncryptionMetadataProperty -> String
show :: DataEncryptionMetadataProperty -> String
$cshowList :: [DataEncryptionMetadataProperty] -> ShowS
showList :: [DataEncryptionMetadataProperty] -> ShowS
Prelude.Show)
mkDataEncryptionMetadataProperty ::
  Value Prelude.Bool
  -> Value Prelude.Bool
     -> Value Prelude.Bool
        -> Value Prelude.Bool -> DataEncryptionMetadataProperty
mkDataEncryptionMetadataProperty :: Value Bool
-> Value Bool
-> Value Bool
-> Value Bool
-> DataEncryptionMetadataProperty
mkDataEncryptionMetadataProperty
  Value Bool
allowCleartext
  Value Bool
allowDuplicates
  Value Bool
allowJoinsOnColumnsWithDifferentNames
  Value Bool
preserveNulls
  = DataEncryptionMetadataProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), allowCleartext :: Value Bool
allowCleartext = Value Bool
allowCleartext,
       allowDuplicates :: Value Bool
allowDuplicates = Value Bool
allowDuplicates,
       allowJoinsOnColumnsWithDifferentNames :: Value Bool
allowJoinsOnColumnsWithDifferentNames = Value Bool
allowJoinsOnColumnsWithDifferentNames,
       preserveNulls :: Value Bool
preserveNulls = Value Bool
preserveNulls}
instance ToResourceProperties DataEncryptionMetadataProperty where
  toResourceProperties :: DataEncryptionMetadataProperty -> ResourceProperties
toResourceProperties DataEncryptionMetadataProperty {()
Value Bool
haddock_workaround_ :: DataEncryptionMetadataProperty -> ()
allowCleartext :: DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: DataEncryptionMetadataProperty -> Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CleanRooms::Collaboration.DataEncryptionMetadata",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AllowCleartext" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
allowCleartext,
                       Key
"AllowDuplicates" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
allowDuplicates,
                       Key
"AllowJoinsOnColumnsWithDifferentNames"
                         Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
allowJoinsOnColumnsWithDifferentNames,
                       Key
"PreserveNulls" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
preserveNulls]}
instance JSON.ToJSON DataEncryptionMetadataProperty where
  toJSON :: DataEncryptionMetadataProperty -> Value
toJSON DataEncryptionMetadataProperty {()
Value Bool
haddock_workaround_ :: DataEncryptionMetadataProperty -> ()
allowCleartext :: DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: DataEncryptionMetadataProperty -> Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AllowCleartext" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
allowCleartext,
         Key
"AllowDuplicates" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
allowDuplicates,
         Key
"AllowJoinsOnColumnsWithDifferentNames"
           Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
allowJoinsOnColumnsWithDifferentNames,
         Key
"PreserveNulls" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
preserveNulls]
instance Property "AllowCleartext" DataEncryptionMetadataProperty where
  type PropertyType "AllowCleartext" DataEncryptionMetadataProperty = Value Prelude.Bool
  set :: PropertyType "AllowCleartext" DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> DataEncryptionMetadataProperty
set PropertyType "AllowCleartext" DataEncryptionMetadataProperty
newValue DataEncryptionMetadataProperty {()
Value Bool
haddock_workaround_ :: DataEncryptionMetadataProperty -> ()
allowCleartext :: DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: DataEncryptionMetadataProperty -> Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
    = DataEncryptionMetadataProperty {allowCleartext :: Value Bool
allowCleartext = PropertyType "AllowCleartext" DataEncryptionMetadataProperty
Value Bool
newValue, ()
Value Bool
haddock_workaround_ :: ()
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
haddock_workaround_ :: ()
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
instance Property "AllowDuplicates" DataEncryptionMetadataProperty where
  type PropertyType "AllowDuplicates" DataEncryptionMetadataProperty = Value Prelude.Bool
  set :: PropertyType "AllowDuplicates" DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> DataEncryptionMetadataProperty
set PropertyType "AllowDuplicates" DataEncryptionMetadataProperty
newValue DataEncryptionMetadataProperty {()
Value Bool
haddock_workaround_ :: DataEncryptionMetadataProperty -> ()
allowCleartext :: DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: DataEncryptionMetadataProperty -> Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
    = DataEncryptionMetadataProperty {allowDuplicates :: Value Bool
allowDuplicates = PropertyType "AllowDuplicates" DataEncryptionMetadataProperty
Value Bool
newValue, ()
Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
instance Property "AllowJoinsOnColumnsWithDifferentNames" DataEncryptionMetadataProperty where
  type PropertyType "AllowJoinsOnColumnsWithDifferentNames" DataEncryptionMetadataProperty = Value Prelude.Bool
  set :: PropertyType
  "AllowJoinsOnColumnsWithDifferentNames"
  DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> DataEncryptionMetadataProperty
set PropertyType
  "AllowJoinsOnColumnsWithDifferentNames"
  DataEncryptionMetadataProperty
newValue DataEncryptionMetadataProperty {()
Value Bool
haddock_workaround_ :: DataEncryptionMetadataProperty -> ()
allowCleartext :: DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: DataEncryptionMetadataProperty -> Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
    = DataEncryptionMetadataProperty
        {allowJoinsOnColumnsWithDifferentNames :: Value Bool
allowJoinsOnColumnsWithDifferentNames = PropertyType
  "AllowJoinsOnColumnsWithDifferentNames"
  DataEncryptionMetadataProperty
Value Bool
newValue, ()
Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
preserveNulls :: Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
preserveNulls :: Value Bool
..}
instance Property "PreserveNulls" DataEncryptionMetadataProperty where
  type PropertyType "PreserveNulls" DataEncryptionMetadataProperty = Value Prelude.Bool
  set :: PropertyType "PreserveNulls" DataEncryptionMetadataProperty
-> DataEncryptionMetadataProperty -> DataEncryptionMetadataProperty
set PropertyType "PreserveNulls" DataEncryptionMetadataProperty
newValue DataEncryptionMetadataProperty {()
Value Bool
haddock_workaround_ :: DataEncryptionMetadataProperty -> ()
allowCleartext :: DataEncryptionMetadataProperty -> Value Bool
allowDuplicates :: DataEncryptionMetadataProperty -> Value Bool
allowJoinsOnColumnsWithDifferentNames :: DataEncryptionMetadataProperty -> Value Bool
preserveNulls :: DataEncryptionMetadataProperty -> Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
preserveNulls :: Value Bool
..}
    = DataEncryptionMetadataProperty {preserveNulls :: Value Bool
preserveNulls = PropertyType "PreserveNulls" DataEncryptionMetadataProperty
Value Bool
newValue, ()
Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
haddock_workaround_ :: ()
allowCleartext :: Value Bool
allowDuplicates :: Value Bool
allowJoinsOnColumnsWithDifferentNames :: Value Bool
..}