module Stratosphere.SES.ConfigurationSet.DashboardOptionsProperty (
        DashboardOptionsProperty(..), mkDashboardOptionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DashboardOptionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationset-dashboardoptions.html>
    DashboardOptionsProperty {DashboardOptionsProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-configurationset-dashboardoptions.html#cfn-ses-configurationset-dashboardoptions-engagementmetrics>
                              DashboardOptionsProperty -> Value Text
engagementMetrics :: (Value Prelude.Text)}
  deriving stock (DashboardOptionsProperty -> DashboardOptionsProperty -> Bool
(DashboardOptionsProperty -> DashboardOptionsProperty -> Bool)
-> (DashboardOptionsProperty -> DashboardOptionsProperty -> Bool)
-> Eq DashboardOptionsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DashboardOptionsProperty -> DashboardOptionsProperty -> Bool
== :: DashboardOptionsProperty -> DashboardOptionsProperty -> Bool
$c/= :: DashboardOptionsProperty -> DashboardOptionsProperty -> Bool
/= :: DashboardOptionsProperty -> DashboardOptionsProperty -> Bool
Prelude.Eq, Int -> DashboardOptionsProperty -> ShowS
[DashboardOptionsProperty] -> ShowS
DashboardOptionsProperty -> String
(Int -> DashboardOptionsProperty -> ShowS)
-> (DashboardOptionsProperty -> String)
-> ([DashboardOptionsProperty] -> ShowS)
-> Show DashboardOptionsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DashboardOptionsProperty -> ShowS
showsPrec :: Int -> DashboardOptionsProperty -> ShowS
$cshow :: DashboardOptionsProperty -> String
show :: DashboardOptionsProperty -> String
$cshowList :: [DashboardOptionsProperty] -> ShowS
showList :: [DashboardOptionsProperty] -> ShowS
Prelude.Show)
mkDashboardOptionsProperty ::
  Value Prelude.Text -> DashboardOptionsProperty
mkDashboardOptionsProperty :: Value Text -> DashboardOptionsProperty
mkDashboardOptionsProperty Value Text
engagementMetrics
  = DashboardOptionsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), engagementMetrics :: Value Text
engagementMetrics = Value Text
engagementMetrics}
instance ToResourceProperties DashboardOptionsProperty where
  toResourceProperties :: DashboardOptionsProperty -> ResourceProperties
toResourceProperties DashboardOptionsProperty {()
Value Text
haddock_workaround_ :: DashboardOptionsProperty -> ()
engagementMetrics :: DashboardOptionsProperty -> Value Text
haddock_workaround_ :: ()
engagementMetrics :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::SES::ConfigurationSet.DashboardOptions",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EngagementMetrics" 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
engagementMetrics]}
instance JSON.ToJSON DashboardOptionsProperty where
  toJSON :: DashboardOptionsProperty -> Value
toJSON DashboardOptionsProperty {()
Value Text
haddock_workaround_ :: DashboardOptionsProperty -> ()
engagementMetrics :: DashboardOptionsProperty -> Value Text
haddock_workaround_ :: ()
engagementMetrics :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"EngagementMetrics" 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
engagementMetrics]
instance Property "EngagementMetrics" DashboardOptionsProperty where
  type PropertyType "EngagementMetrics" DashboardOptionsProperty = Value Prelude.Text
  set :: PropertyType "EngagementMetrics" DashboardOptionsProperty
-> DashboardOptionsProperty -> DashboardOptionsProperty
set PropertyType "EngagementMetrics" DashboardOptionsProperty
newValue DashboardOptionsProperty {()
Value Text
haddock_workaround_ :: DashboardOptionsProperty -> ()
engagementMetrics :: DashboardOptionsProperty -> Value Text
haddock_workaround_ :: ()
engagementMetrics :: Value Text
..}
    = DashboardOptionsProperty {engagementMetrics :: Value Text
engagementMetrics = PropertyType "EngagementMetrics" DashboardOptionsProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}