module Stratosphere.QuickSight.Template.DataSetSchemaProperty (
        module Exports, DataSetSchemaProperty(..), mkDataSetSchemaProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QuickSight.Template.ColumnSchemaProperty as Exports
import Stratosphere.ResourceProperties
data DataSetSchemaProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-datasetschema.html>
    DataSetSchemaProperty {DataSetSchemaProperty -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-datasetschema.html#cfn-quicksight-template-datasetschema-columnschemalist>
                           DataSetSchemaProperty -> Maybe [ColumnSchemaProperty]
columnSchemaList :: (Prelude.Maybe [ColumnSchemaProperty])}
  deriving stock (DataSetSchemaProperty -> DataSetSchemaProperty -> Bool
(DataSetSchemaProperty -> DataSetSchemaProperty -> Bool)
-> (DataSetSchemaProperty -> DataSetSchemaProperty -> Bool)
-> Eq DataSetSchemaProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DataSetSchemaProperty -> DataSetSchemaProperty -> Bool
== :: DataSetSchemaProperty -> DataSetSchemaProperty -> Bool
$c/= :: DataSetSchemaProperty -> DataSetSchemaProperty -> Bool
/= :: DataSetSchemaProperty -> DataSetSchemaProperty -> Bool
Prelude.Eq, Int -> DataSetSchemaProperty -> ShowS
[DataSetSchemaProperty] -> ShowS
DataSetSchemaProperty -> String
(Int -> DataSetSchemaProperty -> ShowS)
-> (DataSetSchemaProperty -> String)
-> ([DataSetSchemaProperty] -> ShowS)
-> Show DataSetSchemaProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DataSetSchemaProperty -> ShowS
showsPrec :: Int -> DataSetSchemaProperty -> ShowS
$cshow :: DataSetSchemaProperty -> String
show :: DataSetSchemaProperty -> String
$cshowList :: [DataSetSchemaProperty] -> ShowS
showList :: [DataSetSchemaProperty] -> ShowS
Prelude.Show)
mkDataSetSchemaProperty :: DataSetSchemaProperty
mkDataSetSchemaProperty :: DataSetSchemaProperty
mkDataSetSchemaProperty
  = DataSetSchemaProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), columnSchemaList :: Maybe [ColumnSchemaProperty]
columnSchemaList = Maybe [ColumnSchemaProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties DataSetSchemaProperty where
  toResourceProperties :: DataSetSchemaProperty -> ResourceProperties
toResourceProperties DataSetSchemaProperty {Maybe [ColumnSchemaProperty]
()
haddock_workaround_ :: DataSetSchemaProperty -> ()
columnSchemaList :: DataSetSchemaProperty -> Maybe [ColumnSchemaProperty]
haddock_workaround_ :: ()
columnSchemaList :: Maybe [ColumnSchemaProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::Template.DataSetSchema",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> [ColumnSchemaProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ColumnSchemaList" ([ColumnSchemaProperty] -> (Key, Value))
-> Maybe [ColumnSchemaProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ColumnSchemaProperty]
columnSchemaList])}
instance JSON.ToJSON DataSetSchemaProperty where
  toJSON :: DataSetSchemaProperty -> Value
toJSON DataSetSchemaProperty {Maybe [ColumnSchemaProperty]
()
haddock_workaround_ :: DataSetSchemaProperty -> ()
columnSchemaList :: DataSetSchemaProperty -> Maybe [ColumnSchemaProperty]
haddock_workaround_ :: ()
columnSchemaList :: Maybe [ColumnSchemaProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> [ColumnSchemaProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ColumnSchemaList" ([ColumnSchemaProperty] -> (Key, Value))
-> Maybe [ColumnSchemaProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ColumnSchemaProperty]
columnSchemaList]))
instance Property "ColumnSchemaList" DataSetSchemaProperty where
  type PropertyType "ColumnSchemaList" DataSetSchemaProperty = [ColumnSchemaProperty]
  set :: PropertyType "ColumnSchemaList" DataSetSchemaProperty
-> DataSetSchemaProperty -> DataSetSchemaProperty
set PropertyType "ColumnSchemaList" DataSetSchemaProperty
newValue DataSetSchemaProperty {Maybe [ColumnSchemaProperty]
()
haddock_workaround_ :: DataSetSchemaProperty -> ()
columnSchemaList :: DataSetSchemaProperty -> Maybe [ColumnSchemaProperty]
haddock_workaround_ :: ()
columnSchemaList :: Maybe [ColumnSchemaProperty]
..}
    = DataSetSchemaProperty
        {columnSchemaList :: Maybe [ColumnSchemaProperty]
columnSchemaList = [ColumnSchemaProperty] -> Maybe [ColumnSchemaProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [ColumnSchemaProperty]
PropertyType "ColumnSchemaList" DataSetSchemaProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}