module Stratosphere.ARCRegionSwitch.Plan.ParallelExecutionBlockConfigurationProperty (
        module Exports, ParallelExecutionBlockConfigurationProperty(..),
        mkParallelExecutionBlockConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ARCRegionSwitch.Plan.StepProperty as Exports
import Stratosphere.ResourceProperties
data ParallelExecutionBlockConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-parallelexecutionblockconfiguration.html>
    ParallelExecutionBlockConfigurationProperty {ParallelExecutionBlockConfigurationProperty -> ()
haddock_workaround_ :: (),
                                                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-arcregionswitch-plan-parallelexecutionblockconfiguration.html#cfn-arcregionswitch-plan-parallelexecutionblockconfiguration-steps>
                                                 ParallelExecutionBlockConfigurationProperty -> [StepProperty]
steps :: [StepProperty]}
  deriving stock (ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty -> Bool
(ParallelExecutionBlockConfigurationProperty
 -> ParallelExecutionBlockConfigurationProperty -> Bool)
-> (ParallelExecutionBlockConfigurationProperty
    -> ParallelExecutionBlockConfigurationProperty -> Bool)
-> Eq ParallelExecutionBlockConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty -> Bool
== :: ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty -> Bool
$c/= :: ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty -> Bool
/= :: ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty -> Bool
Prelude.Eq, Int -> ParallelExecutionBlockConfigurationProperty -> ShowS
[ParallelExecutionBlockConfigurationProperty] -> ShowS
ParallelExecutionBlockConfigurationProperty -> String
(Int -> ParallelExecutionBlockConfigurationProperty -> ShowS)
-> (ParallelExecutionBlockConfigurationProperty -> String)
-> ([ParallelExecutionBlockConfigurationProperty] -> ShowS)
-> Show ParallelExecutionBlockConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ParallelExecutionBlockConfigurationProperty -> ShowS
showsPrec :: Int -> ParallelExecutionBlockConfigurationProperty -> ShowS
$cshow :: ParallelExecutionBlockConfigurationProperty -> String
show :: ParallelExecutionBlockConfigurationProperty -> String
$cshowList :: [ParallelExecutionBlockConfigurationProperty] -> ShowS
showList :: [ParallelExecutionBlockConfigurationProperty] -> ShowS
Prelude.Show)
mkParallelExecutionBlockConfigurationProperty ::
  [StepProperty] -> ParallelExecutionBlockConfigurationProperty
mkParallelExecutionBlockConfigurationProperty :: [StepProperty] -> ParallelExecutionBlockConfigurationProperty
mkParallelExecutionBlockConfigurationProperty [StepProperty]
steps
  = ParallelExecutionBlockConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), steps :: [StepProperty]
steps = [StepProperty]
steps}
instance ToResourceProperties ParallelExecutionBlockConfigurationProperty where
  toResourceProperties :: ParallelExecutionBlockConfigurationProperty -> ResourceProperties
toResourceProperties
    ParallelExecutionBlockConfigurationProperty {[StepProperty]
()
haddock_workaround_ :: ParallelExecutionBlockConfigurationProperty -> ()
steps :: ParallelExecutionBlockConfigurationProperty -> [StepProperty]
haddock_workaround_ :: ()
steps :: [StepProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ARCRegionSwitch::Plan.ParallelExecutionBlockConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False, properties :: Object
properties = [Key
"Steps" Key -> [StepProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [StepProperty]
steps]}
instance JSON.ToJSON ParallelExecutionBlockConfigurationProperty where
  toJSON :: ParallelExecutionBlockConfigurationProperty -> Value
toJSON ParallelExecutionBlockConfigurationProperty {[StepProperty]
()
haddock_workaround_ :: ParallelExecutionBlockConfigurationProperty -> ()
steps :: ParallelExecutionBlockConfigurationProperty -> [StepProperty]
haddock_workaround_ :: ()
steps :: [StepProperty]
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Steps" Key -> [StepProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [StepProperty]
steps]
instance Property "Steps" ParallelExecutionBlockConfigurationProperty where
  type PropertyType "Steps" ParallelExecutionBlockConfigurationProperty = [StepProperty]
  set :: PropertyType "Steps" ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty
-> ParallelExecutionBlockConfigurationProperty
set PropertyType "Steps" ParallelExecutionBlockConfigurationProperty
newValue ParallelExecutionBlockConfigurationProperty {[StepProperty]
()
haddock_workaround_ :: ParallelExecutionBlockConfigurationProperty -> ()
steps :: ParallelExecutionBlockConfigurationProperty -> [StepProperty]
haddock_workaround_ :: ()
steps :: [StepProperty]
..}
    = ParallelExecutionBlockConfigurationProperty
        {steps :: [StepProperty]
steps = [StepProperty]
PropertyType "Steps" ParallelExecutionBlockConfigurationProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}