module Stratosphere.QuickSight.Template.FilterCrossSheetControlProperty (
        module Exports, FilterCrossSheetControlProperty(..),
        mkFilterCrossSheetControlProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QuickSight.Template.CascadingControlConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data FilterCrossSheetControlProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-filtercrosssheetcontrol.html>
    FilterCrossSheetControlProperty {FilterCrossSheetControlProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-filtercrosssheetcontrol.html#cfn-quicksight-template-filtercrosssheetcontrol-cascadingcontrolconfiguration>
                                     FilterCrossSheetControlProperty
-> Maybe CascadingControlConfigurationProperty
cascadingControlConfiguration :: (Prelude.Maybe CascadingControlConfigurationProperty),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-filtercrosssheetcontrol.html#cfn-quicksight-template-filtercrosssheetcontrol-filtercontrolid>
                                     FilterCrossSheetControlProperty -> Value Text
filterControlId :: (Value Prelude.Text),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-template-filtercrosssheetcontrol.html#cfn-quicksight-template-filtercrosssheetcontrol-sourcefilterid>
                                     FilterCrossSheetControlProperty -> Value Text
sourceFilterId :: (Value Prelude.Text)}
  deriving stock (FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty -> Bool
(FilterCrossSheetControlProperty
 -> FilterCrossSheetControlProperty -> Bool)
-> (FilterCrossSheetControlProperty
    -> FilterCrossSheetControlProperty -> Bool)
-> Eq FilterCrossSheetControlProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty -> Bool
== :: FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty -> Bool
$c/= :: FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty -> Bool
/= :: FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty -> Bool
Prelude.Eq, Int -> FilterCrossSheetControlProperty -> ShowS
[FilterCrossSheetControlProperty] -> ShowS
FilterCrossSheetControlProperty -> String
(Int -> FilterCrossSheetControlProperty -> ShowS)
-> (FilterCrossSheetControlProperty -> String)
-> ([FilterCrossSheetControlProperty] -> ShowS)
-> Show FilterCrossSheetControlProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FilterCrossSheetControlProperty -> ShowS
showsPrec :: Int -> FilterCrossSheetControlProperty -> ShowS
$cshow :: FilterCrossSheetControlProperty -> String
show :: FilterCrossSheetControlProperty -> String
$cshowList :: [FilterCrossSheetControlProperty] -> ShowS
showList :: [FilterCrossSheetControlProperty] -> ShowS
Prelude.Show)
mkFilterCrossSheetControlProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> FilterCrossSheetControlProperty
mkFilterCrossSheetControlProperty :: Value Text -> Value Text -> FilterCrossSheetControlProperty
mkFilterCrossSheetControlProperty Value Text
filterControlId Value Text
sourceFilterId
  = FilterCrossSheetControlProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), filterControlId :: Value Text
filterControlId = Value Text
filterControlId,
       sourceFilterId :: Value Text
sourceFilterId = Value Text
sourceFilterId,
       cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
cascadingControlConfiguration = Maybe CascadingControlConfigurationProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties FilterCrossSheetControlProperty where
  toResourceProperties :: FilterCrossSheetControlProperty -> ResourceProperties
toResourceProperties FilterCrossSheetControlProperty {Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: FilterCrossSheetControlProperty -> ()
cascadingControlConfiguration :: FilterCrossSheetControlProperty
-> Maybe CascadingControlConfigurationProperty
filterControlId :: FilterCrossSheetControlProperty -> Value Text
sourceFilterId :: FilterCrossSheetControlProperty -> Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
sourceFilterId :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::Template.FilterCrossSheetControl",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"FilterControlId" 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
filterControlId,
                            Key
"SourceFilterId" 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
sourceFilterId]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> CascadingControlConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"CascadingControlConfiguration"
                                 (CascadingControlConfigurationProperty -> (Key, Value))
-> Maybe CascadingControlConfigurationProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CascadingControlConfigurationProperty
cascadingControlConfiguration]))}
instance JSON.ToJSON FilterCrossSheetControlProperty where
  toJSON :: FilterCrossSheetControlProperty -> Value
