packages feed

stratosphere-arcregionswitch-1.0.0: gen/Stratosphere/ARCRegionSwitch/Plan/GlobalAuroraConfigurationProperty.hs

module Stratosphere.ARCRegionSwitch.Plan.GlobalAuroraConfigurationProperty (
        module Exports, GlobalAuroraConfigurationProperty(..),
        mkGlobalAuroraConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ARCRegionSwitch.Plan.GlobalAuroraUngracefulProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data GlobalAuroraConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html>
    GlobalAuroraConfigurationProperty {haddock_workaround_ :: (),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-behavior>
                                       behavior :: JSON.Object,
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-crossaccountrole>
                                       crossAccountRole :: (Prelude.Maybe (Value Prelude.Text)),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-databaseclusterarns>
                                       databaseClusterArns :: (ValueList Prelude.Text),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-externalid>
                                       externalId :: (Prelude.Maybe (Value Prelude.Text)),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-globalclusteridentifier>
                                       globalClusterIdentifier :: (Value Prelude.Text),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-timeoutminutes>
                                       timeoutMinutes :: (Prelude.Maybe (Value Prelude.Double)),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-globalauroraconfiguration.html#cfn-arcregionswitch-plan-globalauroraconfiguration-ungraceful>
                                       ungraceful :: (Prelude.Maybe GlobalAuroraUngracefulProperty)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkGlobalAuroraConfigurationProperty ::
  JSON.Object
  -> ValueList Prelude.Text
     -> Value Prelude.Text -> GlobalAuroraConfigurationProperty
mkGlobalAuroraConfigurationProperty
  behavior
  databaseClusterArns
  globalClusterIdentifier
  = GlobalAuroraConfigurationProperty
      {haddock_workaround_ = (), behavior = behavior,
       databaseClusterArns = databaseClusterArns,
       globalClusterIdentifier = globalClusterIdentifier,
       crossAccountRole = Prelude.Nothing, externalId = Prelude.Nothing,
       timeoutMinutes = Prelude.Nothing, ungraceful = Prelude.Nothing}
instance ToResourceProperties GlobalAuroraConfigurationProperty where
  toResourceProperties GlobalAuroraConfigurationProperty {..}
    = ResourceProperties
        {awsType = "AWS::ARCRegionSwitch::Plan.GlobalAuroraConfiguration",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Behavior" JSON..= behavior,
                            "DatabaseClusterArns" JSON..= databaseClusterArns,
                            "GlobalClusterIdentifier" JSON..= globalClusterIdentifier]
                           (Prelude.catMaybes
                              [(JSON..=) "CrossAccountRole" Prelude.<$> crossAccountRole,
                               (JSON..=) "ExternalId" Prelude.<$> externalId,
                               (JSON..=) "TimeoutMinutes" Prelude.<$> timeoutMinutes,
                               (JSON..=) "Ungraceful" Prelude.<$> ungraceful]))}
instance JSON.ToJSON GlobalAuroraConfigurationProperty where
  toJSON GlobalAuroraConfigurationProperty {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Behavior" JSON..= behavior,
               "DatabaseClusterArns" JSON..= databaseClusterArns,
               "GlobalClusterIdentifier" JSON..= globalClusterIdentifier]
              (Prelude.catMaybes
                 [(JSON..=) "CrossAccountRole" Prelude.<$> crossAccountRole,
                  (JSON..=) "ExternalId" Prelude.<$> externalId,
                  (JSON..=) "TimeoutMinutes" Prelude.<$> timeoutMinutes,
                  (JSON..=) "Ungraceful" Prelude.<$> ungraceful])))
instance Property "Behavior" GlobalAuroraConfigurationProperty where
  type PropertyType "Behavior" GlobalAuroraConfigurationProperty = JSON.Object
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty {behavior = newValue, ..}
instance Property "CrossAccountRole" GlobalAuroraConfigurationProperty where
  type PropertyType "CrossAccountRole" GlobalAuroraConfigurationProperty = Value Prelude.Text
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty
        {crossAccountRole = Prelude.pure newValue, ..}
instance Property "DatabaseClusterArns" GlobalAuroraConfigurationProperty where
  type PropertyType "DatabaseClusterArns" GlobalAuroraConfigurationProperty = ValueList Prelude.Text
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty
        {databaseClusterArns = newValue, ..}
instance Property "ExternalId" GlobalAuroraConfigurationProperty where
  type PropertyType "ExternalId" GlobalAuroraConfigurationProperty = Value Prelude.Text
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty
        {externalId = Prelude.pure newValue, ..}
instance Property "GlobalClusterIdentifier" GlobalAuroraConfigurationProperty where
  type PropertyType "GlobalClusterIdentifier" GlobalAuroraConfigurationProperty = Value Prelude.Text
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty
        {globalClusterIdentifier = newValue, ..}
instance Property "TimeoutMinutes" GlobalAuroraConfigurationProperty where
  type PropertyType "TimeoutMinutes" GlobalAuroraConfigurationProperty = Value Prelude.Double
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty
        {timeoutMinutes = Prelude.pure newValue, ..}
instance Property "Ungraceful" GlobalAuroraConfigurationProperty where
  type PropertyType "Ungraceful" GlobalAuroraConfigurationProperty = GlobalAuroraUngracefulProperty
  set newValue GlobalAuroraConfigurationProperty {..}
    = GlobalAuroraConfigurationProperty
        {ungraceful = Prelude.pure newValue, ..}