stratosphere-arcregionswitch-1.0.0: gen/Stratosphere/ARCRegionSwitch/Plan/ArcRoutingControlConfigurationProperty.hs
module Stratosphere.ARCRegionSwitch.Plan.ArcRoutingControlConfigurationProperty (
ArcRoutingControlConfigurationProperty(..),
mkArcRoutingControlConfigurationProperty
) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ArcRoutingControlConfigurationProperty
= -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-arcroutingcontrolconfiguration.html>
ArcRoutingControlConfigurationProperty {haddock_workaround_ :: (),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-arcroutingcontrolconfiguration.html#cfn-arcregionswitch-plan-arcroutingcontrolconfiguration-crossaccountrole>
crossAccountRole :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-arcroutingcontrolconfiguration.html#cfn-arcregionswitch-plan-arcroutingcontrolconfiguration-externalid>
externalId :: (Prelude.Maybe (Value Prelude.Text)),
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-arcroutingcontrolconfiguration.html#cfn-arcregionswitch-plan-arcroutingcontrolconfiguration-regionandroutingcontrols>
regionAndRoutingControls :: JSON.Object,
-- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-arcroutingcontrolconfiguration.html#cfn-arcregionswitch-plan-arcroutingcontrolconfiguration-timeoutminutes>
timeoutMinutes :: (Prelude.Maybe (Value Prelude.Double))}
deriving stock (Prelude.Eq, Prelude.Show)
mkArcRoutingControlConfigurationProperty ::
JSON.Object -> ArcRoutingControlConfigurationProperty
mkArcRoutingControlConfigurationProperty regionAndRoutingControls
= ArcRoutingControlConfigurationProperty
{haddock_workaround_ = (),
regionAndRoutingControls = regionAndRoutingControls,
crossAccountRole = Prelude.Nothing, externalId = Prelude.Nothing,
timeoutMinutes = Prelude.Nothing}
instance ToResourceProperties ArcRoutingControlConfigurationProperty where
toResourceProperties ArcRoutingControlConfigurationProperty {..}
= ResourceProperties
{awsType = "AWS::ARCRegionSwitch::Plan.ArcRoutingControlConfiguration",
supportsTags = Prelude.False,
properties = Prelude.fromList
((Prelude.<>)
["RegionAndRoutingControls" JSON..= regionAndRoutingControls]
(Prelude.catMaybes
[(JSON..=) "CrossAccountRole" Prelude.<$> crossAccountRole,
(JSON..=) "ExternalId" Prelude.<$> externalId,
(JSON..=) "TimeoutMinutes" Prelude.<$> timeoutMinutes]))}
instance JSON.ToJSON ArcRoutingControlConfigurationProperty where
toJSON ArcRoutingControlConfigurationProperty {..}
= JSON.object
(Prelude.fromList
((Prelude.<>)
["RegionAndRoutingControls" JSON..= regionAndRoutingControls]
(Prelude.catMaybes
[(JSON..=) "CrossAccountRole" Prelude.<$> crossAccountRole,
(JSON..=) "ExternalId" Prelude.<$> externalId,
(JSON..=) "TimeoutMinutes" Prelude.<$> timeoutMinutes])))
instance Property "CrossAccountRole" ArcRoutingControlConfigurationProperty where
type PropertyType "CrossAccountRole" ArcRoutingControlConfigurationProperty = Value Prelude.Text
set newValue ArcRoutingControlConfigurationProperty {..}
= ArcRoutingControlConfigurationProperty
{crossAccountRole = Prelude.pure newValue, ..}
instance Property "ExternalId" ArcRoutingControlConfigurationProperty where
type PropertyType "ExternalId" ArcRoutingControlConfigurationProperty = Value Prelude.Text
set newValue ArcRoutingControlConfigurationProperty {..}
= ArcRoutingControlConfigurationProperty
{externalId = Prelude.pure newValue, ..}
instance Property "RegionAndRoutingControls" ArcRoutingControlConfigurationProperty where
type PropertyType "RegionAndRoutingControls" ArcRoutingControlConfigurationProperty = JSON.Object
set newValue ArcRoutingControlConfigurationProperty {..}
= ArcRoutingControlConfigurationProperty
{regionAndRoutingControls = newValue, ..}
instance Property "TimeoutMinutes" ArcRoutingControlConfigurationProperty where
type PropertyType "TimeoutMinutes" ArcRoutingControlConfigurationProperty = Value Prelude.Double
set newValue ArcRoutingControlConfigurationProperty {..}
= ArcRoutingControlConfigurationProperty
{timeoutMinutes = Prelude.pure newValue, ..}