module Stratosphere.CloudFormation.StackSet.StackInstancesProperty (
        module Exports, StackInstancesProperty(..),
        mkStackInstancesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.DeploymentTargetsProperty as Exports
import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.ParameterProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data StackInstancesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html>
    StackInstancesProperty {StackInstancesProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-deploymenttargets>
                            StackInstancesProperty -> DeploymentTargetsProperty
deploymentTargets :: DeploymentTargetsProperty,
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-parameteroverrides>
                            StackInstancesProperty -> Maybe [ParameterProperty]
parameterOverrides :: (Prelude.Maybe [ParameterProperty]),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html#cfn-cloudformation-stackset-stackinstances-regions>
                            StackInstancesProperty -> ValueList Text
regions :: (ValueList Prelude.Text)}
  deriving stock (StackInstancesProperty -> StackInstancesProperty -> Bool
(StackInstancesProperty -> StackInstancesProperty -> Bool)
-> (StackInstancesProperty -> StackInstancesProperty -> Bool)
-> Eq StackInstancesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StackInstancesProperty -> StackInstancesProperty -> Bool
== :: StackInstancesProperty -> StackInstancesProperty -> Bool
$c/= :: StackInstancesProperty -> StackInstancesProperty -> Bool
/= :: StackInstancesProperty -> StackInstancesProperty -> Bool
Prelude.Eq, Int -> StackInstancesProperty -> ShowS
[StackInstancesProperty] -> ShowS
StackInstancesProperty -> String
(Int -> StackInstancesProperty -> ShowS)
-> (StackInstancesProperty -> String)
-> ([StackInstancesProperty] -> ShowS)
-> Show StackInstancesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> StackInstancesProperty -> ShowS
showsPrec :: Int -> StackInstancesProperty -> ShowS
$cshow :: StackInstancesProperty -> String
show :: StackInstancesProperty -> String
$cshowList :: [StackInstancesProperty] -> ShowS
showList :: [StackInstancesProperty] -> ShowS
Prelude.Show)
mkStackInstancesProperty ::
  DeploymentTargetsProperty
  -> ValueList Prelude.Text -> StackInstancesProperty
mkStackInstancesProperty :: DeploymentTargetsProperty
-> ValueList Text -> StackInstancesProperty
mkStackInstancesProperty DeploymentTargetsProperty
deploymentTargets ValueList Text
regions
  = StackInstancesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), deploymentTargets :: DeploymentTargetsProperty
deploymentTargets = DeploymentTargetsProperty
deploymentTargets,
       regions :: ValueList Text
regions = ValueList Text
regions, parameterOverrides :: Maybe [ParameterProperty]
parameterOverrides = Maybe [ParameterProperty]
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties StackInstancesProperty where
  toResourceProperties :: StackInstancesProperty -> ResourceProperties
toResourceProperties StackInstancesProperty {Maybe [ParameterProperty]
()
ValueList Text
DeploymentTargetsProperty
haddock_workaround_ :: StackInstancesProperty -> ()
deploymentTargets :: StackInstancesProperty -> DeploymentTargetsProperty
parameterOverrides :: StackInstancesProperty -> Maybe [ParameterProperty]
regions :: StackInstancesProperty -> ValueList Text
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CloudFormation::StackSet.StackInstances",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
                           [Key
"DeploymentTargets" Key -> DeploymentTargetsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DeploymentTargetsProperty
deploymentTargets,
                            Key
"Regions" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
regions]
                           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                              [Key -> [ParameterProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ParameterOverrides" ([ParameterProperty] -> (Key, Value))
-> Maybe [ParameterProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ParameterProperty]
parameterOverrides]))}
instance JSON.ToJSON StackInstancesProperty where
  toJSON :: StackInstancesProperty -> Value
