module Stratosphere.QuickSight.Theme.TileLayoutStyleProperty (
        module Exports, TileLayoutStyleProperty(..),
        mkTileLayoutStyleProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QuickSight.Theme.GutterStyleProperty as Exports
import {-# SOURCE #-} Stratosphere.QuickSight.Theme.MarginStyleProperty as Exports
import Stratosphere.ResourceProperties
data TileLayoutStyleProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilelayoutstyle.html>
    TileLayoutStyleProperty {TileLayoutStyleProperty -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilelayoutstyle.html#cfn-quicksight-theme-tilelayoutstyle-gutter>
                             TileLayoutStyleProperty -> Maybe GutterStyleProperty
gutter :: (Prelude.Maybe GutterStyleProperty),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-theme-tilelayoutstyle.html#cfn-quicksight-theme-tilelayoutstyle-margin>
                             TileLayoutStyleProperty -> Maybe MarginStyleProperty
margin :: (Prelude.Maybe MarginStyleProperty)}
  deriving stock (TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool
(TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool)
-> (TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool)
-> Eq TileLayoutStyleProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool
== :: TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool
$c/= :: TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool
/= :: TileLayoutStyleProperty -> TileLayoutStyleProperty -> Bool
Prelude.Eq, Int -> TileLayoutStyleProperty -> ShowS
[TileLayoutStyleProperty] -> ShowS
TileLayoutStyleProperty -> String
(Int -> TileLayoutStyleProperty -> ShowS)
-> (TileLayoutStyleProperty -> String)
-> ([TileLayoutStyleProperty] -> ShowS)
-> Show TileLayoutStyleProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TileLayoutStyleProperty -> ShowS
showsPrec :: Int -> TileLayoutStyleProperty -> ShowS
$cshow :: TileLayoutStyleProperty -> String
show :: TileLayoutStyleProperty -> String
$cshowList :: [TileLayoutStyleProperty] -> ShowS
showList :: [TileLayoutStyleProperty] -> ShowS
Prelude.Show)
mkTileLayoutStyleProperty :: TileLayoutStyleProperty
mkTileLayoutStyleProperty :: TileLayoutStyleProperty
mkTileLayoutStyleProperty
  = TileLayoutStyleProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), gutter :: Maybe GutterStyleProperty
gutter = Maybe GutterStyleProperty
forall a. Maybe a
Prelude.Nothing,
       margin :: Maybe MarginStyleProperty
margin = Maybe MarginStyleProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties TileLayoutStyleProperty where
  toResourceProperties :: TileLayoutStyleProperty -> ResourceProperties
toResourceProperties TileLayoutStyleProperty {Maybe GutterStyleProperty
Maybe MarginStyleProperty
()
haddock_workaround_ :: TileLayoutStyleProperty -> ()
gutter :: TileLayoutStyleProperty -> Maybe GutterStyleProperty
margin :: TileLayoutStyleProperty -> Maybe MarginStyleProperty
haddock_workaround_ :: ()
gutter :: Maybe GutterStyleProperty
margin :: Maybe MarginStyleProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::Theme.TileLayoutStyle",
         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 -> GutterStyleProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Gutter" (GutterStyleProperty -> (Key, Value))
-> Maybe GutterStyleProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GutterStyleProperty
gutter,
                            Key -> MarginStyleProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Margin" (MarginStyleProperty -> (Key, Value))
-> Maybe MarginStyleProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MarginStyleProperty
margin])}
instance JSON.ToJSON TileLayoutStyleProperty where
  toJSON :: TileLayoutStyleProperty -> Value
toJSON TileLayoutStyleProperty {Maybe GutterStyleProperty
Maybe MarginStyleProperty
()
haddock_workaround_ :: TileLayoutStyleProperty -> ()
gutter :: TileLayoutStyleProperty -> Maybe GutterStyleProperty
margin :: TileLayoutStyleProperty -> Maybe MarginStyleProperty
haddock_workaround_ :: ()
gutter :: Maybe GutterStyleProperty
margin :: Maybe MarginStyleProperty
..}
    = [(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 -> GutterStyleProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Gutter" (GutterStyleProperty -> (Key, Value))
-> Maybe GutterStyleProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GutterStyleProperty
gutter,
               Key -> MarginStyleProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Margin" (MarginStyleProperty -> (Key, Value))
-> Maybe MarginStyleProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MarginStyleProperty
margin]))
instance Property "Gutter" TileLayoutStyleProperty where
  type PropertyType "Gutter" TileLayoutStyleProperty = GutterStyleProperty
  set :: PropertyType "Gutter" TileLayoutStyleProperty
-> TileLayoutStyleProperty -> TileLayoutStyleProperty
set PropertyType "Gutter" TileLayoutStyleProperty
newValue TileLayoutStyleProperty {Maybe GutterStyleProperty
Maybe MarginStyleProperty
()
haddock_workaround_ :: TileLayoutStyleProperty -> ()
gutter :: TileLayoutStyleProperty -> Maybe GutterStyleProperty
margin :: TileLayoutStyleProperty -> Maybe MarginStyleProperty
haddock_workaround_ :: ()
gutter :: Maybe GutterStyleProperty
margin :: Maybe MarginStyleProperty
..}
    = TileLayoutStyleProperty {gutter :: Maybe GutterStyleProperty
gutter = GutterStyleProperty -> Maybe GutterStyleProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Gutter" TileLayoutStyleProperty
GutterStyleProperty
newValue, Maybe MarginStyleProperty
()
haddock_workaround_ :: ()
margin :: Maybe MarginStyleProperty
haddock_workaround_ :: ()
margin :: Maybe MarginStyleProperty
..}
instance Property "Margin" TileLayoutStyleProperty where
  type PropertyType "Margin" TileLayoutStyleProperty = MarginStyleProperty
  set :: PropertyType "Margin" TileLayoutStyleProperty
-> TileLayoutStyleProperty -> TileLayoutStyleProperty
set PropertyType "Margin" TileLayoutStyleProperty
newValue TileLayoutStyleProperty {Maybe GutterStyleProperty
Maybe MarginStyleProperty
()
haddock_workaround_ :: TileLayoutStyleProperty -> ()
gutter :: TileLayoutStyleProperty -> Maybe GutterStyleProperty
margin :: TileLayoutStyleProperty -> Maybe MarginStyleProperty
haddock_workaround_ :: ()
gutter :: Maybe GutterStyleProperty
margin :: Maybe MarginStyleProperty
..}
    = TileLayoutStyleProperty {margin :: Maybe MarginStyleProperty
margin = MarginStyleProperty -> Maybe MarginStyleProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Margin" TileLayoutStyleProperty
MarginStyleProperty
newValue, Maybe GutterStyleProperty
()
haddock_workaround_ :: ()
gutter :: Maybe GutterStyleProperty
haddock_workaround_ :: ()
gutter :: Maybe GutterStyleProperty
..}