module Stratosphere.S3Tables.Table.IcebergMetadataProperty (
        module Exports, IcebergMetadataProperty(..),
        mkIcebergMetadataProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.S3Tables.Table.IcebergSchemaProperty as Exports
import Stratosphere.ResourceProperties
data IcebergMetadataProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html>
    IcebergMetadataProperty {IcebergMetadataProperty -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3tables-table-icebergmetadata.html#cfn-s3tables-table-icebergmetadata-icebergschema>
                             IcebergMetadataProperty -> IcebergSchemaProperty
icebergSchema :: IcebergSchemaProperty}
  deriving stock (IcebergMetadataProperty -> IcebergMetadataProperty -> Bool
(IcebergMetadataProperty -> IcebergMetadataProperty -> Bool)
-> (IcebergMetadataProperty -> IcebergMetadataProperty -> Bool)
-> Eq IcebergMetadataProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: IcebergMetadataProperty -> IcebergMetadataProperty -> Bool
== :: IcebergMetadataProperty -> IcebergMetadataProperty -> Bool
$c/= :: IcebergMetadataProperty -> IcebergMetadataProperty -> Bool
/= :: IcebergMetadataProperty -> IcebergMetadataProperty -> Bool
Prelude.Eq, Int -> IcebergMetadataProperty -> ShowS
[IcebergMetadataProperty] -> ShowS
IcebergMetadataProperty -> String
(Int -> IcebergMetadataProperty -> ShowS)
-> (IcebergMetadataProperty -> String)
-> ([IcebergMetadataProperty] -> ShowS)
-> Show IcebergMetadataProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> IcebergMetadataProperty -> ShowS
showsPrec :: Int -> IcebergMetadataProperty -> ShowS
$cshow :: IcebergMetadataProperty -> String
show :: IcebergMetadataProperty -> String
$cshowList :: [IcebergMetadataProperty] -> ShowS
showList :: [IcebergMetadataProperty] -> ShowS
Prelude.Show)
mkIcebergMetadataProperty ::
  IcebergSchemaProperty -> IcebergMetadataProperty
mkIcebergMetadataProperty :: IcebergSchemaProperty -> IcebergMetadataProperty
mkIcebergMetadataProperty IcebergSchemaProperty
icebergSchema
  = IcebergMetadataProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), icebergSchema :: IcebergSchemaProperty
icebergSchema = IcebergSchemaProperty
icebergSchema}
instance ToResourceProperties IcebergMetadataProperty where
  toResourceProperties :: IcebergMetadataProperty -> ResourceProperties
toResourceProperties IcebergMetadataProperty {()
IcebergSchemaProperty
haddock_workaround_ :: IcebergMetadataProperty -> ()
icebergSchema :: IcebergMetadataProperty -> IcebergSchemaProperty
haddock_workaround_ :: ()
icebergSchema :: IcebergSchemaProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::S3Tables::Table.IcebergMetadata",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"IcebergSchema" Key -> IcebergSchemaProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= IcebergSchemaProperty
icebergSchema]}
instance JSON.ToJSON IcebergMetadataProperty where
  toJSON :: IcebergMetadataProperty -> Value
toJSON IcebergMetadataProperty {()
IcebergSchemaProperty
haddock_workaround_ :: IcebergMetadataProperty -> ()
icebergSchema :: IcebergMetadataProperty -> IcebergSchemaProperty
haddock_workaround_ :: ()
icebergSchema :: IcebergSchemaProperty
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"IcebergSchema" Key -> IcebergSchemaProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= IcebergSchemaProperty
icebergSchema]
instance Property "IcebergSchema" IcebergMetadataProperty where
  type PropertyType "IcebergSchema" IcebergMetadataProperty = IcebergSchemaProperty
  set :: PropertyType "IcebergSchema" IcebergMetadataProperty
-> IcebergMetadataProperty -> IcebergMetadataProperty
set PropertyType "IcebergSchema" IcebergMetadataProperty
newValue IcebergMetadataProperty {()
IcebergSchemaProperty
haddock_workaround_ :: IcebergMetadataProperty -> ()
icebergSchema :: IcebergMetadataProperty -> IcebergSchemaProperty
haddock_workaround_ :: ()
icebergSchema :: IcebergSchemaProperty
..}
    = IcebergMetadataProperty {icebergSchema :: IcebergSchemaProperty
icebergSchema = PropertyType "IcebergSchema" IcebergMetadataProperty
IcebergSchemaProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}