/* * 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 CreateStackSet operation. /// Creates a stack set. /// public partial class CreateStackSetRequest : AmazonCloudFormationRequest { private string _administrationRoleARN; private AutoDeployment _autoDeployment; private CallAs _callAs; private List _capabilities = new List(); private string _clientRequestToken; private string _description; private string _executionRoleName; private ManagedExecution _managedExecution; private List _parameters = new List(); private PermissionModels _permissionModel; private string _stackId; private string _stackSetName; private List _tags = new List(); private string _templateBody; private string _templateURL; /// /// Gets and sets the property AdministrationRoleARN. /// /// The Amazon Resource Name (ARN) of the IAM role to use to create 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 Prerequisites: /// Granting Permissions for Stack Set Operations in the CloudFormation User Guide. /// /// [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. /// /// Describes whether StackSets automatically deploys to Organizations accounts that are /// added to the target organization or organizational unit (OU). Specify only if PermissionModel /// is SERVICE_MANAGED. /// /// 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. /// ///
  • /// /// To create a stack set with service-managed permissions while signed in to the management /// account, specify SELF. /// ///
  • /// /// To create a stack set with service-managed permissions while signed in to a delegated /// administrator account, specify DELEGATED_ADMIN. /// /// /// /// Your Amazon Web Services account must be registered as a delegated admin in the management /// account. For more information, see Register /// a delegated administrator in the CloudFormation User Guide. /// ///
/// /// Stack sets with service-managed permissions are created in the management account, /// including stack sets that are created by delegated administrators. /// ///
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 set template contains /// certain capabilities in order for CloudFormation to create the stack set and related /// 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 stack 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 create the stack set directly from the processed template, without /// first reviewing the resulting changes in a change set. To create 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 don't 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 ClientRequestToken. /// /// A unique identifier for this CreateStackSet request. Specify this token /// if you plan to retry requests so that CloudFormation knows that you're not attempting /// to create another stack set with the same name. You might retry CreateStackSet /// requests to ensure that CloudFormation successfully received them. /// /// /// /// If you don't specify an operation ID, the SDK generates one automatically. /// /// [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 Description. /// /// A description of the stack set. You can use the description to identify the stack /// set's purpose or other important information. /// /// [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 create 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. /// /// [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 Parameters. /// /// The 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. By default, /// SELF-MANAGED is specified. /// /// /// 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 StackId. /// /// The stack ID you are importing into a new stack set. Specify the Amazon Resource Name /// (ARN) of the stack. /// /// public string StackId { get { return this._stackId; } set { this._stackId = value; } } // Check to see if StackId property is set internal bool IsSetStackId() { return this._stackId != null; } /// /// Gets and sets the property StackSetName. /// /// The name to associate with the stack set. The name must be unique in the Region where /// you create your stack set. /// /// /// /// A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. /// It must start with an alphabetic character and can't be longer than 128 characters. /// /// /// [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. A maximum number of 50 tags can be specified. /// /// /// /// If you specify tags as part of a CreateStackSet action, CloudFormation /// checks to see if you have the required IAM permission to tag resources. If you don't, /// the entire CreateStackSet action fails with an access denied /// error, and the stack set is not created. /// /// [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 either the TemplateBody or the TemplateURL parameter, /// but not both. /// /// [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's 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 either the TemplateBody or the TemplateURL parameter, /// but not both. /// /// [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; } } }