toJSON FilterCrossSheetControlProperty {Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: FilterCrossSheetControlProperty -> ()
cascadingControlConfiguration :: FilterCrossSheetControlProperty
-> Maybe CascadingControlConfigurationProperty
filterControlId :: FilterCrossSheetControlProperty -> Value Text
sourceFilterId :: FilterCrossSheetControlProperty -> Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
sourceFilterId :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"FilterControlId" 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
filterControlId,
               Key
"SourceFilterId" 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
sourceFilterId]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> CascadingControlConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"CascadingControlConfiguration"
                    (CascadingControlConfigurationProperty -> (Key, Value))
-> Maybe CascadingControlConfigurationProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CascadingControlConfigurationProperty
cascadingControlConfiguration])))
instance Property "CascadingControlConfiguration" FilterCrossSheetControlProperty where
  type PropertyType "CascadingControlConfiguration" FilterCrossSheetControlProperty = CascadingControlConfigurationProperty
  set :: PropertyType
  "CascadingControlConfiguration" FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty
set PropertyType
  "CascadingControlConfiguration" FilterCrossSheetControlProperty
newValue FilterCrossSheetControlProperty {Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: FilterCrossSheetControlProperty -> ()
cascadingControlConfiguration :: FilterCrossSheetControlProperty
-> Maybe CascadingControlConfigurationProperty
filterControlId :: FilterCrossSheetControlProperty -> Value Text
sourceFilterId :: FilterCrossSheetControlProperty -> Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
sourceFilterId :: Value Text
..}
    = FilterCrossSheetControlProperty
        {cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
cascadingControlConfiguration = CascadingControlConfigurationProperty
-> Maybe CascadingControlConfigurationProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "CascadingControlConfiguration" FilterCrossSheetControlProperty
CascadingControlConfigurationProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
filterControlId :: Value Text
sourceFilterId :: Value Text
haddock_workaround_ :: ()
filterControlId :: Value Text
sourceFilterId :: Value Text
..}
instance Property "FilterControlId" FilterCrossSheetControlProperty where
  type PropertyType "FilterControlId" FilterCrossSheetControlProperty = Value Prelude.Text
  set :: PropertyType "FilterControlId" FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty
set PropertyType "FilterControlId" FilterCrossSheetControlProperty
newValue FilterCrossSheetControlProperty {Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: FilterCrossSheetControlProperty -> ()
cascadingControlConfiguration :: FilterCrossSheetControlProperty
-> Maybe CascadingControlConfigurationProperty
filterControlId :: FilterCrossSheetControlProperty -> Value Text
sourceFilterId :: FilterCrossSheetControlProperty -> Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
sourceFilterId :: Value Text
..}
    = FilterCrossSheetControlProperty {filterControlId :: Value Text
filterControlId = PropertyType "FilterControlId" FilterCrossSheetControlProperty
Value Text
newValue, Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
sourceFilterId :: Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
sourceFilterId :: Value Text
..}
instance Property "SourceFilterId" FilterCrossSheetControlProperty where
  type PropertyType "SourceFilterId" FilterCrossSheetControlProperty = Value Prelude.Text
  set :: PropertyType "SourceFilterId" FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty
-> FilterCrossSheetControlProperty
set PropertyType "SourceFilterId" FilterCrossSheetControlProperty
newValue FilterCrossSheetControlProperty {Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: FilterCrossSheetControlProperty -> ()
cascadingControlConfiguration :: FilterCrossSheetControlProperty
-> Maybe CascadingControlConfigurationProperty
filterControlId :: FilterCrossSheetControlProperty -> Value Text
sourceFilterId :: FilterCrossSheetControlProperty -> Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
sourceFilterId :: Value Text
..}
    = FilterCrossSheetControlProperty {sourceFilterId :: Value Text
sourceFilterId = PropertyType "SourceFilterId" FilterCrossSheetControlProperty
Value Text
newValue, Maybe CascadingControlConfigurationProperty
()
Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
haddock_workaround_ :: ()
cascadingControlConfiguration :: Maybe CascadingControlConfigurationProperty
filterControlId :: Value Text
..}