/*
* 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 CreateInstance operation.
/// Creates an instance in a specified stack. For more information, see Adding
/// an Instance to a Layer.
///
///
///
/// Required Permissions: To use this action, an IAM user must have a Manage permissions
/// level for the stack, or an attached policy that explicitly grants permissions. For
/// more information on user permissions, see Managing
/// User Permissions.
///
///
public partial class CreateInstanceRequest : AmazonOpsWorksRequest
{
private string _agentVersion;
private string _amiId;
private Architecture _architecture;
private AutoScalingType _autoScalingType;
private string _availabilityZone;
private List _blockDeviceMappings = new List();
private bool? _ebsOptimized;
private string _hostname;
private bool? _installUpdatesOnBoot;
private string _instanceType;
private List _layerIds = new List();
private string _os;
private RootDeviceType _rootDeviceType;
private string _sshKeyName;
private string _stackId;
private string _subnetId;
private string _tenancy;
private VirtualizationType _virtualizationType;
///
/// Gets and sets the property AgentVersion.
///
/// The default AWS OpsWorks Stacks agent version. You have the following options:
///
/// -
///
///
INHERIT
- Use the stack's default agent version setting.
///
/// -
///
/// version_number - Use the specified agent version. This value overrides the
/// stack's default setting. To update the agent version, edit the instance configuration
/// and specify a new version. AWS OpsWorks Stacks then automatically installs that version
/// on the instance.
///
///
///
/// The default setting is INHERIT
. 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.
///
///
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 AmiId.
///
/// A custom AMI ID to be used to create the instance. The AMI should be based on one
/// of the supported operating systems. For more information, see Using
/// Custom AMIs.
///
///
///
/// If you specify a custom AMI, you must set Os
to Custom
.
///
///
///
public string AmiId
{
get { return this._amiId; }
set { this._amiId = value; }
}
// Check to see if AmiId property is set
internal bool IsSetAmiId()
{
return this._amiId != null;
}
///
/// Gets and sets the property Architecture.
///
/// The instance architecture. The default option is x86_64
. Instance types
/// do not necessarily support both architectures. For a list of the architectures that
/// are supported by the different instance types, see Instance
/// Families and Types.
///
///
public Architecture Architecture
{
get { return this._architecture; }
set { this._architecture = value; }
}
// Check to see if Architecture property is set
internal bool IsSetArchitecture()
{
return this._architecture != null;
}
///
/// Gets and sets the property AutoScalingType.
///
/// For load-based or time-based instances, the type. Windows stacks can use only time-based
/// instances.
///
///
public AutoScalingType AutoScalingType
{
get { return this._autoScalingType; }
set { this._autoScalingType = value; }
}
// Check to see if AutoScalingType property is set
internal bool IsSetAutoScalingType()
{
return this._autoScalingType != null;
}
///
/// Gets and sets the property AvailabilityZone.
///
/// The instance Availability Zone. For more information, see Regions
/// and Endpoints.
///
///
public string AvailabilityZone
{
get { return this._availabilityZone; }
set { this._availabilityZone = value; }
}
// Check to see if AvailabilityZone property is set
internal bool IsSetAvailabilityZone()
{
return this._availabilityZone != null;
}
///
/// Gets and sets the property BlockDeviceMappings.
///
/// An array of BlockDeviceMapping
objects that specify the instance's block
/// devices. For more information, see Block
/// Device Mapping. Note that block device mappings are not supported for custom AMIs.
///
///
public List BlockDeviceMappings
{
get { return this._blockDeviceMappings; }
set { this._blockDeviceMappings = value; }
}
// Check to see if BlockDeviceMappings property is set
internal bool IsSetBlockDeviceMappings()
{
return this._blockDeviceMappings != null && this._blockDeviceMappings.Count > 0;
}
///
/// Gets and sets the property EbsOptimized.
///
/// Whether to create an Amazon EBS-optimized instance.
///
///
public bool EbsOptimized
{
get { return this._ebsOptimized.GetValueOrDefault(); }
set { this._ebsOptimized = value; }
}
// Check to see if EbsOptimized property is set
internal bool IsSetEbsOptimized()
{
return this._ebsOptimized.HasValue;
}
///
/// Gets and sets the property Hostname.
///
/// The instance host name.
///
///
public string Hostname
{
get { return this._hostname; }
set { this._hostname = value; }
}
// Check to see if Hostname property is set
internal bool IsSetHostname()
{
return this._hostname != null;
}
///
/// Gets and sets the property InstallUpdatesOnBoot.
///
/// Whether to install operating system and package updates when the instance boots. The
/// default value is true
. To control when updates are installed, set this
/// value to false
. You must then update your instances manually by using
/// CreateDeployment to run the update_dependencies
stack command
/// or by manually running yum
(Amazon Linux) or apt-get
(Ubuntu)
/// on the instances.
///
///
///
/// We strongly recommend using the default value of true
to ensure that
/// your instances have the latest security updates.
///
///
///
public bool InstallUpdatesOnBoot
{
get { return this._installUpdatesOnBoot.GetValueOrDefault(); }
set { this._installUpdatesOnBoot = value; }
}
// Check to see if InstallUpdatesOnBoot property is set
internal bool IsSetInstallUpdatesOnBoot()
{
return this._installUpdatesOnBoot.HasValue;
}
///
/// Gets and sets the property InstanceType.
///
/// The instance type, such as t2.micro
. For a list of supported instance
/// types, open the stack in the console, choose Instances, and choose + Instance.
/// The Size list contains the currently supported types. For more information,
/// see Instance
/// Families and Types. The parameter values that you use to specify the various types
/// are in the API Name column of the Available Instance Types table.
///
///
[AWSProperty(Required=true)]
public string InstanceType
{
get { return this._instanceType; }
set { this._instanceType = value; }
}
// Check to see if InstanceType property is set
internal bool IsSetInstanceType()
{
return this._instanceType != null;
}
///
/// Gets and sets the property LayerIds.
///
/// An array that contains the instance's layer IDs.
///
///
[AWSProperty(Required=true)]
public List LayerIds
{
get { return this._layerIds; }
set { this._layerIds = value; }
}
// Check to see if LayerIds property is set
internal bool IsSetLayerIds()
{
return this._layerIds != null && this._layerIds.Count > 0;
}
///
/// Gets and sets the property Os.
///
/// The instance'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
///
/// -
///
/// 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
.
///
///
///
/// For more information about the supported operating systems, see AWS
/// OpsWorks Stacks Operating Systems.
///
///
///
/// The default option is the current Amazon Linux version. If you set this parameter
/// to Custom
, you must use the CreateInstance action's AmiId parameter
/// to specify the custom AMI that you want to use. Block device mappings are not supported
/// if the value is Custom
. For more information about supported operating
/// systems, see Operating
/// SystemsFor more information about how to use custom AMIs with AWS OpsWorks Stacks,
/// see Using
/// Custom AMIs.
///
///
public string Os
{
get { return this._os; }
set { this._os = value; }
}
// Check to see if Os property is set
internal bool IsSetOs()
{
return this._os != null;
}
///
/// Gets and sets the property RootDeviceType.
///
/// The instance root device type. For more information, see Storage
/// for the Root Device.
///
///
public RootDeviceType RootDeviceType
{
get { return this._rootDeviceType; }
set { this._rootDeviceType = value; }
}
// Check to see if RootDeviceType property is set
internal bool IsSetRootDeviceType()
{
return this._rootDeviceType != null;
}
///
/// Gets and sets the property SshKeyName.
///
/// The instance's Amazon EC2 key-pair name.
///
///
public string SshKeyName
{
get { return this._sshKeyName; }
set { this._sshKeyName = value; }
}
// Check to see if SshKeyName property is set
internal bool IsSetSshKeyName()
{
return this._sshKeyName != null;
}
///
/// Gets and sets the property StackId.
///
/// The stack ID.
///
///
[AWSProperty(Required=true)]
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 SubnetId.
///
/// The ID of the instance's subnet. If the stack is running in a VPC, you can use this
/// parameter to override the stack's default subnet ID value and direct AWS OpsWorks
/// Stacks to launch the instance in a different subnet.
///
///
public string SubnetId
{
get { return this._subnetId; }
set { this._subnetId = value; }
}
// Check to see if SubnetId property is set
internal bool IsSetSubnetId()
{
return this._subnetId != null;
}
///
/// Gets and sets the property Tenancy.
///
/// The instance's tenancy option. The default option is no tenancy, or if the instance
/// is running in a VPC, inherit tenancy settings from the VPC. The following are valid
/// values for this parameter: dedicated
, default
, or host
.
/// Because there are costs associated with changes in tenancy options, we recommend that
/// you research tenancy options before choosing them for your instances. For more information
/// about dedicated hosts, see Dedicated
/// Hosts Overview and Amazon
/// EC2 Dedicated Hosts. For more information about dedicated instances, see Dedicated
/// Instances and Amazon
/// EC2 Dedicated Instances.
///
///
public string Tenancy
{
get { return this._tenancy; }
set { this._tenancy = value; }
}
// Check to see if Tenancy property is set
internal bool IsSetTenancy()
{
return this._tenancy != null;
}
///
/// Gets and sets the property VirtualizationType.
///
/// The instance's virtualization type, paravirtual
or hvm
.
///
///
public VirtualizationType VirtualizationType
{
get { return this._virtualizationType; }
set { this._virtualizationType = value; }
}
// Check to see if VirtualizationType property is set
internal bool IsSetVirtualizationType()
{
return this._virtualizationType != null;
}
}
}