toJSON StackInstancesProperty {Maybe [ParameterProperty]
()
ValueList Text
DeploymentTargetsProperty
haddock_workaround_ :: StackInstancesProperty -> ()
deploymentTargets :: StackInstancesProperty -> DeploymentTargetsProperty
parameterOverrides :: StackInstancesProperty -> Maybe [ParameterProperty]
regions :: StackInstancesProperty -> ValueList Text
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([(Key, Value)] -> [(Key, Value)] -> [(Key, Value)]
forall a. Semigroup a => a -> a -> a
(Prelude.<>)
              [Key
"DeploymentTargets" Key -> DeploymentTargetsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DeploymentTargetsProperty
deploymentTargets,
               Key
"Regions" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
regions]
              ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                 [Key -> [ParameterProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ParameterOverrides" ([ParameterProperty] -> (Key, Value))
-> Maybe [ParameterProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ParameterProperty]
parameterOverrides])))
instance Property "DeploymentTargets" StackInstancesProperty where
  type PropertyType "DeploymentTargets" StackInstancesProperty = DeploymentTargetsProperty
  set :: PropertyType "DeploymentTargets" StackInstancesProperty
-> StackInstancesProperty -> StackInstancesProperty
set PropertyType "DeploymentTargets" StackInstancesProperty
newValue StackInstancesProperty {Maybe [ParameterProperty]
()
ValueList Text
DeploymentTargetsProperty
haddock_workaround_ :: StackInstancesProperty -> ()
deploymentTargets :: StackInstancesProperty -> DeploymentTargetsProperty
parameterOverrides :: StackInstancesProperty -> Maybe [ParameterProperty]
regions :: StackInstancesProperty -> ValueList Text
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
..}
    = StackInstancesProperty {deploymentTargets :: DeploymentTargetsProperty
deploymentTargets = PropertyType "DeploymentTargets" StackInstancesProperty
DeploymentTargetsProperty
newValue, Maybe [ParameterProperty]
()
ValueList Text
haddock_workaround_ :: ()
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
haddock_workaround_ :: ()
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
..}
instance Property "ParameterOverrides" StackInstancesProperty where
  type PropertyType "ParameterOverrides" StackInstancesProperty = [ParameterProperty]
  set :: PropertyType "ParameterOverrides" StackInstancesProperty
-> StackInstancesProperty -> StackInstancesProperty
set PropertyType "ParameterOverrides" StackInstancesProperty
newValue StackInstancesProperty {Maybe [ParameterProperty]
()
ValueList Text
DeploymentTargetsProperty
haddock_workaround_ :: StackInstancesProperty -> ()
deploymentTargets :: StackInstancesProperty -> DeploymentTargetsProperty
parameterOverrides :: StackInstancesProperty -> Maybe [ParameterProperty]
regions :: StackInstancesProperty -> ValueList Text
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
..}
    = StackInstancesProperty
        {parameterOverrides :: Maybe [ParameterProperty]
parameterOverrides = [ParameterProperty] -> Maybe [ParameterProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [ParameterProperty]
PropertyType "ParameterOverrides" StackInstancesProperty
newValue, ()
ValueList Text
DeploymentTargetsProperty
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
regions :: ValueList Text
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
regions :: ValueList Text
..}
instance Property "Regions" StackInstancesProperty where
  type PropertyType "Regions" StackInstancesProperty = ValueList Prelude.Text
  set :: PropertyType "Regions" StackInstancesProperty
-> StackInstancesProperty -> StackInstancesProperty
set PropertyType "Regions" StackInstancesProperty
newValue StackInstancesProperty {Maybe [ParameterProperty]
()
ValueList Text
DeploymentTargetsProperty
haddock_workaround_ :: StackInstancesProperty -> ()
deploymentTargets :: StackInstancesProperty -> DeploymentTargetsProperty
parameterOverrides :: StackInstancesProperty -> Maybe [ParameterProperty]
regions :: StackInstancesProperty -> ValueList Text
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
regions :: ValueList Text
..}
    = StackInstancesProperty {regions :: ValueList Text
regions = PropertyType "Regions" StackInstancesProperty
ValueList Text
newValue, Maybe [ParameterProperty]
()
DeploymentTargetsProperty
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
haddock_workaround_ :: ()
deploymentTargets :: DeploymentTargetsProperty
parameterOverrides :: Maybe [ParameterProperty]
..}