/*
* 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 overrides for a launch template.
///
public partial class FleetLaunchTemplateOverrides
{
private string _availabilityZone;
private string _imageId;
private InstanceRequirements _instanceRequirements;
private InstanceType _instanceType;
private string _maxPrice;
private PlacementResponse _placement;
private double? _priority;
private string _subnetId;
private double? _weightedCapacity;
///
/// Gets and sets the property AvailabilityZone.
///
/// The Availability Zone in which to launch the instances.
///
///
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 ImageId.
///
/// The ID of the AMI. An AMI is required to launch an instance. This parameter is only
/// available for fleets of type instant
. For fleets of type maintain
/// and request
, you must specify the AMI ID in the launch template.
///
///
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.
///
///
///
/// mac1.metal
is not supported as a launch template override.
///
///
///
/// 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 MaxPrice.
///
/// 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 MaxPrice
{
get { return this._maxPrice; }
set { this._maxPrice = value; }
}
// Check to see if MaxPrice property is set
internal bool IsSetMaxPrice()
{
return this._maxPrice != null;
}
///
/// Gets and sets the property Placement.
///
/// The location where the instance launched, if applicable.
///
///
public PlacementResponse 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 Priority.
///
/// The priority for the launch template override. The highest priority is launched first.
///
///
///
/// If the On-Demand AllocationStrategy
is set to prioritized
,
/// EC2 Fleet uses priority to determine which launch template override to use first in
/// fulfilling On-Demand capacity.
///
///
///
/// If the Spot AllocationStrategy
is set to capacity-optimized-prioritized
,
/// EC2 Fleet uses priority on a best-effort basis to determine which launch template
/// override to use in fulfilling Spot capacity, but optimizes for capacity first.
///
///
///
/// Valid values are whole numbers starting at 0
. The lower the number, the
/// higher the priority. If no number is set, the override has the lowest priority. You
/// can set the same priority for different launch template overrides.
///
///
public double Priority
{
get { return this._priority.GetValueOrDefault(); }
set { this._priority = value; }
}
// Check to see if Priority property is set
internal bool IsSetPriority()
{
return this._priority.HasValue;
}
///
/// Gets and sets the property SubnetId.
///
/// The ID of the subnet in which to launch the instances.
///
///
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 WeightedCapacity.
///
/// The number of units provided by the specified instance type.
///
///
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;
}
}
}