module Stratosphere.AutoScaling.AutoScalingGroup.AvailabilityZoneImpairmentPolicyProperty (
        AvailabilityZoneImpairmentPolicyProperty(..),
        mkAvailabilityZoneImpairmentPolicyProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AvailabilityZoneImpairmentPolicyProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy.html>
    AvailabilityZoneImpairmentPolicyProperty {AvailabilityZoneImpairmentPolicyProperty -> ()
haddock_workaround_ :: (),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy.html#cfn-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy-impairedzonehealthcheckbehavior>
                                              AvailabilityZoneImpairmentPolicyProperty -> Value Text
impairedZoneHealthCheckBehavior :: (Value Prelude.Text),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy.html#cfn-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy-zonalshiftenabled>
                                              AvailabilityZoneImpairmentPolicyProperty -> Value Bool
zonalShiftEnabled :: (Value Prelude.Bool)}
  deriving stock (AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty -> Bool
(AvailabilityZoneImpairmentPolicyProperty
 -> AvailabilityZoneImpairmentPolicyProperty -> Bool)
-> (AvailabilityZoneImpairmentPolicyProperty
    -> AvailabilityZoneImpairmentPolicyProperty -> Bool)
-> Eq AvailabilityZoneImpairmentPolicyProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty -> Bool
== :: AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty -> Bool
$c/= :: AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty -> Bool
/= :: AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty -> Bool
Prelude.Eq, Int -> AvailabilityZoneImpairmentPolicyProperty -> ShowS
[AvailabilityZoneImpairmentPolicyProperty] -> ShowS
AvailabilityZoneImpairmentPolicyProperty -> String
(Int -> AvailabilityZoneImpairmentPolicyProperty -> ShowS)
-> (AvailabilityZoneImpairmentPolicyProperty -> String)
-> ([AvailabilityZoneImpairmentPolicyProperty] -> ShowS)
-> Show AvailabilityZoneImpairmentPolicyProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AvailabilityZoneImpairmentPolicyProperty -> ShowS
showsPrec :: Int -> AvailabilityZoneImpairmentPolicyProperty -> ShowS
$cshow :: AvailabilityZoneImpairmentPolicyProperty -> String
show :: AvailabilityZoneImpairmentPolicyProperty -> String
$cshowList :: [AvailabilityZoneImpairmentPolicyProperty] -> ShowS
showList :: [AvailabilityZoneImpairmentPolicyProperty] -> ShowS
Prelude.Show)
mkAvailabilityZoneImpairmentPolicyProperty ::
  Value Prelude.Text
  -> Value Prelude.Bool -> AvailabilityZoneImpairmentPolicyProperty
mkAvailabilityZoneImpairmentPolicyProperty :: Value Text
-> Value Bool -> AvailabilityZoneImpairmentPolicyProperty
mkAvailabilityZoneImpairmentPolicyProperty
  Value Text
impairedZoneHealthCheckBehavior
  Value Bool
zonalShiftEnabled
  = AvailabilityZoneImpairmentPolicyProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       impairedZoneHealthCheckBehavior :: Value Text
impairedZoneHealthCheckBehavior = Value Text
impairedZoneHealthCheckBehavior,
       zonalShiftEnabled :: Value Bool
zonalShiftEnabled = Value Bool
zonalShiftEnabled}
instance ToResourceProperties AvailabilityZoneImpairmentPolicyProperty where
  toResourceProperties :: AvailabilityZoneImpairmentPolicyProperty -> ResourceProperties
