module Stratosphere.CloudFormation.StackSet ( module Exports, StackSet(..), mkStackSet ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.AutoDeploymentProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.ManagedExecutionProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.OperationPreferencesProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.ParameterProperty as Exports import {-# SOURCE #-} Stratosphere.CloudFormation.StackSet.StackInstancesProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data StackSet = -- | See: StackSet {haddock_workaround_ :: (), -- | See: administrationRoleARN :: (Prelude.Maybe (Value Prelude.Text)), -- | See: autoDeployment :: (Prelude.Maybe AutoDeploymentProperty), -- | See: callAs :: (Prelude.Maybe (Value Prelude.Text)), -- | See: capabilities :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: executionRoleName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: managedExecution :: (Prelude.Maybe ManagedExecutionProperty), -- | See: operationPreferences :: (Prelude.Maybe OperationPreferencesProperty), -- | See: parameters :: (Prelude.Maybe [ParameterProperty]), -- | See: permissionModel :: (Value Prelude.Text), -- | See: stackInstancesGroup :: (Prelude.Maybe [StackInstancesProperty]), -- | See: stackSetName :: (Value Prelude.Text), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: templateBody :: (Prelude.Maybe (Value Prelude.Text)), -- | See: templateURL :: (Prelude.Maybe (Value Prelude.Text))} deriving stock (Prelude.Eq, Prelude.Show) mkStackSet :: Value Prelude.Text -> Value Prelude.Text -> StackSet mkStackSet permissionModel stackSetName = StackSet {haddock_workaround_ = (), permissionModel = permissionModel, stackSetName = stackSetName, administrationRoleARN = Prelude.Nothing, autoDeployment = Prelude.Nothing, callAs = Prelude.Nothing, capabilities = Prelude.Nothing, description = Prelude.Nothing, executionRoleName = Prelude.Nothing, managedExecution = Prelude.Nothing, operationPreferences = Prelude.Nothing, parameters = Prelude.Nothing, stackInstancesGroup = Prelude.Nothing, tags = Prelude.Nothing, templateBody = Prelude.Nothing, templateURL = Prelude.Nothing} instance ToResourceProperties StackSet where toResourceProperties StackSet {..} = ResourceProperties {awsType = "AWS::CloudFormation::StackSet", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["PermissionModel" JSON..= permissionModel, "StackSetName" JSON..= stackSetName] (Prelude.catMaybes [(JSON..=) "AdministrationRoleARN" Prelude.<$> administrationRoleARN, (JSON..=) "AutoDeployment" Prelude.<$> autoDeployment, (JSON..=) "CallAs" Prelude.<$> callAs, (JSON..=) "Capabilities" Prelude.<$> capabilities, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "ExecutionRoleName" Prelude.<$> executionRoleName, (JSON..=) "ManagedExecution" Prelude.<$> managedExecution, (JSON..=) "OperationPreferences" Prelude.<$> operationPreferences, (JSON..=) "Parameters" Prelude.<$> parameters, (JSON..=) "StackInstancesGroup" Prelude.<$> stackInstancesGroup, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TemplateBody" Prelude.<$> templateBody, (JSON..=) "TemplateURL" Prelude.<$> templateURL]))} instance JSON.ToJSON StackSet where toJSON StackSet {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["PermissionModel" JSON..= permissionModel, "StackSetName" JSON..= stackSetName] (Prelude.catMaybes [(JSON..=) "AdministrationRoleARN" Prelude.<$> administrationRoleARN, (JSON..=) "AutoDeployment" Prelude.<$> autoDeployment, (JSON..=) "CallAs" Prelude.<$> callAs, (JSON..=) "Capabilities" Prelude.<$> capabilities, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "ExecutionRoleName" Prelude.<$> executionRoleName, (JSON..=) "ManagedExecution" Prelude.<$> managedExecution, (JSON..=) "OperationPreferences" Prelude.<$> operationPreferences, (JSON..=) "Parameters" Prelude.<$> parameters, (JSON..=) "StackInstancesGroup" Prelude.<$> stackInstancesGroup, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TemplateBody" Prelude.<$> templateBody, (JSON..=) "TemplateURL" Prelude.<$> templateURL]))) instance Property "AdministrationRoleARN" StackSet where type PropertyType "AdministrationRoleARN" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {administrationRoleARN = Prelude.pure newValue, ..} instance Property "AutoDeployment" StackSet where type PropertyType "AutoDeployment" StackSet = AutoDeploymentProperty set newValue StackSet {..} = StackSet {autoDeployment = Prelude.pure newValue, ..} instance Property "CallAs" StackSet where type PropertyType "CallAs" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {callAs = Prelude.pure newValue, ..} instance Property "Capabilities" StackSet where type PropertyType "Capabilities" StackSet = ValueList Prelude.Text set newValue StackSet {..} = StackSet {capabilities = Prelude.pure newValue, ..} instance Property "Description" StackSet where type PropertyType "Description" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {description = Prelude.pure newValue, ..} instance Property "ExecutionRoleName" StackSet where type PropertyType "ExecutionRoleName" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {executionRoleName = Prelude.pure newValue, ..} instance Property "ManagedExecution" StackSet where type PropertyType "ManagedExecution" StackSet = ManagedExecutionProperty set newValue StackSet {..} = StackSet {managedExecution = Prelude.pure newValue, ..} instance Property "OperationPreferences" StackSet where type PropertyType "OperationPreferences" StackSet = OperationPreferencesProperty set newValue StackSet {..} = StackSet {operationPreferences = Prelude.pure newValue, ..} instance Property "Parameters" StackSet where type PropertyType "Parameters" StackSet = [ParameterProperty] set newValue StackSet {..} = StackSet {parameters = Prelude.pure newValue, ..} instance Property "PermissionModel" StackSet where type PropertyType "PermissionModel" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {permissionModel = newValue, ..} instance Property "StackInstancesGroup" StackSet where type PropertyType "StackInstancesGroup" StackSet = [StackInstancesProperty] set newValue StackSet {..} = StackSet {stackInstancesGroup = Prelude.pure newValue, ..} instance Property "StackSetName" StackSet where type PropertyType "StackSetName" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {stackSetName = newValue, ..} instance Property "Tags" StackSet where type PropertyType "Tags" StackSet = [Tag] set newValue StackSet {..} = StackSet {tags = Prelude.pure newValue, ..} instance Property "TemplateBody" StackSet where type PropertyType "TemplateBody" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {templateBody = Prelude.pure newValue, ..} instance Property "TemplateURL" StackSet where type PropertyType "TemplateURL" StackSet = Value Prelude.Text set newValue StackSet {..} = StackSet {templateURL = Prelude.pure newValue, ..}