module Stratosphere.ECS.Service.DeploymentAlarmsProperty (
        DeploymentAlarmsProperty(..), mkDeploymentAlarmsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DeploymentAlarmsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentalarms.html>
    DeploymentAlarmsProperty {DeploymentAlarmsProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentalarms.html#cfn-ecs-service-deploymentalarms-alarmnames>
                              DeploymentAlarmsProperty -> ValueList Text
alarmNames :: (ValueList Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentalarms.html#cfn-ecs-service-deploymentalarms-enable>
                              DeploymentAlarmsProperty -> Value Bool
enable :: (Value Prelude.Bool),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentalarms.html#cfn-ecs-service-deploymentalarms-rollback>
                              DeploymentAlarmsProperty -> Value Bool
rollback :: (Value Prelude.Bool)}
  deriving stock (DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool
(DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool)
-> (DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool)
-> Eq DeploymentAlarmsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool
== :: DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool
$c/= :: DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool
/= :: DeploymentAlarmsProperty -> DeploymentAlarmsProperty -> Bool
Prelude.Eq, Int -> DeploymentAlarmsProperty -> ShowS
[DeploymentAlarmsProperty] -> ShowS
DeploymentAlarmsProperty -> String
(Int -> DeploymentAlarmsProperty -> ShowS)
-> (DeploymentAlarmsProperty -> String)
-> ([DeploymentAlarmsProperty] -> ShowS)
-> Show DeploymentAlarmsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DeploymentAlarmsProperty -> ShowS
showsPrec :: Int -> DeploymentAlarmsProperty -> ShowS
$cshow :: DeploymentAlarmsProperty -> String
show :: DeploymentAlarmsProperty -> String
$cshowList :: [DeploymentAlarmsProperty] -> ShowS
showList :: [DeploymentAlarmsProperty] -> ShowS
Prelude.Show)
mkDeploymentAlarmsProperty ::
  ValueList Prelude.Text
  -> Value Prelude.Bool
     -> Value Prelude.Bool -> DeploymentAlarmsProperty
mkDeploymentAlarmsProperty :: ValueList Text
-> Value Bool -> Value Bool -> DeploymentAlarmsProperty
mkDeploymentAlarmsProperty ValueList Text
alarmNames Value Bool
enable Value Bool
rollback
  = DeploymentAlarmsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), alarmNames :: ValueList Text
alarmNames = ValueList Text
alarmNames,
       enable :: Value Bool
enable = Value Bool
enable, rollback :: Value Bool
rollback = Value Bool
rollback}
instance ToResourceProperties DeploymentAlarmsProperty where
  toResourceProperties :: DeploymentAlarmsProperty -> ResourceProperties
toResourceProperties DeploymentAlarmsProperty {()
ValueList Text
Value Bool
haddock_workaround_ :: DeploymentAlarmsProperty -> ()
alarmNames :: DeploymentAlarmsProperty -> ValueList Text
enable :: DeploymentAlarmsProperty -> Value Bool
rollback :: DeploymentAlarmsProperty -> Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
rollback :: Value Bool
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ECS::Service.DeploymentAlarms",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AlarmNames" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
alarmNames,
                       Key
"Enable" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
enable, Key
"Rollback" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
rollback]}
instance JSON.ToJSON DeploymentAlarmsProperty where
  toJSON :: DeploymentAlarmsProperty -> Value
toJSON DeploymentAlarmsProperty {()
ValueList Text
Value Bool
haddock_workaround_ :: DeploymentAlarmsProperty -> ()
alarmNames :: DeploymentAlarmsProperty -> ValueList Text
enable :: DeploymentAlarmsProperty -> Value Bool
rollback :: DeploymentAlarmsProperty -> Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
rollback :: Value Bool
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AlarmNames" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
alarmNames, Key
"Enable" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
enable,
         Key
"Rollback" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
rollback]
instance Property "AlarmNames" DeploymentAlarmsProperty where
  type PropertyType "AlarmNames" DeploymentAlarmsProperty = ValueList Prelude.Text
  set :: PropertyType "AlarmNames" DeploymentAlarmsProperty
-> DeploymentAlarmsProperty -> DeploymentAlarmsProperty
set PropertyType "AlarmNames" DeploymentAlarmsProperty
newValue DeploymentAlarmsProperty {()
ValueList Text
Value Bool
haddock_workaround_ :: DeploymentAlarmsProperty -> ()
alarmNames :: DeploymentAlarmsProperty -> ValueList Text
enable :: DeploymentAlarmsProperty -> Value Bool
rollback :: DeploymentAlarmsProperty -> Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
rollback :: Value Bool
..}
    = DeploymentAlarmsProperty {alarmNames :: ValueList Text
alarmNames = PropertyType "AlarmNames" DeploymentAlarmsProperty
ValueList Text
newValue, ()
Value Bool
haddock_workaround_ :: ()
enable :: Value Bool
rollback :: Value Bool
haddock_workaround_ :: ()
enable :: Value Bool
rollback :: Value Bool
..}
instance Property "Enable" DeploymentAlarmsProperty where
  type PropertyType "Enable" DeploymentAlarmsProperty = Value Prelude.Bool
  set :: PropertyType "Enable" DeploymentAlarmsProperty
-> DeploymentAlarmsProperty -> DeploymentAlarmsProperty
set PropertyType "Enable" DeploymentAlarmsProperty
newValue DeploymentAlarmsProperty {()
ValueList Text
Value Bool
haddock_workaround_ :: DeploymentAlarmsProperty -> ()
alarmNames :: DeploymentAlarmsProperty -> ValueList Text
enable :: DeploymentAlarmsProperty -> Value Bool
rollback :: DeploymentAlarmsProperty -> Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
rollback :: Value Bool
..}
    = DeploymentAlarmsProperty {enable :: Value Bool
enable = PropertyType "Enable" DeploymentAlarmsProperty
Value Bool
newValue, ()
ValueList Text
Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
rollback :: Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
rollback :: Value Bool
..}
instance Property "Rollback" DeploymentAlarmsProperty where
  type PropertyType "Rollback" DeploymentAlarmsProperty = Value Prelude.Bool
  set :: PropertyType "Rollback" DeploymentAlarmsProperty
-> DeploymentAlarmsProperty -> DeploymentAlarmsProperty
set PropertyType "Rollback" DeploymentAlarmsProperty
newValue DeploymentAlarmsProperty {()
ValueList Text
Value Bool
haddock_workaround_ :: DeploymentAlarmsProperty -> ()
alarmNames :: DeploymentAlarmsProperty -> ValueList Text
enable :: DeploymentAlarmsProperty -> Value Bool
rollback :: DeploymentAlarmsProperty -> Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
rollback :: Value Bool
..}
    = DeploymentAlarmsProperty {rollback :: Value Bool
rollback = PropertyType "Rollback" DeploymentAlarmsProperty
Value Bool
newValue, ()
ValueList Text
Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
haddock_workaround_ :: ()
alarmNames :: ValueList Text
enable :: Value Bool
..}