/* * 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 CreateChangeSet operation. /// Creates a list of changes that will be applied to a stack so that you can review the /// changes before executing them. You can create a change set for a stack that doesn't /// exist or an existing stack. If you create a change set for a stack that doesn't exist, /// the change set shows all of the resources that CloudFormation will create. If you /// create a change set for an existing stack, CloudFormation compares the stack's information /// with the information that you submit in the change set and lists the differences. /// Use change sets to understand which resources CloudFormation will create or change, /// and how it will change resources in an existing stack, before you create or update /// a stack. /// /// /// /// To create a change set for a stack that doesn't exist, for the ChangeSetType /// parameter, specify CREATE. To create a change set for an existing stack, /// specify UPDATE for the ChangeSetType parameter. To create /// a change set for an import operation, specify IMPORT for the ChangeSetType /// parameter. After the CreateChangeSet call successfully completes, CloudFormation /// starts creating the change set. To check the status of the change set or to review /// it, use the DescribeChangeSet action. /// /// /// /// When you are satisfied with the changes the change set will make, execute the change /// set by using the ExecuteChangeSet action. CloudFormation doesn't make changes /// until you execute the change set. /// /// /// /// To create a change set for the entire stack hierarchy, set IncludeNestedStacks /// to True. /// /// public partial class CreateChangeSetRequest : AmazonCloudFormationRequest { private List _capabilities = new List(); private string _changeSetName; private ChangeSetType _changeSetType; private string _clientToken; private string _description; private bool? _includeNestedStacks; private List _notificationARNs = new List(); private OnStackFailure _onStackFailure; private List _parameters = new List(); private List _resourcesToImport = new List(); private List _resourceTypes = new List(); private string _roleARN; private RollbackConfiguration _rollbackConfiguration; private string _stackName; 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 create 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 creating the stack. If your stack template contains one /// or more macros, and you choose to create 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. /// /// /// /// This capacity doesn't apply to creating change sets, and specifying it when creating /// change sets has no effect. /// /// /// /// If you want to create a stack from a stack template that contains macros and /// nested stacks, you must create or update the stack directly from the template using /// the CreateStack or UpdateStack action, and specifying this capability. /// /// /// /// For more information about macros, 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 ChangeSetName. /// /// The name of the change set. The name must be unique among all change sets that are /// associated with the specified stack. /// /// /// /// A change set name can contain only alphanumeric, case sensitive characters, and hyphens. /// It must start with an alphabetical character and can't exceed 128 characters. /// /// [AWSProperty(Required=true, Min=1, Max=128)] public string ChangeSetName { get { return this._changeSetName; } set { this._changeSetName = value; } } // Check to see if ChangeSetName property is set internal bool IsSetChangeSetName() { return this._changeSetName != null; } /// /// Gets and sets the property ChangeSetType. /// /// The type of change set operation. To create a change set for a new stack, specify /// CREATE. To create a change set for an existing stack, specify UPDATE. /// To create a change set for an import operation, specify IMPORT. /// /// /// /// If you create a change set for a new stack, CloudFormation creates a stack with a /// unique stack ID, but no template or resources. The stack will be in the REVIEW_IN_PROGRESS /// state until you execute the change set. /// /// /// /// By default, CloudFormation specifies UPDATE. You can't use the UPDATE /// type to create a change set for a new stack or the CREATE type to create /// a change set for an existing stack. /// /// public ChangeSetType ChangeSetType { get { return this._changeSetType; } set { this._changeSetType = value; } } // Check to see if ChangeSetType property is set internal bool IsSetChangeSetType() { return this._changeSetType != null; } /// /// Gets and sets the property ClientToken. /// /// A unique identifier for this CreateChangeSet request. Specify this token /// if you plan to retry requests so that CloudFormation knows that you're not attempting /// to create another change set with the same name. You might retry CreateChangeSet /// requests to ensure that CloudFormation successfully received them. /// /// [AWSProperty(Min=1, Max=128)] public string ClientToken { get { return this._clientToken; } set { this._clientToken = value; } } // Check to see if ClientToken property is set internal bool IsSetClientToken() { return this._clientToken != null; } /// /// Gets and sets the property Description. /// /// A description to help you identify this change set. /// /// [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 IncludeNestedStacks. /// /// Creates a change set for the all nested stacks specified in the template. The default /// behavior of this action is set to False. To include nested sets in a /// change set, specify True. /// /// public bool IncludeNestedStacks { get { return this._includeNestedStacks.GetValueOrDefault(); } set { this._includeNestedStacks = value; } } // Check to see if IncludeNestedStacks property is set internal bool IsSetIncludeNestedStacks() { return this._includeNestedStacks.HasValue; } /// /// Gets and sets the property NotificationARNs. /// /// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) /// topics that CloudFormation associates with the stack. To remove all associated notification /// topics, specify an empty list. /// /// [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 OnStackFailure. /// /// Determines what action will be taken if stack creation fails. If this parameter is /// specified, the DisableRollback parameter to the ExecuteChangeSet /// API operation must not be specified. This must be one of these values: /// ///
  • /// /// DELETE - Deletes the change set if the stack creation fails. This is /// only valid when the ChangeSetType parameter is set to CREATE. /// If the deletion of the stack fails, the status of the stack is DELETE_FAILED. /// ///
  • /// /// DO_NOTHING - if the stack creation fails, do nothing. This is equivalent /// to specifying true for the DisableRollback parameter to /// the ExecuteChangeSet /// API operation. /// ///
  • /// /// ROLLBACK - if the stack creation fails, roll back the stack. This is /// equivalent to specifying false for the DisableRollback parameter /// to the ExecuteChangeSet /// API operation. /// ///
/// /// For nested stacks, when the OnStackFailure parameter is set to DELETE /// for the change set for the parent stack, any failure in a child stack will cause the /// parent stack creation to fail and all stacks to be deleted. /// ///
public OnStackFailure OnStackFailure { get { return this._onStackFailure; } set { this._onStackFailure = value; } } // Check to see if OnStackFailure property is set internal bool IsSetOnStackFailure() { return this._onStackFailure != null; } /// /// Gets and sets the property Parameters. /// /// A list of Parameter structures that specify input parameters for the /// change set. 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 ResourcesToImport. /// /// The resources to import into your stack. /// /// [AWSProperty(Max=200)] public List ResourcesToImport { get { return this._resourcesToImport; } set { this._resourcesToImport = value; } } // Check to see if ResourcesToImport property is set internal bool IsSetResourcesToImport() { return this._resourcesToImport != null && this._resourcesToImport.Count > 0; } /// /// Gets and sets the property ResourceTypes. /// /// The template resource types that you have permissions to work with if you execute /// this change set, such as AWS::EC2::Instance, AWS::EC2::*, /// or Custom::MyCustomInstance. /// /// /// /// If the list of resource types doesn't include a resource type 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 condition keys /// in IAM policies for CloudFormation. For more information, see Controlling /// access with Identity and Access Management in the CloudFormation User Guide. /// /// 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 RoleARN. /// /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that /// CloudFormation assumes when executing the change set. CloudFormation uses the role's /// credentials to make calls on your behalf. CloudFormation 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 permission. /// /// /// /// 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 the unique ID of the stack for which you are creating a change set. CloudFormation /// generates the change set by comparing this stack's information with the information /// that you submit, such as a modified template or different parameter input values. /// /// [AWSProperty(Required=true, Min=1)] 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 Tags. /// /// Key-value pairs to associate with this stack. CloudFormation also propagates these /// tags to resources in the stack. You can specify a maximum of 50 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. /// /// A structure that contains the body of the revised template, with a minimum length /// of 1 byte and a maximum length of 51,200 bytes. CloudFormation generates the change /// set by comparing this template with the template of the stack that you specified. /// /// /// /// Conditional: You must specify only TemplateBody or TemplateURL. /// /// [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 revised template. The URL must point to /// a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems /// Manager document. CloudFormation generates the change set by comparing this template /// with the stack that you specified. /// /// /// /// Conditional: You must specify only TemplateBody or TemplateURL. /// /// [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. /// /// Whether to reuse the template that's associated with the stack to create the change /// set. /// /// 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; } } }