toResourceProperties AvailabilityZoneImpairmentPolicyProperty {()
Value Bool
Value Text
haddock_workaround_ :: AvailabilityZoneImpairmentPolicyProperty -> ()
impairedZoneHealthCheckBehavior :: AvailabilityZoneImpairmentPolicyProperty -> Value Text
zonalShiftEnabled :: AvailabilityZoneImpairmentPolicyProperty -> Value Bool
haddock_workaround_ :: ()
impairedZoneHealthCheckBehavior :: Value Text
zonalShiftEnabled :: Value Bool
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AutoScaling::AutoScalingGroup.AvailabilityZoneImpairmentPolicy",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ImpairedZoneHealthCheckBehavior"
                         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
impairedZoneHealthCheckBehavior,
                       Key
"ZonalShiftEnabled" 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
zonalShiftEnabled]}
instance JSON.ToJSON AvailabilityZoneImpairmentPolicyProperty where
  toJSON :: AvailabilityZoneImpairmentPolicyProperty -> Value
toJSON AvailabilityZoneImpairmentPolicyProperty {()
Value Bool
Value Text
haddock_workaround_ :: AvailabilityZoneImpairmentPolicyProperty -> ()
impairedZoneHealthCheckBehavior :: AvailabilityZoneImpairmentPolicyProperty -> Value Text
zonalShiftEnabled :: AvailabilityZoneImpairmentPolicyProperty -> Value Bool
haddock_workaround_ :: ()
impairedZoneHealthCheckBehavior :: Value Text
zonalShiftEnabled :: Value Bool
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ImpairedZoneHealthCheckBehavior"
           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
impairedZoneHealthCheckBehavior,
         Key
"ZonalShiftEnabled" 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
zonalShiftEnabled]
instance Property "ImpairedZoneHealthCheckBehavior" AvailabilityZoneImpairmentPolicyProperty where
  type PropertyType "ImpairedZoneHealthCheckBehavior" AvailabilityZoneImpairmentPolicyProperty = Value Prelude.Text
  set :: PropertyType
  "ImpairedZoneHealthCheckBehavior"
  AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty
set PropertyType
  "ImpairedZoneHealthCheckBehavior"
  AvailabilityZoneImpairmentPolicyProperty
newValue AvailabilityZoneImpairmentPolicyProperty {()
Value Bool
Value Text
haddock_workaround_ :: AvailabilityZoneImpairmentPolicyProperty -> ()
impairedZoneHealthCheckBehavior :: AvailabilityZoneImpairmentPolicyProperty -> Value Text
zonalShiftEnabled :: AvailabilityZoneImpairmentPolicyProperty -> Value Bool
haddock_workaround_ :: ()
impairedZoneHealthCheckBehavior :: Value Text
zonalShiftEnabled :: Value Bool
..}
    = AvailabilityZoneImpairmentPolicyProperty
        {impairedZoneHealthCheckBehavior :: Value Text
impairedZoneHealthCheckBehavior = PropertyType
  "ImpairedZoneHealthCheckBehavior"
  AvailabilityZoneImpairmentPolicyProperty
Value Text
newValue, ()
Value Bool
haddock_workaround_ :: ()
zonalShiftEnabled :: Value Bool
haddock_workaround_ :: ()
zonalShiftEnabled :: Value Bool
..}
instance Property "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty where
  type PropertyType "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty = Value Prelude.Bool
  set :: PropertyType
  "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty
-> AvailabilityZoneImpairmentPolicyProperty
set PropertyType
  "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty
newValue AvailabilityZoneImpairmentPolicyProperty {()
Value Bool
Value Text
haddock_workaround_ :: AvailabilityZoneImpairmentPolicyProperty -> ()
impairedZoneHealthCheckBehavior :: AvailabilityZoneImpairmentPolicyProperty -> Value Text
zonalShiftEnabled :: AvailabilityZoneImpairmentPolicyProperty -> Value Bool
haddock_workaround_ :: ()
impairedZoneHealthCheckBehavior :: Value Text
zonalShiftEnabled :: Value Bool
..}
    = AvailabilityZoneImpairmentPolicyProperty
        {zonalShiftEnabled :: Value Bool
zonalShiftEnabled = PropertyType
  "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty
Value Bool
newValue, ()
Value Text
haddock_workaround_ :: ()
impairedZoneHealthCheckBehavior :: Value Text
haddock_workaround_ :: ()
impairedZoneHealthCheckBehavior :: Value Text
..}