/* * 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 UpdateStack operation. /// Updates a stack as specified in the template. After the call completes successfully, /// the stack update starts. You can check the status of the stack through the DescribeStacks /// action. /// /// /// /// To get a copy of the template for an existing stack, you can use the GetTemplate /// action. /// /// /// /// For more information about creating an update template, updating a stack, and monitoring /// the progress of the update, see Updating /// a Stack. /// /// public partial class UpdateStackRequest : AmazonCloudFormationRequest { private List _capabilities = new List(); private string _clientRequestToken; private bool? _disableRollback; private List _notificationARNs = new List(); private List _parameters = new List(); private List _resourceTypes = new List(); private bool? _retainExceptOnCreate; private string _roleARN; private RollbackConfiguration _rollbackConfiguration; private string _stackName; private string _stackPolicyBody; private string _stackPolicyDuringUpdateBody; private string _stackPolicyDuringUpdateURL; private string _stackPolicyURL; private List _tags = new List(); private string _templateBody; private string _templateURL; private bool? _usePreviousTemplate; /// /// 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. /// ///
  • /// /// 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, 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 suggest 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 template contain macros. Macros perform custom processing on templates; this /// can include simple actions like find-and-replace operations, all the way to extensive /// transformations of entire templates. Because of this, users typically create a change /// set from the processed template, so that they can review the changes resulting from /// the macros before actually updating the stack. If your stack template contains one /// or more macros, and you choose to update a stack directly from the processed template, /// without first reviewing the resulting changes in a change set, you must acknowledge /// this capability. This includes the AWS::Include /// and AWS::Serverless /// transforms, which are macros hosted by CloudFormation. /// /// /// /// If you want to update a stack from a stack template that contains macros and /// nested stacks, you must update the stack directly from the template using this capability. /// /// /// /// You should only update stacks directly from a stack template that contains macros /// if you know what processing the macro performs. /// /// /// /// Each macro relies on an underlying Lambda service function for processing stack templates. /// Be aware that the Lambda function owner can update the function operation without /// CloudFormation being notified. /// /// /// /// For more information, see Using /// CloudFormation Macros to Perform Custom Processing on Templates. /// ///
///
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 ClientRequestToken. /// /// A unique identifier for this UpdateStack request. Specify this token /// if you plan to retry requests so that CloudFormation knows that you're not attempting /// to update a stack with the same name. You might retry UpdateStack requests /// to ensure that CloudFormation successfully received them. /// /// /// /// All events triggered by a given stack operation are assigned the same client request /// token, which you can use to track operations. For example, if you execute a CreateStack /// operation with the token token1, then all the StackEvents /// generated by that operation will have ClientRequestToken set as token1. /// /// /// /// In the console, stack operations display the client request token on the Events tab. /// Stack operations that are initiated from the console use the token format Console-StackOperation-ID, /// which helps you easily identify the stack operation . For example, if you create a /// stack using the console, each stack event would be assigned the same token in the /// following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. /// /// [AWSProperty(Min=1, Max=128)] public string ClientRequestToken { get { return this._clientRequestToken; } set { this._clientRequestToken = value; } } // Check to see if ClientRequestToken property is set internal bool IsSetClientRequestToken() { return this._clientRequestToken != null; } /// /// Gets and sets the property DisableRollback. /// /// Preserve the state of previously provisioned resources when an operation fails. /// /// /// /// Default: False /// /// public bool DisableRollback { get { return this._disableRollback.GetValueOrDefault(); } set { this._disableRollback = value; } } // Check to see if DisableRollback property is set internal bool IsSetDisableRollback() { return this._disableRollback.HasValue; } /// /// Gets and sets the property NotificationARNs. /// /// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that CloudFormation /// associates with the stack. Specify an empty list to remove all notification topics. /// /// [AWSProperty(Max=5)] public List NotificationARNs { get { return this._notificationARNs; } set { this._notificationARNs = value; } } // Check to see if NotificationARNs property is set internal bool IsSetNotificationARNs() { return this._notificationARNs != null && this._notificationARNs.Count > 0; } /// /// Gets and sets the property Parameters. /// /// A list of Parameter structures that specify input parameters for the /// stack. For more information, see the Parameter /// data type. /// /// 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 ResourceTypes. /// /// The template resource types that you have permissions to work with for this update /// stack action, such as AWS::EC2::Instance, AWS::EC2::*, or /// Custom::MyCustomInstance. /// /// /// /// If the list of resource types doesn't include a resource that you're updating, the /// stack update fails. By default, CloudFormation grants permissions to all resource /// types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific /// condition keys in IAM policies. For more information, see Controlling /// Access with Identity and Access Management. /// /// public List ResourceTypes { get { return this._resourceTypes; } set { this._resourceTypes = value; } } // Check to see if ResourceTypes property is set internal bool IsSetResourceTypes() { return this._resourceTypes != null && this._resourceTypes.Count > 0; } /// /// Gets and sets the property RetainExceptOnCreate. /// /// This deletion policy deletes newly created resources, but retains existing resources, /// when a stack operation is rolled back. This ensures new, empty, and unused resources /// are deleted, while critical resources and their data are retained. RetainExceptOnCreate /// can be specified for any resource that supports the /// DeletionPolicy attribute. /// /// public bool RetainExceptOnCreate { get { return this._retainExceptOnCreate.GetValueOrDefault(); } set { this._retainExceptOnCreate = value; } } // Check to see if RetainExceptOnCreate property is set internal bool IsSetRetainExceptOnCreate() { return this._retainExceptOnCreate.HasValue; } /// /// Gets and sets the property RoleARN. /// /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that /// CloudFormation assumes to update the stack. CloudFormation uses the role's credentials /// to make calls on your behalf. CloudFormation always uses this role for all future /// operations on the stack. Provided that users have permission to operate on the stack, /// CloudFormation uses this role even if the users don't have permission to pass it. /// Ensure that the role grants least privilege. /// /// /// /// If you don't specify a value, CloudFormation uses the role that was previously associated /// with the stack. If no role is available, CloudFormation uses a temporary session that /// is generated from your user credentials. /// /// [AWSProperty(Min=20, Max=2048)] public string RoleARN { get { return this._roleARN; } set { this._roleARN = value; } } // Check to see if RoleARN property is set internal bool IsSetRoleARN() { return this._roleARN != null; } /// /// Gets and sets the property RollbackConfiguration. /// /// The rollback triggers for CloudFormation to monitor during stack creation and updating /// operations, and for the specified monitoring period afterwards. /// /// public RollbackConfiguration RollbackConfiguration { get { return this._rollbackConfiguration; } set { this._rollbackConfiguration = value; } } // Check to see if RollbackConfiguration property is set internal bool IsSetRollbackConfiguration() { return this._rollbackConfiguration != null; } /// /// Gets and sets the property StackName. /// /// The name or unique stack ID of the stack to update. /// /// [AWSProperty(Required=true)] public string StackName { get { return this._stackName; } set { this._stackName = value; } } // Check to see if StackName property is set internal bool IsSetStackName() { return this._stackName != null; } /// /// Gets and sets the property StackPolicyBody. /// /// Structure containing a new stack policy body. You can specify either the StackPolicyBody /// or the StackPolicyURL parameter, but not both. /// /// /// /// You might update the stack policy, for example, in order to protect a new resource /// that you created during a stack update. If you don't specify a stack policy, the current /// policy that is associated with the stack is unchanged. /// /// [AWSProperty(Min=1, Max=16384)] public string StackPolicyBody { get { return this._stackPolicyBody; } set { this._stackPolicyBody = value; } } // Check to see if StackPolicyBody property is set internal bool IsSetStackPolicyBody() { return this._stackPolicyBody != null; } /// /// Gets and sets the property StackPolicyDuringUpdateBody. /// /// Structure containing the temporary overriding stack policy body. You can specify either /// the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL /// parameter, but not both. /// /// /// /// If you want to update protected resources, specify a temporary overriding stack policy /// during this update. If you don't specify a stack policy, the current policy that is /// associated with the stack will be used. /// /// [AWSProperty(Min=1, Max=16384)] public string StackPolicyDuringUpdateBody { get { return this._stackPolicyDuringUpdateBody; } set { this._stackPolicyDuringUpdateBody = value; } } // Check to see if StackPolicyDuringUpdateBody property is set internal bool IsSetStackPolicyDuringUpdateBody() { return this._stackPolicyDuringUpdateBody != null; } /// /// Gets and sets the property StackPolicyDuringUpdateURL. /// /// Location of a file containing the temporary overriding stack policy. The URL must /// point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the /// stack. You can specify either the StackPolicyDuringUpdateBody or the /// StackPolicyDuringUpdateURL parameter, but not both. /// /// /// /// If you want to update protected resources, specify a temporary overriding stack policy /// during this update. If you don't specify a stack policy, the current policy that is /// associated with the stack will be used. /// /// [AWSProperty(Min=1, Max=1350)] public string StackPolicyDuringUpdateURL { get { return this._stackPolicyDuringUpdateURL; } set { this._stackPolicyDuringUpdateURL = value; } } // Check to see if StackPolicyDuringUpdateURL property is set internal bool IsSetStackPolicyDuringUpdateURL() { return this._stackPolicyDuringUpdateURL != null; } /// /// Gets and sets the property StackPolicyURL. /// /// Location of a file containing the updated stack policy. The URL must point to a policy /// (max size: 16KB) located in an S3 bucket in the same Region as the stack. You can /// specify either the StackPolicyBody or the StackPolicyURL /// parameter, but not both. /// /// /// /// You might update the stack policy, for example, in order to protect a new resource /// that you created during a stack update. If you don't specify a stack policy, the current /// policy that is associated with the stack is unchanged. /// /// [AWSProperty(Min=1, Max=1350)] public string StackPolicyURL { get { return this._stackPolicyURL; } set { this._stackPolicyURL = value; } } // Check to see if StackPolicyURL property is set internal bool IsSetStackPolicyURL() { return this._stackPolicyURL != null; } /// /// Gets and sets the property Tags. /// /// Key-value pairs to associate with this stack. CloudFormation also propagates these /// tags to supported resources in the stack. You can specify a maximum number of 50 tags. /// /// /// /// If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. /// If you specify an empty value, CloudFormation removes all associated tags. /// /// [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. /// /// Structure containing the template body with a minimum length of 1 byte and a maximum /// length of 51,200 bytes. (For more information, go to Template /// Anatomy in the CloudFormation User Guide.) /// /// /// /// Conditional: You must specify only one of the following parameters: TemplateBody, /// TemplateURL, or set the 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. /// /// Location of file containing the template body. The URL must point to a template that's /// located in an Amazon S3 bucket or a Systems Manager document. For more information, /// go to Template /// Anatomy in the CloudFormation User Guide. /// /// /// /// Conditional: You must specify only one of the following parameters: TemplateBody, /// TemplateURL, or set the 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. /// /// Reuse the existing template that is associated with the stack that you are updating. /// /// /// /// Conditional: You must specify only one of the following parameters: TemplateBody, /// TemplateURL, or set the 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; } } }