packages feed

stratosphere-autoscaling-1.0.0: gen/Stratosphere/AutoScaling/AutoScalingGroup/AvailabilityZoneImpairmentPolicyProperty.hs

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 {haddock_workaround_ :: (),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy.html#cfn-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy-impairedzonehealthcheckbehavior>
                                              impairedZoneHealthCheckBehavior :: (Value Prelude.Text),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy.html#cfn-autoscaling-autoscalinggroup-availabilityzoneimpairmentpolicy-zonalshiftenabled>
                                              zonalShiftEnabled :: (Value Prelude.Bool)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkAvailabilityZoneImpairmentPolicyProperty ::
  Value Prelude.Text
  -> Value Prelude.Bool -> AvailabilityZoneImpairmentPolicyProperty
mkAvailabilityZoneImpairmentPolicyProperty
  impairedZoneHealthCheckBehavior
  zonalShiftEnabled
  = AvailabilityZoneImpairmentPolicyProperty
      {haddock_workaround_ = (),
       impairedZoneHealthCheckBehavior = impairedZoneHealthCheckBehavior,
       zonalShiftEnabled = zonalShiftEnabled}
instance ToResourceProperties AvailabilityZoneImpairmentPolicyProperty where
  toResourceProperties AvailabilityZoneImpairmentPolicyProperty {..}
    = ResourceProperties
        {awsType = "AWS::AutoScaling::AutoScalingGroup.AvailabilityZoneImpairmentPolicy",
         supportsTags = Prelude.False,
         properties = ["ImpairedZoneHealthCheckBehavior"
                         JSON..= impairedZoneHealthCheckBehavior,
                       "ZonalShiftEnabled" JSON..= zonalShiftEnabled]}
instance JSON.ToJSON AvailabilityZoneImpairmentPolicyProperty where
  toJSON AvailabilityZoneImpairmentPolicyProperty {..}
    = JSON.object
        ["ImpairedZoneHealthCheckBehavior"
           JSON..= impairedZoneHealthCheckBehavior,
         "ZonalShiftEnabled" JSON..= zonalShiftEnabled]
instance Property "ImpairedZoneHealthCheckBehavior" AvailabilityZoneImpairmentPolicyProperty where
  type PropertyType "ImpairedZoneHealthCheckBehavior" AvailabilityZoneImpairmentPolicyProperty = Value Prelude.Text
  set newValue AvailabilityZoneImpairmentPolicyProperty {..}
    = AvailabilityZoneImpairmentPolicyProperty
        {impairedZoneHealthCheckBehavior = newValue, ..}
instance Property "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty where
  type PropertyType "ZonalShiftEnabled" AvailabilityZoneImpairmentPolicyProperty = Value Prelude.Bool
  set newValue AvailabilityZoneImpairmentPolicyProperty {..}
    = AvailabilityZoneImpairmentPolicyProperty
        {zonalShiftEnabled = newValue, ..}