/* * 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 elasticmapreduce-2009-03-31.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.ElasticMapReduce.Model { /// /// The configuration that defines an instance fleet. /// /// /// /// The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and /// later, excluding 5.0.x versions. /// /// /// public partial class InstanceFleetConfig { private InstanceFleetType _instanceFleetType; private List _instanceTypeConfigs = new List(); private InstanceFleetProvisioningSpecifications _launchSpecifications; private string _name; private InstanceFleetResizingSpecifications _resizeSpecifications; private int? _targetOnDemandCapacity; private int? _targetSpotCapacity; /// /// Gets and sets the property InstanceFleetType. /// /// The node type that the instance fleet hosts. Valid values are MASTER, CORE, and TASK. /// /// [AWSProperty(Required=true)] public InstanceFleetType InstanceFleetType { get { return this._instanceFleetType; } set { this._instanceFleetType = value; } } // Check to see if InstanceFleetType property is set internal bool IsSetInstanceFleetType() { return this._instanceFleetType != null; } /// /// Gets and sets the property InstanceTypeConfigs. /// /// The instance type configurations that define the Amazon EC2 instances in the instance /// fleet. /// /// public List InstanceTypeConfigs { get { return this._instanceTypeConfigs; } set { this._instanceTypeConfigs = value; } } // Check to see if InstanceTypeConfigs property is set internal bool IsSetInstanceTypeConfigs() { return this._instanceTypeConfigs != null && this._instanceTypeConfigs.Count > 0; } /// /// Gets and sets the property LaunchSpecifications. /// /// The launch specification for the instance fleet. /// /// public InstanceFleetProvisioningSpecifications LaunchSpecifications { get { return this._launchSpecifications; } set { this._launchSpecifications = value; } } // Check to see if LaunchSpecifications property is set internal bool IsSetLaunchSpecifications() { return this._launchSpecifications != null; } /// /// Gets and sets the property Name. /// /// The friendly name of the instance fleet. /// /// [AWSProperty(Min=0, Max=256)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property ResizeSpecifications. /// /// The resize specification for the instance fleet. /// /// public InstanceFleetResizingSpecifications ResizeSpecifications { get { return this._resizeSpecifications; } set { this._resizeSpecifications = value; } } // Check to see if ResizeSpecifications property is set internal bool IsSetResizeSpecifications() { return this._resizeSpecifications != null; } /// /// Gets and sets the property TargetOnDemandCapacity. /// /// The target capacity of On-Demand units for the instance fleet, which determines how /// many On-Demand Instances to provision. When the instance fleet launches, Amazon EMR /// tries to provision On-Demand Instances as specified by InstanceTypeConfig. /// Each instance configuration has a specified WeightedCapacity. When an /// On-Demand Instance is provisioned, the WeightedCapacity units count toward /// the target capacity. Amazon EMR provisions instances until the target capacity is /// totally fulfilled, even if this results in an overage. For example, if there are 2 /// units remaining to fulfill capacity, and Amazon EMR can only provision an instance /// with a WeightedCapacity of 5 units, the instance is provisioned, and /// the target capacity is exceeded by 3 units. /// /// /// /// If not specified or set to 0, only Spot Instances are provisioned for the instance /// fleet using TargetSpotCapacity. At least one of TargetSpotCapacity /// and TargetOnDemandCapacity should be greater than 0. For a master instance /// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity /// can be specified, and its value must be 1. /// /// /// [AWSProperty(Min=0)] public int TargetOnDemandCapacity { get { return this._targetOnDemandCapacity.GetValueOrDefault(); } set { this._targetOnDemandCapacity = value; } } // Check to see if TargetOnDemandCapacity property is set internal bool IsSetTargetOnDemandCapacity() { return this._targetOnDemandCapacity.HasValue; } /// /// Gets and sets the property TargetSpotCapacity. /// /// The target capacity of Spot units for the instance fleet, which determines how many /// Spot Instances to provision. When the instance fleet launches, Amazon EMR tries to /// provision Spot Instances as specified by InstanceTypeConfig. Each instance /// configuration has a specified WeightedCapacity. When a Spot Instance /// is provisioned, the WeightedCapacity units count toward the target capacity. /// Amazon EMR provisions instances until the target capacity is totally fulfilled, even /// if this results in an overage. For example, if there are 2 units remaining to fulfill /// capacity, and Amazon EMR can only provision an instance with a WeightedCapacity /// of 5 units, the instance is provisioned, and the target capacity is exceeded by 3 /// units. /// /// /// /// If not specified or set to 0, only On-Demand Instances are provisioned for the instance /// fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity /// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity /// and TargetOnDemandCapacity can be specified, and its value must be 1. /// /// /// [AWSProperty(Min=0)] public int TargetSpotCapacity { get { return this._targetSpotCapacity.GetValueOrDefault(); } set { this._targetSpotCapacity = value; } } // Check to see if TargetSpotCapacity property is set internal bool IsSetTargetSpotCapacity() { return this._targetSpotCapacity.HasValue; } } }