/* * 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 CloneStack operation. /// Creates a clone of a specified stack. For more information, see Clone /// a Stack. By default, all parameters are set to the values used by the parent 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 CloneStackRequest : AmazonOpsWorksRequest { private string _agentVersion; private Dictionary _attributes = new Dictionary(); private ChefConfiguration _chefConfiguration; private List _cloneAppIds = new List(); private bool? _clonePermissions; 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 string _sourceStackId; 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 LATEST. 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. /// /// A list of stack attributes and values as key/value pairs to be added to the cloned /// stack. /// /// 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 CloneAppIds. /// /// A list of source stack app IDs to be included in the cloned stack. /// /// public List CloneAppIds { get { return this._cloneAppIds; } set { this._cloneAppIds = value; } } // Check to see if CloneAppIds property is set internal bool IsSetCloneAppIds() { return this._cloneAppIds != null && this._cloneAppIds.Count > 0; } /// /// Gets and sets the property ClonePermissions. /// /// Whether to clone the source stack's permissions. /// /// public bool ClonePermissions { get { return this._clonePermissions.GetValueOrDefault(); } set { this._clonePermissions = value; } } // Check to see if ClonePermissions property is set internal bool IsSetClonePermissions() { return this._clonePermissions.HasValue; } /// /// Gets and sets the property ConfigurationManager. /// /// The configuration manager. When you clone 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 is used to override the corresponding /// default stack configuration JSON values. 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 cloned 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. /// /// 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 operating system, which must be set to 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 /// ///
  • /// /// 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 about how to use custom AMIs with OpsWorks, /// see Using /// Custom AMIs. /// ///
/// /// The default option is the parent stack's operating system. For more information about /// supported operating systems, see AWS /// OpsWorks Stacks Operating Systems. /// /// /// /// You can specify a different Linux operating system for the cloned stack, but you cannot /// change from Linux to Windows or Windows to Linux. /// /// ///
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 used by default for all instances in the /// cloned stack, but you can override it when you create an instance. 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 are 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 cloned stack name. /// /// 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 cloned stack AWS region, such as "ap-northeast-2". For more information about /// AWS regions, see Regions /// and Endpoints. /// /// 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 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. If you create a stack by using /// the AWS OpsWorks Stacks console, it creates the role for you. You can obtain an existing /// stack's IAM ARN programmatically by calling DescribePermissions. For more information /// about IAM ARNs, see Using /// Identifiers. /// /// /// /// You must set this parameter to a valid service role ARN or the action will fail; there /// is no default value. You can specify the source stack's service role ARN, if you prefer, /// but you must do so explicitly. /// /// /// [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 SourceStackId. /// /// The source stack ID. /// /// [AWSProperty(Required=true)] public string SourceStackId { get { return this._sourceStackId; } set { this._sourceStackId = value; } } // Check to see if SourceStackId property is set internal bool IsSetSourceStackId() { return this._sourceStackId != null; } /// /// Gets and sets the property UseCustomCookbooks. /// /// Whether to use 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 Amazon Elastic Compute Cloud (Amazon 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 cloned stack is to be launched into. It must be in the /// specified region. All instances are launched into this VPC, and 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; } } }