module Stratosphere.QuickSight.Dashboard.CalculatedMeasureFieldProperty (
        CalculatedMeasureFieldProperty(..),
        mkCalculatedMeasureFieldProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CalculatedMeasureFieldProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-calculatedmeasurefield.html>
    CalculatedMeasureFieldProperty {CalculatedMeasureFieldProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-calculatedmeasurefield.html#cfn-quicksight-dashboard-calculatedmeasurefield-expression>
                                    CalculatedMeasureFieldProperty -> Value Text
expression :: (Value Prelude.Text),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-dashboard-calculatedmeasurefield.html#cfn-quicksight-dashboard-calculatedmeasurefield-fieldid>
                                    CalculatedMeasureFieldProperty -> Value Text
fieldId :: (Value Prelude.Text)}
  deriving stock (CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> Bool
(CalculatedMeasureFieldProperty
 -> CalculatedMeasureFieldProperty -> Bool)
-> (CalculatedMeasureFieldProperty
    -> CalculatedMeasureFieldProperty -> Bool)
-> Eq CalculatedMeasureFieldProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> Bool
== :: CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> Bool
$c/= :: CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> Bool
/= :: CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> Bool
Prelude.Eq, Int -> CalculatedMeasureFieldProperty -> ShowS
[CalculatedMeasureFieldProperty] -> ShowS
CalculatedMeasureFieldProperty -> String
(Int -> CalculatedMeasureFieldProperty -> ShowS)
-> (CalculatedMeasureFieldProperty -> String)
-> ([CalculatedMeasureFieldProperty] -> ShowS)
-> Show CalculatedMeasureFieldProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CalculatedMeasureFieldProperty -> ShowS
showsPrec :: Int -> CalculatedMeasureFieldProperty -> ShowS
$cshow :: CalculatedMeasureFieldProperty -> String
show :: CalculatedMeasureFieldProperty -> String
$cshowList :: [CalculatedMeasureFieldProperty] -> ShowS
showList :: [CalculatedMeasureFieldProperty] -> ShowS
Prelude.Show)
mkCalculatedMeasureFieldProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> CalculatedMeasureFieldProperty
mkCalculatedMeasureFieldProperty :: Value Text -> Value Text -> CalculatedMeasureFieldProperty
mkCalculatedMeasureFieldProperty Value Text
expression Value Text
fieldId
  = CalculatedMeasureFieldProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), expression :: Value Text
expression = Value Text
expression,
       fieldId :: Value Text
fieldId = Value Text
fieldId}
instance ToResourceProperties CalculatedMeasureFieldProperty where
  toResourceProperties :: CalculatedMeasureFieldProperty -> ResourceProperties
toResourceProperties CalculatedMeasureFieldProperty {()
Value Text
haddock_workaround_ :: CalculatedMeasureFieldProperty -> ()
expression :: CalculatedMeasureFieldProperty -> Value Text
fieldId :: CalculatedMeasureFieldProperty -> Value Text
haddock_workaround_ :: ()
expression :: Value Text
fieldId :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::Dashboard.CalculatedMeasureField",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Expression" 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
expression,
                       Key
"FieldId" 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
fieldId]}
instance JSON.ToJSON CalculatedMeasureFieldProperty where
  toJSON :: CalculatedMeasureFieldProperty -> Value
toJSON CalculatedMeasureFieldProperty {()
Value Text
haddock_workaround_ :: CalculatedMeasureFieldProperty -> ()
expression :: CalculatedMeasureFieldProperty -> Value Text
fieldId :: CalculatedMeasureFieldProperty -> Value Text
haddock_workaround_ :: ()
expression :: Value Text
fieldId :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Expression" 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
expression, Key
"FieldId" 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
fieldId]
instance Property "Expression" CalculatedMeasureFieldProperty where
  type PropertyType "Expression" CalculatedMeasureFieldProperty = Value Prelude.Text
  set :: PropertyType "Expression" CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> CalculatedMeasureFieldProperty
set PropertyType "Expression" CalculatedMeasureFieldProperty
newValue CalculatedMeasureFieldProperty {()
Value Text
haddock_workaround_ :: CalculatedMeasureFieldProperty -> ()
expression :: CalculatedMeasureFieldProperty -> Value Text
fieldId :: CalculatedMeasureFieldProperty -> Value Text
haddock_workaround_ :: ()
expression :: Value Text
fieldId :: Value Text
..}
    = CalculatedMeasureFieldProperty {expression :: Value Text
expression = PropertyType "Expression" CalculatedMeasureFieldProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
fieldId :: Value Text
haddock_workaround_ :: ()
fieldId :: Value Text
..}
instance Property "FieldId" CalculatedMeasureFieldProperty where
  type PropertyType "FieldId" CalculatedMeasureFieldProperty = Value Prelude.Text
  set :: PropertyType "FieldId" CalculatedMeasureFieldProperty
-> CalculatedMeasureFieldProperty -> CalculatedMeasureFieldProperty
set PropertyType "FieldId" CalculatedMeasureFieldProperty
newValue CalculatedMeasureFieldProperty {()
Value Text
haddock_workaround_ :: CalculatedMeasureFieldProperty -> ()
expression :: CalculatedMeasureFieldProperty -> Value Text
fieldId :: CalculatedMeasureFieldProperty -> Value Text
haddock_workaround_ :: ()
expression :: Value Text
fieldId :: Value Text
..}
    = CalculatedMeasureFieldProperty {fieldId :: Value Text
fieldId = PropertyType "FieldId" CalculatedMeasureFieldProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
expression :: Value Text
haddock_workaround_ :: ()
expression :: Value Text
..}