/*
* 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
{
///
/// Describes the launch specification for one or more Spot Instances. If you include
/// On-Demand capacity in your fleet request or want to specify an EFA network device,
/// you can't use SpotFleetLaunchSpecification
; you must use LaunchTemplateConfig.
///
public partial class SpotFleetLaunchSpecification
{
private string _addressingType;
private List _blockDeviceMappings = new List();
private bool? _ebsOptimized;
private IamInstanceProfileSpecification _iamInstanceProfile;
private string _imageId;
private InstanceRequirements _instanceRequirements;
private InstanceType _instanceType;
private string _kernelId;
private string _keyName;
private SpotFleetMonitoring _monitoring;
private List _networkInterfaces = new List();
private SpotPlacement _placement;
private string _ramdiskId;
private List _securityGroups = new List();
private string _spotPrice;
private string _subnetId;
private List _tagSpecifications = new List();
private string _userData;
private double? _weightedCapacity;
///
/// Gets and sets the property AddressingType.
///
/// Deprecated.
///
///
public string AddressingType
{
get { return this._addressingType; }
set { this._addressingType = value; }
}
// Check to see if AddressingType property is set
internal bool IsSetAddressingType()
{
return this._addressingType != null;
}
///
/// Gets and sets the property BlockDeviceMappings.
///
/// One or more block devices that are mapped to the Spot Instances. You can't specify
/// both a snapshot ID and an encryption value. This is because only blank volumes can
/// be encrypted on creation. If a snapshot is the basis for a volume, it is not blank
/// and its encryption status is used for the volume encryption status.
///
///
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.
///
/// Indicates whether the instances are optimized for EBS I/O. This optimization provides
/// dedicated throughput to Amazon EBS and an optimized configuration stack to provide
/// optimal EBS I/O performance. This optimization isn't available with all instance types.
/// Additional usage charges apply when using an EBS Optimized instance.
///
///
///
/// Default: false
///
///
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 IAM instance profile.
///
///
public IamInstanceProfileSpecification 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.
///
///
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 InstanceRequirements.
///
/// The attributes for the instance types. When you specify instance attributes, Amazon
/// EC2 will identify instance types with those attributes.
///
///
///
/// If you specify InstanceRequirements
, you can't specify InstanceType
.
///
///
///
public InstanceRequirements 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.
///
///
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.
///
///
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.
///
///
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 Monitoring.
///
/// Enable or disable monitoring for the instances.
///
///
public SpotFleetMonitoring 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
/// subnet IDs and security group IDs using the network interface.
///
///
///
/// SpotFleetLaunchSpecification
currently does not support Elastic Fabric
/// Adapter (EFA). To specify an EFA, you must use LaunchTemplateConfig.
///
///
///
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 information.
///
///
public SpotPlacement 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 RamdiskId.
///
/// The ID of the RAM disk. Some kernels require additional drivers at launch. Check the
/// kernel requirements for information about whether you need to specify a RAM disk.
/// To find kernel requirements, refer to the Amazon Web Services Resource Center and
/// search for the kernel ID.
///
///
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.
///
/// The security groups.
///
///
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 price per unit hour that you are willing to pay for a Spot Instance. We
/// do not recommend using this parameter because it can lead to increased interruptions.
/// If you do not specify this parameter, you will pay the current Spot price.
///
///
///
/// If you specify a maximum price, your instances will be interrupted more frequently
/// than if you do not specify this parameter.
///
///
///
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 SubnetId.
///
/// The IDs of the subnets in which to launch the instances. To specify multiple subnets,
/// separate them using commas; for example, "subnet-1234abcdeexample1, subnet-0987cdef6example2".
///
///
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 TagSpecifications.
///
/// The tags to apply during creation.
///
///
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 base64-encoded user data that instances use when starting up. User data is limited
/// to 16 KB.
///
///
[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;
}
///
/// Gets and sets the property WeightedCapacity.
///
/// The number of units provided by the specified instance type. These are the same units
/// that you chose to set the target capacity in terms of instances, or a performance
/// characteristic such as vCPUs, memory, or I/O.
///
///
///
/// If the target capacity divided by this value is not a whole number, Amazon EC2 rounds
/// the number of instances to the next whole number. If this value is not specified,
/// the default is 1.
///
///
public double WeightedCapacity
{
get { return this._weightedCapacity.GetValueOrDefault(); }
set { this._weightedCapacity = value; }
}
// Check to see if WeightedCapacity property is set
internal bool IsSetWeightedCapacity()
{
return this._weightedCapacity.HasValue;
}
}
}