/* * 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 ec2-2016-11-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.EC2.Model { /// /// The information to include in the launch template. /// /// /// /// You must specify at least one parameter for the launch template data. /// /// /// public partial class RequestLaunchTemplateData { private List _blockDeviceMappings = new List(); private LaunchTemplateCapacityReservationSpecificationRequest _capacityReservationSpecification; private LaunchTemplateCpuOptionsRequest _cpuOptions; private CreditSpecificationRequest _creditSpecification; private bool? _disableApiStop; private bool? _disableApiTermination; private bool? _ebsOptimized; private List _elasticGpuSpecifications = new List(); private List _elasticInferenceAccelerators = new List(); private LaunchTemplateEnclaveOptionsRequest _enclaveOptions; private LaunchTemplateHibernationOptionsRequest _hibernationOptions; private LaunchTemplateIamInstanceProfileSpecificationRequest _iamInstanceProfile; private string _imageId; private ShutdownBehavior _instanceInitiatedShutdownBehavior; private LaunchTemplateInstanceMarketOptionsRequest _instanceMarketOptions; private InstanceRequirementsRequest _instanceRequirements; private InstanceType _instanceType; private string _kernelId; private string _keyName; private List _licenseSpecifications = new List(); private LaunchTemplateInstanceMaintenanceOptionsRequest _maintenanceOptions; private LaunchTemplateInstanceMetadataOptionsRequest _metadataOptions; private LaunchTemplatesMonitoringRequest _monitoring; private List _networkInterfaces = new List(); private LaunchTemplatePlacementRequest _placement; private LaunchTemplatePrivateDnsNameOptionsRequest _privateDnsNameOptions; private string _ramDiskId; private List _securityGroupIds = new List(); private List _securityGroups = new List(); private List _tagSpecifications = new List(); private string _userData; /// /// Gets and sets the property BlockDeviceMappings. /// /// The block device mapping. /// /// 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 CapacityReservationSpecification. /// /// The Capacity Reservation targeting option. If you do not specify this parameter, the /// instance's Capacity Reservation preference defaults to open, which enables /// it to run in any open Capacity Reservation that has matching attributes (instance /// type, platform, Availability Zone). /// /// public LaunchTemplateCapacityReservationSpecificationRequest CapacityReservationSpecification { get { return this._capacityReservationSpecification; } set { this._capacityReservationSpecification = value; } } // Check to see if CapacityReservationSpecification property is set internal bool IsSetCapacityReservationSpecification() { return this._capacityReservationSpecification != null; } /// /// Gets and sets the property CpuOptions. /// /// The CPU options for the instance. For more information, see Optimizing /// CPU Options in the Amazon Elastic Compute Cloud User Guide. /// /// public LaunchTemplateCpuOptionsRequest CpuOptions { get { return this._cpuOptions; } set { this._cpuOptions = value; } } // Check to see if CpuOptions property is set internal bool IsSetCpuOptions() { return this._cpuOptions != null; } /// /// Gets and sets the property CreditSpecification. /// /// The credit option for CPU usage of the instance. Valid only for T instances. /// /// public CreditSpecificationRequest CreditSpecification { get { return this._creditSpecification; } set { this._creditSpecification = value; } } // Check to see if CreditSpecification property is set internal bool IsSetCreditSpecification() { return this._creditSpecification != null; } /// /// Gets and sets the property DisableApiStop. /// /// Indicates whether to enable the instance for stop protection. For more information, /// see Stop /// protection in the Amazon Elastic Compute Cloud User Guide. /// /// public bool DisableApiStop { get { return this._disableApiStop.GetValueOrDefault(); } set { this._disableApiStop = value; } } // Check to see if DisableApiStop property is set internal bool IsSetDisableApiStop() { return this._disableApiStop.HasValue; } /// /// Gets and sets the property DisableApiTermination. /// /// If you set this parameter to true, you can't terminate the instance using /// the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute /// after launch, use ModifyInstanceAttribute. /// Alternatively, if you set InstanceInitiatedShutdownBehavior to terminate, /// you can terminate the instance by running the shutdown command from the instance. /// /// public bool DisableApiTermination { get { return this._disableApiTermination.GetValueOrDefault(); } set { this._disableApiTermination = value; } } // Check to see if DisableApiTermination property is set internal bool IsSetDisableApiTermination() { return this._disableApiTermination.HasValue; } /// /// Gets and sets the property EbsOptimized. /// /// Indicates whether the instance is optimized for Amazon EBS I/O. This optimization /// provides dedicated throughput to Amazon EBS and an optimized configuration stack to /// provide optimal Amazon EBS I/O performance. This optimization isn't available with /// all instance types. Additional usage charges apply when using an 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 ElasticGpuSpecifications. /// /// An elastic GPU to associate with the instance. /// /// public List ElasticGpuSpecifications { get { return this._elasticGpuSpecifications; } set { this._elasticGpuSpecifications = value; } } // Check to see if ElasticGpuSpecifications property is set internal bool IsSetElasticGpuSpecifications() { return this._elasticGpuSpecifications != null && this._elasticGpuSpecifications.Count > 0; } /// /// Gets and sets the property ElasticInferenceAccelerators. /// /// The elastic inference accelerator for the instance. /// /// public List ElasticInferenceAccelerators { get { return this._elasticInferenceAccelerators; } set { this._elasticInferenceAccelerators = value; } } // Check to see if ElasticInferenceAccelerators property is set internal bool IsSetElasticInferenceAccelerators() { return this._elasticInferenceAccelerators != null && this._elasticInferenceAccelerators.Count > 0; } /// /// Gets and sets the property EnclaveOptions. /// /// Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. /// For more information, see /// What is Amazon Web Services Nitro Enclaves? in the Amazon Web Services Nitro /// Enclaves User Guide. /// /// /// /// You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same instance. /// /// public LaunchTemplateEnclaveOptionsRequest EnclaveOptions { get { return this._enclaveOptions; } set { this._enclaveOptions = value; } } // Check to see if EnclaveOptions property is set internal bool IsSetEnclaveOptions() { return this._enclaveOptions != null; } /// /// Gets and sets the property HibernationOptions. /// /// Indicates whether an instance is enabled for hibernation. This parameter is valid /// only if the instance meets the hibernation /// prerequisites. For more information, see Hibernate /// your instance in the Amazon Elastic Compute Cloud User Guide. /// /// public LaunchTemplateHibernationOptionsRequest HibernationOptions { get { return this._hibernationOptions; } set { this._hibernationOptions = value; } } // Check to see if HibernationOptions property is set internal bool IsSetHibernationOptions() { return this._hibernationOptions != null; } /// /// Gets and sets the property IamInstanceProfile. /// /// The name or Amazon Resource Name (ARN) of an IAM instance profile. /// /// public LaunchTemplateIamInstanceProfileSpecificationRequest 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 AMI. Alternatively, you can specify a Systems Manager parameter, which /// will resolve to an AMI ID on launch. /// /// /// /// Valid formats: /// ///
  • /// /// ami-17characters00000 /// ///
  • /// /// resolve:ssm:parameter-name /// ///
  • /// /// resolve:ssm:parameter-name:version-number /// ///
  • /// /// resolve:ssm:parameter-name:label /// ///
  • /// /// resolve:ssm:public-parameter /// ///
/// /// Currently, EC2 Fleet and Spot Fleet do not support specifying a Systems Manager parameter. /// If the launch template will be used by an EC2 Fleet or Spot Fleet, you must specify /// the AMI ID. /// /// /// /// For more information, see Use /// a Systems Manager parameter instead of an AMI ID in the Amazon Elastic Compute /// Cloud User Guide. /// ///
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 InstanceInitiatedShutdownBehavior. /// /// Indicates whether an instance stops or terminates when you initiate shutdown from /// the instance (using the operating system command for system shutdown). /// /// /// /// Default: stop /// /// public ShutdownBehavior InstanceInitiatedShutdownBehavior { get { return this._instanceInitiatedShutdownBehavior; } set { this._instanceInitiatedShutdownBehavior = value; } } // Check to see if InstanceInitiatedShutdownBehavior property is set internal bool IsSetInstanceInitiatedShutdownBehavior() { return this._instanceInitiatedShutdownBehavior != null; } /// /// Gets and sets the property InstanceMarketOptions. /// /// The market (purchasing) option for the instances. /// /// public LaunchTemplateInstanceMarketOptionsRequest InstanceMarketOptions { get { return this._instanceMarketOptions; } set { this._instanceMarketOptions = value; } } // Check to see if InstanceMarketOptions property is set internal bool IsSetInstanceMarketOptions() { return this._instanceMarketOptions != null; } /// /// Gets and sets the property InstanceRequirements. /// /// The attributes for the instance types. When you specify instance attributes, Amazon /// EC2 will identify instance types with these attributes. /// /// /// /// You must specify VCpuCount and MemoryMiB. All other attributes /// are optional. Any unspecified optional attribute is set to its default. /// /// /// /// When you specify multiple attributes, you get instance types that satisfy all of the /// specified attributes. If you specify multiple values for an attribute, you get instance /// types that satisfy any of the specified values. /// /// /// /// To limit the list of instance types from which Amazon EC2 can identify matching instance /// types, you can use one of the following parameters, but not both in the same request: /// ///
  • /// /// AllowedInstanceTypes - The instance types to include in the list. All /// other instance types are ignored, even if they match your specified attributes. /// ///
  • /// /// ExcludedInstanceTypes - The instance types to exclude from the list, /// even if they match your specified attributes. /// ///
/// /// If you specify InstanceRequirements, you can't specify InstanceType. /// /// /// /// Attribute-based instance type selection is only supported when using Auto Scaling /// groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch /// template in the launch /// instance wizard, or with the RunInstances /// API or AWS::EC2::Instance /// Amazon Web Services CloudFormation resource, you can't specify InstanceRequirements. /// /// /// /// For more information, see Attribute-based /// instance type selection for EC2 Fleet, Attribute-based /// instance type selection for Spot Fleet, and Spot /// placement score in the Amazon EC2 User Guide. /// ///
public InstanceRequirementsRequest InstanceRequirements { get { return this._instanceRequirements; } set { this._instanceRequirements = value; } } // Check to see if InstanceRequirements property is set internal bool IsSetInstanceRequirements() { return this._instanceRequirements != null; } /// /// Gets and sets the property InstanceType. /// /// The instance type. For more information, see Instance /// types in the Amazon Elastic Compute Cloud User Guide. /// /// /// /// If you specify InstanceType, you can't specify InstanceRequirements. /// /// public InstanceType 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. /// /// /// /// We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, /// see User /// provided kernels in the Amazon Elastic Compute Cloud User Guide. /// /// /// 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. You can create a key pair using CreateKeyPair /// or ImportKeyPair. /// /// /// /// If you do not specify a key pair, you can't connect to the instance unless you choose /// an AMI that is configured to allow users another way to log in. /// /// /// 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 LicenseSpecifications. /// /// The license configurations. /// /// public List LicenseSpecifications { get { return this._licenseSpecifications; } set { this._licenseSpecifications = value; } } // Check to see if LicenseSpecifications property is set internal bool IsSetLicenseSpecifications() { return this._licenseSpecifications != null && this._licenseSpecifications.Count > 0; } /// /// Gets and sets the property MaintenanceOptions. /// /// The maintenance options for the instance. /// /// public LaunchTemplateInstanceMaintenanceOptionsRequest MaintenanceOptions { get { return this._maintenanceOptions; } set { this._maintenanceOptions = value; } } // Check to see if MaintenanceOptions property is set internal bool IsSetMaintenanceOptions() { return this._maintenanceOptions != null; } /// /// Gets and sets the property MetadataOptions. /// /// The metadata options for the instance. For more information, see Instance /// metadata and user data in the Amazon Elastic Compute Cloud User Guide. /// /// public LaunchTemplateInstanceMetadataOptionsRequest 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 Monitoring. /// /// The monitoring for the instance. /// /// public LaunchTemplatesMonitoringRequest Monitoring { get { return this._monitoring; } set { this._monitoring = value; } } // Check to see if Monitoring property is set internal bool IsSetMonitoring() { return this._monitoring != null; } /// /// Gets and sets the property NetworkInterfaces. /// /// One or more network interfaces. If you specify a network interface, you must specify /// any security groups and subnets as part of the network interface. /// /// public List NetworkInterfaces { get { return this._networkInterfaces; } set { this._networkInterfaces = value; } } // Check to see if NetworkInterfaces property is set internal bool IsSetNetworkInterfaces() { return this._networkInterfaces != null && this._networkInterfaces.Count > 0; } /// /// Gets and sets the property Placement. /// /// The placement for the instance. /// /// public LaunchTemplatePlacementRequest Placement { get { return this._placement; } set { this._placement = value; } } // Check to see if Placement property is set internal bool IsSetPlacement() { return this._placement != null; } /// /// Gets and sets the property PrivateDnsNameOptions. /// /// The options for the instance hostname. The default values are inherited from the subnet. /// /// public LaunchTemplatePrivateDnsNameOptionsRequest PrivateDnsNameOptions { get { return this._privateDnsNameOptions; } set { this._privateDnsNameOptions = value; } } // Check to see if PrivateDnsNameOptions property is set internal bool IsSetPrivateDnsNameOptions() { return this._privateDnsNameOptions != null; } /// /// Gets and sets the property RamDiskId. /// /// The ID of the RAM disk. /// /// /// /// We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, /// see User /// provided kernels in the Amazon Elastic Compute Cloud User Guide. /// /// /// 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 SecurityGroupIds. /// /// One or more security group IDs. You can create a security group using CreateSecurityGroup. /// You cannot specify both a security group ID and security name in the same request. /// /// public List SecurityGroupIds { get { return this._securityGroupIds; } set { this._securityGroupIds = value; } } // Check to see if SecurityGroupIds property is set internal bool IsSetSecurityGroupIds() { return this._securityGroupIds != null && this._securityGroupIds.Count > 0; } /// /// Gets and sets the property SecurityGroups. /// /// One or more security group names. For a nondefault VPC, you must use security group /// IDs instead. You cannot specify both a security group ID and security name in the /// same request. /// /// 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 TagSpecifications. /// /// The tags to apply to the resources that are created during instance launch. /// /// /// /// You can specify tags for the following resources only: /// ///
  • /// /// Instances /// ///
  • /// /// Volumes /// ///
  • /// /// Elastic graphics /// ///
  • /// /// Spot Instance requests /// ///
  • /// /// Network interfaces /// ///
/// /// To tag a resource after it has been created, see CreateTags. /// /// /// /// To tag the launch template itself, you must use the TagSpecification /// parameter. /// /// ///
public List TagSpecifications { get { return this._tagSpecifications; } set { this._tagSpecifications = value; } } // Check to see if TagSpecifications property is set internal bool IsSetTagSpecifications() { return this._tagSpecifications != null && this._tagSpecifications.Count > 0; } /// /// Gets and sets the property UserData. /// /// The user data to make available to the instance. You must provide base64-encoded text. /// User data is limited to 16 KB. For more information, see Run /// commands on your Linux instance at launch (Linux) or Work /// with instance user data (Windows) in the Amazon Elastic Compute Cloud User /// Guide. /// /// /// /// If you are creating the launch template for use with Batch, the user data must be /// provided in the /// MIME multi-part archive format. For more information, see Amazon /// EC2 user data in launch templates in the Batch User Guide. /// /// [AWSProperty(Sensitive=true)] 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; } } }