/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the cloudformation-2010-05-15.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.CloudFormation.Model { /// /// Container for the parameters to the UpdateStackSet operation. /// Updates the stack set, and associated stack instances in the specified accounts and /// Amazon Web Services Regions. /// /// /// /// Even if the stack set operation created by updating the stack set fails (completely /// or partially, below or above a specified failure tolerance), the stack set is updated /// with your changes. Subsequent CreateStackInstances calls on the specified stack /// set use the updated stack set. /// /// public partial class UpdateStackSetRequest : AmazonCloudFormationRequest { private List _accounts = new List(); private string _administrationRoleARN; private AutoDeployment _autoDeployment; private CallAs _callAs; private List _capabilities = new List(); private DeploymentTargets _deploymentTargets; private string _description; private string _executionRoleName; private ManagedExecution _managedExecution; private string _operationId; private StackSetOperationPreferences _operationPreferences; private List _parameters = new List(); private PermissionModels _permissionModel; private List _regions = new List(); private string _stackSetName; private List _tags = new List(); private string _templateBody; private string _templateURL; private bool? _usePreviousTemplate; /// /// Gets and sets the property Accounts. /// /// [Self-managed permissions] The accounts in which to update associated stack instances. /// If you specify accounts, you must also specify the Amazon Web Services Regions in /// which to update stack set instances. /// /// /// /// To update all the stack instances associated with this stack set, don't specify /// the Accounts or Regions properties. /// /// /// /// If the stack set update includes changes to the template (that is, if the TemplateBody /// or TemplateURL properties are specified), or the Parameters /// property, CloudFormation marks all stack instances with a status of OUTDATED /// prior to updating the stack instances in the specified accounts and Amazon Web Services /// Regions. If the stack set update does not include changes to the template or parameters, /// CloudFormation updates the stack instances in the specified accounts and Amazon Web /// Services Regions, while leaving all other stack instances with their existing stack /// instance status. /// /// public List Accounts { get { return this._accounts; } set { this._accounts = value; } } // Check to see if Accounts property is set internal bool IsSetAccounts() { return this._accounts != null && this._accounts.Count > 0; } /// /// Gets and sets the property AdministrationRoleARN. /// /// The Amazon Resource Name (ARN) of the IAM role to use to update this stack set. /// /// /// /// Specify an IAM role only if you are using customized administrator roles to control /// which users or groups can manage specific stack sets within the same administrator /// account. For more information, see Granting /// Permissions for Stack Set Operations in the CloudFormation User Guide. /// /// /// /// If you specified a customized administrator role when you created the stack set, you /// must specify a customized administrator role, even if it is the same customized administrator /// role used with this stack set previously. /// /// [AWSProperty(Min=20, Max=2048)] public string AdministrationRoleARN { get { return this._administrationRoleARN; } set { this._administrationRoleARN = value; } } // Check to see if AdministrationRoleARN property is set internal bool IsSetAdministrationRoleARN() { return this._administrationRoleARN != null; } /// /// Gets and sets the property AutoDeployment. /// /// [Service-managed permissions] Describes whether StackSets automatically deploys to /// Organizations accounts that are added to a target organization or organizational unit /// (OU). /// /// /// /// If you specify AutoDeployment, don't specify DeploymentTargets /// or Regions. /// /// public AutoDeployment AutoDeployment { get { return this._autoDeployment; } set { this._autoDeployment = value; } } // Check to see if AutoDeployment property is set internal bool IsSetAutoDeployment() { return this._autoDeployment != null; } /// /// Gets and sets the property CallAs. /// /// [Service-managed permissions] Specifies whether you are acting as an account administrator /// in the organization's management account or as a delegated administrator in a member /// account. /// /// /// /// By default, SELF is specified. Use SELF for stack sets with /// self-managed permissions. /// ///
  • /// /// If you are signed in to the management account, specify SELF. /// ///
  • /// /// If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. /// /// /// /// Your Amazon Web Services account must be registered as a delegated administrator in /// the management account. For more information, see Register /// a delegated administrator in the CloudFormation User Guide. /// ///
///
public CallAs CallAs { get { return this._callAs; } set { this._callAs = value; } } // Check to see if CallAs property is set internal bool IsSetCallAs() { return this._callAs != null; } /// /// Gets and sets the property Capabilities. /// /// In some cases, you must explicitly acknowledge that your stack template contains certain /// capabilities in order for CloudFormation to update the stack set and its associated /// stack instances. /// ///
  • /// /// CAPABILITY_IAM and CAPABILITY_NAMED_IAM /// /// /// /// Some stack templates might include resources that can affect permissions in your Amazon /// Web Services account; for example, by creating new Identity and Access Management /// (IAM) users. For those stacks sets, you must explicitly acknowledge this by specifying /// one of these capabilities. /// /// /// /// The following IAM resources require you to specify either the CAPABILITY_IAM /// or CAPABILITY_NAMED_IAM capability. /// ///
    • /// /// If you have IAM resources, you can specify either capability. /// ///
    • /// /// If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. /// ///
    • /// /// If you don't specify either of these capabilities, CloudFormation returns an InsufficientCapabilities /// error. /// ///
    /// /// If your stack template contains these resources, we recommend that you review all /// permissions associated with them and edit their permissions if necessary. /// /// /// /// For more information, see Acknowledging /// IAM Resources in CloudFormation Templates. /// ///
  • /// /// CAPABILITY_AUTO_EXPAND /// /// /// /// Some templates reference macros. If your stack set template references one or more /// macros, you must update the stack set directly from the processed template, without /// first reviewing the resulting changes in a change set. To update the stack set directly, /// you must acknowledge this capability. For more information, see Using /// CloudFormation Macros to Perform Custom Processing on Templates. /// /// /// /// Stack sets with service-managed permissions do not currently support the use of macros /// in templates. (This includes the AWS::Include /// and AWS::Serverless /// transforms, which are macros hosted by CloudFormation.) Even if you specify this capability /// for a stack set with service-managed permissions, if you reference a macro in your /// template the stack set operation will fail. /// ///
///
public List Capabilities { get { return this._capabilities; } set { this._capabilities = value; } } // Check to see if Capabilities property is set internal bool IsSetCapabilities() { return this._capabilities != null && this._capabilities.Count > 0; } /// /// Gets and sets the property DeploymentTargets. /// /// [Service-managed permissions] The Organizations accounts in which to update associated /// stack instances. /// /// /// /// To update all the stack instances associated with this stack set, do not specify DeploymentTargets /// or Regions. /// /// /// /// If the stack set update includes changes to the template (that is, if TemplateBody /// or TemplateURL is specified), or the Parameters, CloudFormation /// marks all stack instances with a status of OUTDATED prior to updating /// the stack instances in the specified accounts and Amazon Web Services Regions. If /// the stack set update doesn't include changes to the template or parameters, CloudFormation /// updates the stack instances in the specified accounts and Regions, while leaving all /// other stack instances with their existing stack instance status. /// /// public DeploymentTargets DeploymentTargets { get { return this._deploymentTargets; } set { this._deploymentTargets = value; } } // Check to see if DeploymentTargets property is set internal bool IsSetDeploymentTargets() { return this._deploymentTargets != null; } /// /// Gets and sets the property Description. /// /// A brief description of updates that you are making. /// /// [AWSProperty(Min=1, Max=1024)] public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property ExecutionRoleName. /// /// The name of the IAM execution role to use to update the stack set. If you do not specify /// an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole /// role for the stack set operation. /// /// /// /// Specify an IAM role only if you are using customized execution roles to control which /// stack resources users and groups can include in their stack sets. /// /// /// /// If you specify a customized execution role, CloudFormation uses that role to update /// the stack. If you do not specify a customized execution role, CloudFormation performs /// the update using the role previously associated with the stack set, so long as you /// have permissions to perform operations on the stack set. /// /// [AWSProperty(Min=1, Max=64)] public string ExecutionRoleName { get { return this._executionRoleName; } set { this._executionRoleName = value; } } // Check to see if ExecutionRoleName property is set internal bool IsSetExecutionRoleName() { return this._executionRoleName != null; } /// /// Gets and sets the property ManagedExecution. /// /// Describes whether StackSets performs non-conflicting operations concurrently and queues /// conflicting operations. /// /// public ManagedExecution ManagedExecution { get { return this._managedExecution; } set { this._managedExecution = value; } } // Check to see if ManagedExecution property is set internal bool IsSetManagedExecution() { return this._managedExecution != null; } /// /// Gets and sets the property OperationId. /// /// The unique ID for this stack set operation. /// /// /// /// The operation ID also functions as an idempotency token, to ensure that CloudFormation /// performs the stack set operation only once, even if you retry the request multiple /// times. You might retry stack set operation requests to ensure that CloudFormation /// successfully received them. /// /// /// /// If you don't specify an operation ID, CloudFormation generates one automatically. /// /// /// /// Repeating this stack set operation with a new operation ID retries all stack instances /// whose status is OUTDATED. /// /// [AWSProperty(Min=1, Max=128)] public string OperationId { get { return this._operationId; } set { this._operationId = value; } } // Check to see if OperationId property is set internal bool IsSetOperationId() { return this._operationId != null; } /// /// Gets and sets the property OperationPreferences. /// /// Preferences for how CloudFormation performs this stack set operation. /// /// public StackSetOperationPreferences OperationPreferences { get { return this._operationPreferences; } set { this._operationPreferences = value; } } // Check to see if OperationPreferences property is set internal bool IsSetOperationPreferences() { return this._operationPreferences != null; } /// /// Gets and sets the property Parameters. /// /// A list of input parameters for the stack set template. /// /// public List Parameters { get { return this._parameters; } set { this._parameters = value; } } // Check to see if Parameters property is set internal bool IsSetParameters() { return this._parameters != null && this._parameters.Count > 0; } /// /// Gets and sets the property PermissionModel. /// /// Describes how the IAM roles required for stack set operations are created. You cannot /// modify PermissionModel if there are stack instances associated with your /// stack set. /// /// /// public PermissionModels PermissionModel { get { return this._permissionModel; } set { this._permissionModel = value; } } // Check to see if PermissionModel property is set internal bool IsSetPermissionModel() { return this._permissionModel != null; } /// /// Gets and sets the property Regions. /// /// The Amazon Web Services Regions in which to update associated stack instances. If /// you specify Regions, you must also specify accounts in which to update stack set instances. /// /// /// /// To update all the stack instances associated with this stack set, do not specify /// the Accounts or Regions properties. /// /// /// /// If the stack set update includes changes to the template (that is, if the TemplateBody /// or TemplateURL properties are specified), or the Parameters /// property, CloudFormation marks all stack instances with a status of OUTDATED /// prior to updating the stack instances in the specified accounts and Regions. If the /// stack set update does not include changes to the template or parameters, CloudFormation /// updates the stack instances in the specified accounts and Regions, while leaving all /// other stack instances with their existing stack instance status. /// /// public List Regions { get { return this._regions; } set { this._regions = value; } } // Check to see if Regions property is set internal bool IsSetRegions() { return this._regions != null && this._regions.Count > 0; } /// /// Gets and sets the property StackSetName. /// /// The name or unique ID of the stack set that you want to update. /// /// [AWSProperty(Required=true)] public string StackSetName { get { return this._stackSetName; } set { this._stackSetName = value; } } // Check to see if StackSetName property is set internal bool IsSetStackSetName() { return this._stackSetName != null; } /// /// Gets and sets the property Tags. /// /// The key-value pairs to associate with this stack set and the stacks created from it. /// CloudFormation also propagates these tags to supported resources that are created /// in the stacks. You can specify a maximum number of 50 tags. /// /// /// /// If you specify tags for this parameter, those tags replace any list of tags that are /// currently associated with this stack set. This means: /// ///
  • /// /// If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. /// ///
  • /// /// If you specify any tags using this parameter, you must specify all the /// tags that you want associated with this stack set, even tags you've specified before /// (for example, when creating the stack set or during a previous update of the stack /// set.). Any tags that you don't include in the updated list of tags are removed from /// the stack set, and therefore from the stacks and resources as well. /// ///
  • /// /// If you specify an empty value, CloudFormation removes all currently associated tags. /// ///
/// /// If you specify new tags as part of an UpdateStackSet action, CloudFormation /// checks to see if you have the required IAM permission to tag resources. If you omit /// tags that are currently associated with the stack set from the list of tags you specify, /// CloudFormation assumes that you want to remove those tags from the stack set, and /// checks to see if you have permission to untag resources. If you don't have the necessary /// permission(s), the entire UpdateStackSet action fails with an access /// denied error, and the stack set is not updated. /// ///
[AWSProperty(Max=50)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property TemplateBody. /// /// The structure that contains the template body, with a minimum length of 1 byte and /// a maximum length of 51,200 bytes. For more information, see Template /// Anatomy in the CloudFormation User Guide. /// /// /// /// Conditional: You must specify only one of the following parameters: TemplateBody /// or TemplateURL—or set UsePreviousTemplate to true. /// /// [AWSProperty(Min=1)] public string TemplateBody { get { return this._templateBody; } set { this._templateBody = value; } } // Check to see if TemplateBody property is set internal bool IsSetTemplateBody() { return this._templateBody != null; } /// /// Gets and sets the property TemplateURL. /// /// The location of the file that contains the template body. The URL must point to a /// template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket or a /// Systems Manager document. For more information, see Template /// Anatomy in the CloudFormation User Guide. /// /// /// /// Conditional: You must specify only one of the following parameters: TemplateBody /// or TemplateURL—or set UsePreviousTemplate to true. /// /// [AWSProperty(Min=1, Max=1024)] public string TemplateURL { get { return this._templateURL; } set { this._templateURL = value; } } // Check to see if TemplateURL property is set internal bool IsSetTemplateURL() { return this._templateURL != null; } /// /// Gets and sets the property UsePreviousTemplate. /// /// Use the existing template that's associated with the stack set that you're updating. /// /// /// /// Conditional: You must specify only one of the following parameters: TemplateBody /// or TemplateURL—or set UsePreviousTemplate to true. /// /// public bool UsePreviousTemplate { get { return this._usePreviousTemplate.GetValueOrDefault(); } set { this._usePreviousTemplate = value; } } // Check to see if UsePreviousTemplate property is set internal bool IsSetUsePreviousTemplate() { return this._usePreviousTemplate.HasValue; } } }