/* * 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 opsworks-2013-02-18.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.OpsWorks.Model { /// /// Container for the parameters to the CreateStack operation. /// Creates a new stack. For more information, see Create /// a New Stack. /// /// /// /// Required Permissions: To use this action, an IAM user must have an attached /// policy that explicitly grants permissions. For more information about user permissions, /// see Managing /// User Permissions. /// /// public partial class CreateStackRequest : AmazonOpsWorksRequest { private string _agentVersion; private Dictionary _attributes = new Dictionary(); private ChefConfiguration _chefConfiguration; private StackConfigurationManager _configurationManager; private Source _customCookbooksSource; private string _customJson; private string _defaultAvailabilityZone; private string _defaultInstanceProfileArn; private string _defaultOs; private RootDeviceType _defaultRootDeviceType; private string _defaultSshKeyName; private string _defaultSubnetId; private string _hostnameTheme; private string _name; private string _region; private string _serviceRoleArn; private bool? _useCustomCookbooks; private bool? _useOpsworksSecurityGroups; private string _vpcId; /// /// Gets and sets the property AgentVersion. /// /// The default AWS OpsWorks Stacks agent version. You have the following options: /// ///
  • /// /// Auto-update - Set this parameter to LATEST. AWS OpsWorks Stacks automatically /// installs new agent versions on the stack's instances as soon as they are available. /// ///
  • /// /// Fixed version - Set this parameter to your preferred agent version. To update the /// agent version, you must edit the stack configuration and specify a new version. AWS /// OpsWorks Stacks then automatically installs that version on the stack's instances. /// ///
/// /// The default setting is the most recent release of the agent. To specify an agent version, /// you must use the complete version number, not the abbreviated number shown on the /// console. For a list of available agent version numbers, call DescribeAgentVersions. /// AgentVersion cannot be set to Chef 12.2. /// /// /// /// You can also specify an agent version when you create or update an instance, which /// overrides the stack's default setting. /// /// ///
public string AgentVersion { get { return this._agentVersion; } set { this._agentVersion = value; } } // Check to see if AgentVersion property is set internal bool IsSetAgentVersion() { return this._agentVersion != null; } /// /// Gets and sets the property Attributes. /// /// One or more user-defined key-value pairs to be added to the stack attributes. /// /// public Dictionary Attributes { get { return this._attributes; } set { this._attributes = value; } } // Check to see if Attributes property is set internal bool IsSetAttributes() { return this._attributes != null && this._attributes.Count > 0; } /// /// Gets and sets the property ChefConfiguration. /// /// A ChefConfiguration object that specifies whether to enable Berkshelf /// and the Berkshelf version on Chef 11.10 stacks. For more information, see Create /// a New Stack. /// /// public ChefConfiguration ChefConfiguration { get { return this._chefConfiguration; } set { this._chefConfiguration = value; } } // Check to see if ChefConfiguration property is set internal bool IsSetChefConfiguration() { return this._chefConfiguration != null; } /// /// Gets and sets the property ConfigurationManager. /// /// The configuration manager. When you create a stack we recommend that you use the configuration /// manager to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks, or 12.2 /// for Windows stacks. The default value for Linux stacks is currently 12. /// /// public StackConfigurationManager ConfigurationManager { get { return this._configurationManager; } set { this._configurationManager = value; } } // Check to see if ConfigurationManager property is set internal bool IsSetConfigurationManager() { return this._configurationManager != null; } /// /// Gets and sets the property CustomCookbooksSource. /// /// Contains the information required to retrieve an app or cookbook from a repository. /// For more information, see Adding /// Apps or Cookbooks /// and Recipes. /// /// public Source CustomCookbooksSource { get { return this._customCookbooksSource; } set { this._customCookbooksSource = value; } } // Check to see if CustomCookbooksSource property is set internal bool IsSetCustomCookbooksSource() { return this._customCookbooksSource != null; } /// /// Gets and sets the property CustomJson. /// /// A string that contains user-defined, custom JSON. It can be used to override the corresponding /// default stack configuration attribute values or to pass data to recipes. The string /// should be in the following format: /// /// /// /// "{\"key1\": \"value1\", \"key2\": \"value2\",...}" /// /// /// /// For more information about custom JSON, see Use /// Custom JSON to Modify the Stack Configuration Attributes. /// /// public string CustomJson { get { return this._customJson; } set { this._customJson = value; } } // Check to see if CustomJson property is set internal bool IsSetCustomJson() { return this._customJson != null; } /// /// Gets and sets the property DefaultAvailabilityZone. /// /// The stack's default Availability Zone, which must be in the specified region. For /// more information, see Regions /// and Endpoints. If you also specify a value for DefaultSubnetId, the /// subnet must be in the same zone. For more information, see the VpcId /// parameter description. /// /// public string DefaultAvailabilityZone { get { return this._defaultAvailabilityZone; } set { this._defaultAvailabilityZone = value; } } // Check to see if DefaultAvailabilityZone property is set internal bool IsSetDefaultAvailabilityZone() { return this._defaultAvailabilityZone != null; } /// /// Gets and sets the property DefaultInstanceProfileArn. /// /// The Amazon Resource Name (ARN) of an IAM profile that is the default profile for all /// of the stack's EC2 instances. For more information about IAM ARNs, see Using /// Identifiers. /// /// [AWSProperty(Required=true)] public string DefaultInstanceProfileArn { get { return this._defaultInstanceProfileArn; } set { this._defaultInstanceProfileArn = value; } } // Check to see if DefaultInstanceProfileArn property is set internal bool IsSetDefaultInstanceProfileArn() { return this._defaultInstanceProfileArn != null; } /// /// Gets and sets the property DefaultOs. /// /// The stack's default operating system, which is installed on every instance unless /// you specify a different operating system when you create the instance. You can specify /// one of the following. /// ///
  • /// /// A supported Linux operating system: An Amazon Linux version, such as Amazon /// Linux 2018.03, Amazon Linux 2017.09, Amazon Linux 2017.03, /// Amazon Linux 2016.09, Amazon Linux 2016.03, Amazon /// Linux 2015.09, or Amazon Linux 2015.03. /// ///
  • /// /// A supported Ubuntu operating system, such as Ubuntu 16.04 LTS, Ubuntu /// 14.04 LTS, or Ubuntu 12.04 LTS. /// ///
  • /// /// CentOS Linux 7 /// ///
  • /// /// Red Hat Enterprise Linux 7 /// ///
  • /// /// A supported Windows operating system, such as Microsoft Windows Server 2012 /// R2 Base, Microsoft Windows Server 2012 R2 with SQL Server Express, /// Microsoft Windows Server 2012 R2 with SQL Server Standard, or Microsoft /// Windows Server 2012 R2 with SQL Server Web. /// ///
  • /// /// A custom AMI: Custom. You specify the custom AMI you want to use when /// you create instances. For more information, see /// Using Custom AMIs. /// ///
/// /// The default option is the current Amazon Linux version. For more information about /// supported operating systems, see AWS /// OpsWorks Stacks Operating Systems. /// ///
public string DefaultOs { get { return this._defaultOs; } set { this._defaultOs = value; } } // Check to see if DefaultOs property is set internal bool IsSetDefaultOs() { return this._defaultOs != null; } /// /// Gets and sets the property DefaultRootDeviceType. /// /// The default root device type. This value is the default for all instances in the stack, /// but you can override it when you create an instance. The default option is instance-store. /// For more information, see Storage /// for the Root Device. /// /// public RootDeviceType DefaultRootDeviceType { get { return this._defaultRootDeviceType; } set { this._defaultRootDeviceType = value; } } // Check to see if DefaultRootDeviceType property is set internal bool IsSetDefaultRootDeviceType() { return this._defaultRootDeviceType != null; } /// /// Gets and sets the property DefaultSshKeyName. /// /// A default Amazon EC2 key pair name. The default value is none. If you specify a key /// pair name, AWS OpsWorks installs the public key on the instance and you can use the /// private key with an SSH client to log in to the instance. For more information, see /// /// Using SSH to Communicate with an Instance and /// Managing SSH Access. You can override this setting by specifying a different key /// pair, or no key pair, when you /// create an instance. /// /// public string DefaultSshKeyName { get { return this._defaultSshKeyName; } set { this._defaultSshKeyName = value; } } // Check to see if DefaultSshKeyName property is set internal bool IsSetDefaultSshKeyName() { return this._defaultSshKeyName != null; } /// /// Gets and sets the property DefaultSubnetId. /// /// The stack's default VPC subnet ID. This parameter is required if you specify a value /// for the VpcId parameter. All instances are launched into this subnet /// unless you specify otherwise when you create the instance. If you also specify a value /// for DefaultAvailabilityZone, the subnet must be in that zone. For information /// on default values and when this parameter is required, see the VpcId /// parameter description. /// /// public string DefaultSubnetId { get { return this._defaultSubnetId; } set { this._defaultSubnetId = value; } } // Check to see if DefaultSubnetId property is set internal bool IsSetDefaultSubnetId() { return this._defaultSubnetId != null; } /// /// Gets and sets the property HostnameTheme. /// /// The stack's host name theme, with spaces replaced by underscores. The theme is used /// to generate host names for the stack's instances. By default, HostnameTheme /// is set to Layer_Dependent, which creates host names by appending integers /// to the layer's short name. The other themes are: /// ///
  • /// /// Baked_Goods /// ///
  • /// /// Clouds /// ///
  • /// /// Europe_Cities /// ///
  • /// /// Fruits /// ///
  • /// /// Greek_Deities_and_Titans /// ///
  • /// /// Legendary_creatures_from_Japan /// ///
  • /// /// Planets_and_Moons /// ///
  • /// /// Roman_Deities /// ///
  • /// /// Scottish_Islands /// ///
  • /// /// US_Cities /// ///
  • /// /// Wild_Cats /// ///
/// /// To obtain a generated host name, call GetHostNameSuggestion, which returns /// a host name based on the current theme. /// ///
public string HostnameTheme { get { return this._hostnameTheme; } set { this._hostnameTheme = value; } } // Check to see if HostnameTheme property is set internal bool IsSetHostnameTheme() { return this._hostnameTheme != null; } /// /// Gets and sets the property Name. /// /// The stack name. /// /// [AWSProperty(Required=true)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property Region. /// /// The stack's AWS region, such as ap-south-1. For more information about /// Amazon regions, see Regions /// and Endpoints. /// /// /// /// In the AWS CLI, this API maps to the --stack-region parameter. If the /// --stack-region parameter and the AWS CLI common parameter --region /// are set to the same value, the stack uses a regional endpoint. If the --stack-region /// parameter is not set, but the AWS CLI --region parameter is, this also /// results in a stack with a regional endpoint. However, if the --region /// parameter is set to us-east-1, and the --stack-region parameter /// is set to one of the following, then the stack uses a legacy or classic region: /// us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, /// ap-southeast-2. In this case, the actual API endpoint of the stack is in us-east-1. /// Only the preceding regions are supported as classic regions in the us-east-1 /// API endpoint. Because it is a best practice to choose the regional endpoint that is /// closest to where you manage AWS, we recommend that you use regional endpoints for /// new stacks. The AWS CLI common --region parameter always specifies a /// regional API endpoint; it cannot be used to specify a classic AWS OpsWorks Stacks /// region. /// /// /// [AWSProperty(Required=true)] public string Region { get { return this._region; } set { this._region = value; } } // Check to see if Region property is set internal bool IsSetRegion() { return this._region != null; } /// /// Gets and sets the property ServiceRoleArn. /// /// The stack's AWS Identity and Access Management (IAM) role, which allows AWS OpsWorks /// Stacks to work with AWS resources on your behalf. You must set this parameter to the /// Amazon Resource Name (ARN) for an existing IAM role. For more information about IAM /// ARNs, see Using /// Identifiers. /// /// [AWSProperty(Required=true)] public string ServiceRoleArn { get { return this._serviceRoleArn; } set { this._serviceRoleArn = value; } } // Check to see if ServiceRoleArn property is set internal bool IsSetServiceRoleArn() { return this._serviceRoleArn != null; } /// /// Gets and sets the property UseCustomCookbooks. /// /// Whether the stack uses custom cookbooks. /// /// public bool UseCustomCookbooks { get { return this._useCustomCookbooks.GetValueOrDefault(); } set { this._useCustomCookbooks = value; } } // Check to see if UseCustomCookbooks property is set internal bool IsSetUseCustomCookbooks() { return this._useCustomCookbooks.HasValue; } /// /// Gets and sets the property UseOpsworksSecurityGroups. /// /// Whether to associate the AWS OpsWorks Stacks built-in security groups with the stack's /// layers. /// /// /// /// AWS OpsWorks Stacks provides a standard set of built-in security groups, one for each /// layer, which are associated with layers by default. With UseOpsworksSecurityGroups /// you can instead provide your own custom security groups. UseOpsworksSecurityGroups /// has the following settings: /// ///
  • /// /// True - AWS OpsWorks Stacks automatically associates the appropriate built-in security /// group with each layer (default setting). You can associate additional security groups /// with a layer after you create it, but you cannot delete the built-in security group. /// ///
  • /// /// False - AWS OpsWorks Stacks does not associate built-in security groups with layers. /// You must create appropriate EC2 security groups and associate a security group with /// each layer that you create. However, you can still manually associate a built-in security /// group with a layer on creation; custom security groups are required only for those /// layers that need custom settings. /// ///
/// /// For more information, see Create /// a New Stack. /// ///
public bool UseOpsworksSecurityGroups { get { return this._useOpsworksSecurityGroups.GetValueOrDefault(); } set { this._useOpsworksSecurityGroups = value; } } // Check to see if UseOpsworksSecurityGroups property is set internal bool IsSetUseOpsworksSecurityGroups() { return this._useOpsworksSecurityGroups.HasValue; } /// /// Gets and sets the property VpcId. /// /// The ID of the VPC that the stack is to be launched into. The VPC must be in the stack's /// region. All instances are launched into this VPC. You cannot change the ID later. /// ///
  • /// /// If your account supports EC2-Classic, the default value is no VPC. /// ///
  • /// /// If your account does not support EC2-Classic, the default value is the default VPC /// for the specified region. /// ///
/// /// If the VPC ID corresponds to a default VPC and you have specified either the DefaultAvailabilityZone /// or the DefaultSubnetId parameter only, AWS OpsWorks Stacks infers the /// value of the other parameter. If you specify neither parameter, AWS OpsWorks Stacks /// sets these parameters to the first valid Availability Zone for the specified region /// and the corresponding default VPC subnet ID, respectively. /// /// /// /// If you specify a nondefault VPC ID, note the following: /// ///
  • /// /// It must belong to a VPC in your account that is in the specified region. /// ///
  • /// /// You must specify a value for DefaultSubnetId. /// ///
/// /// For more information about how to use AWS OpsWorks Stacks with a VPC, see Running /// a Stack in a VPC. For more information about default VPC and EC2-Classic, see /// Supported /// Platforms. /// ///
public string VpcId { get { return this._vpcId; } set { this._vpcId = value; } } // Check to see if VpcId property is set internal bool IsSetVpcId() { return this._vpcId != null; } } }