/*
* 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
{
///
/// Container for the parameters to the AllocateHosts operation.
/// Allocates a Dedicated Host to your account. At a minimum, specify the supported instance
/// type or instance family, the Availability Zone in which to allocate the host, and
/// the number of hosts to allocate.
///
public partial class AllocateHostsRequest : AmazonEC2Request
{
private List _assetIds = new List();
private AutoPlacement _autoPlacement;
private string _availabilityZone;
private string _clientToken;
private HostMaintenance _hostMaintenance;
private HostRecovery _hostRecovery;
private string _instanceFamily;
private string _instanceType;
private string _outpostArn;
private int? _quantity;
private List _tagSpecifications = new List();
///
/// Gets and sets the property AssetIds.
///
/// The IDs of the Outpost hardware assets on which to allocate the Dedicated Hosts. Targeting
/// specific hardware assets on an Outpost can help to minimize latency between your workloads.
/// This parameter is supported only if you specify OutpostArn. If you are allocating
/// the Dedicated Hosts in a Region, omit this parameter.
///
/// -
///
/// If you specify this parameter, you can omit Quantity. In this case, Amazon
/// EC2 allocates a Dedicated Host on each specified hardware asset.
///
///
-
///
/// If you specify both AssetIds and Quantity, then the value for Quantity
/// must be equal to the number of asset IDs specified.
///
///
///
public List AssetIds
{
get { return this._assetIds; }
set { this._assetIds = value; }
}
// Check to see if AssetIds property is set
internal bool IsSetAssetIds()
{
return this._assetIds != null && this._assetIds.Count > 0;
}
///
/// Gets and sets the property AutoPlacement.
///
/// Indicates whether the host accepts any untargeted instance launches that match its
/// instance type configuration, or if it only accepts Host tenancy instance launches
/// that specify its unique host ID. For more information, see
/// Understanding auto-placement and affinity in the Amazon EC2 User Guide.
///
///
///
/// Default: on
///
///
public AutoPlacement AutoPlacement
{
get { return this._autoPlacement; }
set { this._autoPlacement = value; }
}
// Check to see if AutoPlacement property is set
internal bool IsSetAutoPlacement()
{
return this._autoPlacement != null;
}
///
/// Gets and sets the property AvailabilityZone.
///
/// The Availability Zone in which to allocate the Dedicated Host.
///
///
[AWSProperty(Required=true)]
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 ClientToken.
///
/// Unique, case-sensitive identifier that you provide to ensure the idempotency of the
/// request. For more information, see Ensuring
/// Idempotency.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property HostMaintenance.
///
/// Indicates whether to enable or disable host maintenance for the Dedicated Host. For
/// more information, see Host
/// maintenance in the Amazon EC2 User Guide.
///
///
public HostMaintenance HostMaintenance
{
get { return this._hostMaintenance; }
set { this._hostMaintenance = value; }
}
// Check to see if HostMaintenance property is set
internal bool IsSetHostMaintenance()
{
return this._hostMaintenance != null;
}
///
/// Gets and sets the property HostRecovery.
///
/// Indicates whether to enable or disable host recovery for the Dedicated Host. Host
/// recovery is disabled by default. For more information, see
/// Host recovery in the Amazon EC2 User Guide.
///
///
///
/// Default: off
///
///
public HostRecovery HostRecovery
{
get { return this._hostRecovery; }
set { this._hostRecovery = value; }
}
// Check to see if HostRecovery property is set
internal bool IsSetHostRecovery()
{
return this._hostRecovery != null;
}
///
/// Gets and sets the property InstanceFamily.
///
/// Specifies the instance family to be supported by the Dedicated Hosts. If you specify
/// an instance family, the Dedicated Hosts support multiple instance types within that
/// instance family.
///
///
///
/// If you want the Dedicated Hosts to support a specific instance type only, omit this
/// parameter and specify InstanceType instead. You cannot specify InstanceFamily
/// and InstanceType in the same request.
///
///
public string InstanceFamily
{
get { return this._instanceFamily; }
set { this._instanceFamily = value; }
}
// Check to see if InstanceFamily property is set
internal bool IsSetInstanceFamily()
{
return this._instanceFamily != null;
}
///
/// Gets and sets the property InstanceType.
///
/// Specifies the instance type to be supported by the Dedicated Hosts. If you specify
/// an instance type, the Dedicated Hosts support instances of the specified instance
/// type only.
///
///
///
/// If you want the Dedicated Hosts to support multiple instance types in a specific instance
/// family, omit this parameter and specify InstanceFamily instead. You cannot
/// specify InstanceType and InstanceFamily in the same request.
///
///
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 OutpostArn.
///
/// The Amazon Resource Name (ARN) of the Amazon Web Services Outpost on which to allocate
/// the Dedicated Host. If you specify OutpostArn, you can optionally specify AssetIds.
///
///
///
/// If you are allocating the Dedicated Host in a Region, omit this parameter.
///
///
public string OutpostArn
{
get { return this._outpostArn; }
set { this._outpostArn = value; }
}
// Check to see if OutpostArn property is set
internal bool IsSetOutpostArn()
{
return this._outpostArn != null;
}
///
/// Gets and sets the property Quantity.
///
/// The number of Dedicated Hosts to allocate to your account with these parameters. If
/// you are allocating the Dedicated Hosts on an Outpost, and you specify AssetIds,
/// you can omit this parameter. In this case, Amazon EC2 allocates a Dedicated Host on
/// each specified hardware asset. If you specify both AssetIds and Quantity,
/// then the value that you specify for Quantity must be equal to the number of
/// asset IDs specified.
///
///
public int Quantity
{
get { return this._quantity.GetValueOrDefault(); }
set { this._quantity = value; }
}
// Check to see if Quantity property is set
internal bool IsSetQuantity()
{
return this._quantity.HasValue;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to apply to the Dedicated Host 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;
}
}
}