/*
* 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;
}
}
}