/* * 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 autoscaling-2011-01-01.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.AutoScaling.Model { /// /// Describes a launch configuration. /// public partial class LaunchConfiguration { private bool? _associatePublicIpAddress; private List _blockDeviceMappings = new List(); private string _classicLinkVPCId; private List _classicLinkVPCSecurityGroups = new List(); private DateTime? _createdTime; private bool? _ebsOptimized; private string _iamInstanceProfile; private string _imageId; private InstanceMonitoring _instanceMonitoring; private string _instanceType; private string _kernelId; private string _keyName; private string _launchConfigurationARN; private string _launchConfigurationName; private InstanceMetadataOptions _metadataOptions; private string _placementTenancy; private string _ramdiskId; private List _securityGroups = new List(); private string _spotPrice; private string _userData; /// /// Gets and sets the property AssociatePublicIpAddress. /// /// Specifies whether to assign a public IPv4 address to the group's instances. If the /// instance is launched into a default subnet, the default is to assign a public IPv4 /// address, unless you disabled the option to assign a public IPv4 address on the subnet. /// If the instance is launched into a nondefault subnet, the default is not to assign /// a public IPv4 address, unless you enabled the option to assign a public IPv4 address /// on the subnet. For more information, see Launching /// Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide. /// /// public bool AssociatePublicIpAddress { get { return this._associatePublicIpAddress.GetValueOrDefault(); } set { this._associatePublicIpAddress = value; } } // Check to see if AssociatePublicIpAddress property is set internal bool IsSetAssociatePublicIpAddress() { return this._associatePublicIpAddress.HasValue; } /// /// Gets and sets the property BlockDeviceMappings. /// /// The block device mapping entries that define the block devices to attach to the instances /// at launch. By default, the block devices specified in the block device mapping for /// the AMI are used. For more information, see Block /// Device Mapping in the Amazon EC2 User Guide for Linux Instances. /// /// 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 ClassicLinkVPCId. /// /// Available for backward compatibility. /// /// [AWSProperty(Min=1, Max=255)] public string ClassicLinkVPCId { get { return this._classicLinkVPCId; } set { this._classicLinkVPCId = value; } } // Check to see if ClassicLinkVPCId property is set internal bool IsSetClassicLinkVPCId() { return this._classicLinkVPCId != null; } /// /// Gets and sets the property ClassicLinkVPCSecurityGroups. /// /// Available for backward compatibility. /// /// public List ClassicLinkVPCSecurityGroups { get { return this._classicLinkVPCSecurityGroups; } set { this._classicLinkVPCSecurityGroups = value; } } // Check to see if ClassicLinkVPCSecurityGroups property is set internal bool IsSetClassicLinkVPCSecurityGroups() { return this._classicLinkVPCSecurityGroups != null && this._classicLinkVPCSecurityGroups.Count > 0; } /// /// Gets and sets the property CreatedTime. /// /// The creation date and time for the launch configuration. /// /// [AWSProperty(Required=true)] public DateTime CreatedTime { get { return this._createdTime.GetValueOrDefault(); } set { this._createdTime = value; } } // Check to see if CreatedTime property is set internal bool IsSetCreatedTime() { return this._createdTime.HasValue; } /// /// Gets and sets the property EbsOptimized. /// /// Specifies whether the launch configuration is optimized for EBS I/O (true) /// or not (false). For more information, see Amazon /// EBS-Optimized Instances in the Amazon EC2 User Guide for Linux Instances. /// /// 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 IamInstanceProfile. /// /// The name or the Amazon Resource Name (ARN) of the instance profile associated with /// the IAM role for the instance. The instance profile contains the IAM role. For more /// information, see IAM /// role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto /// Scaling User Guide. /// /// [AWSProperty(Min=1, Max=1600)] public string IamInstanceProfile { get { return this._iamInstanceProfile; } set { this._iamInstanceProfile = value; } } // Check to see if IamInstanceProfile property is set internal bool IsSetIamInstanceProfile() { return this._iamInstanceProfile != null; } /// /// Gets and sets the property ImageId. /// /// The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For /// more information, see Find /// a Linux AMI in the Amazon EC2 User Guide for Linux Instances. /// /// [AWSProperty(Required=true, Min=1, Max=255)] public string ImageId { get { return this._imageId; } set { this._imageId = value; } } // Check to see if ImageId property is set internal bool IsSetImageId() { return this._imageId != null; } /// /// Gets and sets the property InstanceMonitoring. /// /// Controls whether instances in this group are launched with detailed (true) /// or basic (false) monitoring. /// /// /// /// For more information, see Configure /// Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide. /// /// public InstanceMonitoring InstanceMonitoring { get { return this._instanceMonitoring; } set { this._instanceMonitoring = value; } } // Check to see if InstanceMonitoring property is set internal bool IsSetInstanceMonitoring() { return this._instanceMonitoring != null; } /// /// Gets and sets the property InstanceType. /// /// The instance type for the instances. For information about available instance types, /// see Available /// instance types in the Amazon EC2 User Guide for Linux Instances. /// /// [AWSProperty(Required=true, Min=1, Max=255)] 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 KernelId. /// /// The ID of the kernel associated with the AMI. /// /// [AWSProperty(Min=1, Max=255)] public string KernelId { get { return this._kernelId; } set { this._kernelId = value; } } // Check to see if KernelId property is set internal bool IsSetKernelId() { return this._kernelId != null; } /// /// Gets and sets the property KeyName. /// /// The name of the key pair. /// /// /// /// For more information, see Amazon /// EC2 Key Pairs in the Amazon EC2 User Guide for Linux Instances. /// /// [AWSProperty(Min=1, Max=255)] public string KeyName { get { return this._keyName; } set { this._keyName = value; } } // Check to see if KeyName property is set internal bool IsSetKeyName() { return this._keyName != null; } /// /// Gets and sets the property LaunchConfigurationARN. /// /// The Amazon Resource Name (ARN) of the launch configuration. /// /// [AWSProperty(Min=1, Max=1600)] public string LaunchConfigurationARN { get { return this._launchConfigurationARN; } set { this._launchConfigurationARN = value; } } // Check to see if LaunchConfigurationARN property is set internal bool IsSetLaunchConfigurationARN() { return this._launchConfigurationARN != null; } /// /// Gets and sets the property LaunchConfigurationName. /// /// The name of the launch configuration. /// /// [AWSProperty(Required=true, Min=1, Max=255)] public string LaunchConfigurationName { get { return this._launchConfigurationName; } set { this._launchConfigurationName = value; } } // Check to see if LaunchConfigurationName property is set internal bool IsSetLaunchConfigurationName() { return this._launchConfigurationName != null; } /// /// Gets and sets the property MetadataOptions. /// /// The metadata options for the instances. For more information, see Configuring /// the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide. /// /// public InstanceMetadataOptions MetadataOptions { get { return this._metadataOptions; } set { this._metadataOptions = value; } } // Check to see if MetadataOptions property is set internal bool IsSetMetadataOptions() { return this._metadataOptions != null; } /// /// Gets and sets the property PlacementTenancy. /// /// The tenancy of the instance, either default or dedicated. /// An instance with dedicated tenancy runs on isolated, single-tenant hardware /// and can only be launched into a VPC. /// /// /// /// For more information, see Configuring /// instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling /// User Guide. /// /// [AWSProperty(Min=1, Max=64)] public string PlacementTenancy { get { return this._placementTenancy; } set { this._placementTenancy = value; } } // Check to see if PlacementTenancy property is set internal bool IsSetPlacementTenancy() { return this._placementTenancy != null; } /// /// Gets and sets the property RamdiskId. /// /// The ID of the RAM disk associated with the AMI. /// /// [AWSProperty(Min=1, Max=255)] public string RamdiskId { get { return this._ramdiskId; } set { this._ramdiskId = value; } } // Check to see if RamdiskId property is set internal bool IsSetRamdiskId() { return this._ramdiskId != null; } /// /// Gets and sets the property SecurityGroups. /// /// A list that contains the security groups to assign to the instances in the Auto Scaling /// group. For more information, see Security /// Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. /// /// public List SecurityGroups { get { return this._securityGroups; } set { this._securityGroups = value; } } // Check to see if SecurityGroups property is set internal bool IsSetSecurityGroups() { return this._securityGroups != null && this._securityGroups.Count > 0; } /// /// Gets and sets the property SpotPrice. /// /// The maximum hourly price to be paid for any Spot Instance launched to fulfill the /// request. Spot Instances are launched when the price you specify exceeds the current /// Spot price. For more information, see Requesting /// Spot Instances in the Amazon EC2 Auto Scaling User Guide. /// /// [AWSProperty(Min=1, Max=255)] public string SpotPrice { get { return this._spotPrice; } set { this._spotPrice = value; } } // Check to see if SpotPrice property is set internal bool IsSetSpotPrice() { return this._spotPrice != null; } /// /// Gets and sets the property UserData. /// /// The user data to make available to the launched EC2 instances. For more information, /// see Instance /// metadata and user data (Linux) and Instance /// metadata and user data (Windows). If you are using a command line tool, base64-encoding /// is performed for you, and you can load the text from a file. Otherwise, you must provide /// base64-encoded text. User data is limited to 16 KB. /// /// [AWSProperty(Max=21847)] public string UserData { get { return this._userData; } set { this._userData = value; } } // Check to see if UserData property is set internal bool IsSetUserData() { return this._userData != null; } } }