/* * 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 { /// /// A description of the Amazon EC2 instance on which the cluster (job flow) runs. A valid /// JobFlowInstancesConfig must contain either InstanceGroups or InstanceFleets. They /// cannot be used together. You may also have MasterInstanceType, SlaveInstanceType, /// and InstanceCount (all three must be present), but we don't recommend this configuration. /// public partial class JobFlowInstancesConfig { private List _additionalMasterSecurityGroups = new List(); private List _additionalSlaveSecurityGroups = new List(); private string _ec2KeyName; private string _ec2SubnetId; private List _ec2SubnetIds = new List(); private string _emrManagedMasterSecurityGroup; private string _emrManagedSlaveSecurityGroup; private string _hadoopVersion; private int? _instanceCount; private List _instanceFleets = new List(); private List _instanceGroups = new List(); private bool? _keepJobFlowAliveWhenNoSteps; private string _masterInstanceType; private PlacementType _placement; private string _serviceAccessSecurityGroup; private string _slaveInstanceType; private bool? _terminationProtected; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public JobFlowInstancesConfig() { } /// /// Gets and sets the property AdditionalMasterSecurityGroups. /// /// A list of additional Amazon EC2 security group IDs for the master node. /// /// public List AdditionalMasterSecurityGroups { get { return this._additionalMasterSecurityGroups; } set { this._additionalMasterSecurityGroups = value; } } // Check to see if AdditionalMasterSecurityGroups property is set internal bool IsSetAdditionalMasterSecurityGroups() { return this._additionalMasterSecurityGroups != null && this._additionalMasterSecurityGroups.Count > 0; } /// /// Gets and sets the property AdditionalSlaveSecurityGroups. /// /// A list of additional Amazon EC2 security group IDs for the core and task nodes. /// /// public List AdditionalSlaveSecurityGroups { get { return this._additionalSlaveSecurityGroups; } set { this._additionalSlaveSecurityGroups = value; } } // Check to see if AdditionalSlaveSecurityGroups property is set internal bool IsSetAdditionalSlaveSecurityGroups() { return this._additionalSlaveSecurityGroups != null && this._additionalSlaveSecurityGroups.Count > 0; } /// /// Gets and sets the property Ec2KeyName. /// /// The name of the Amazon EC2 key pair that can be used to connect to the master node /// using SSH as the user called "hadoop." /// /// [AWSProperty(Min=0, Max=256)] public string Ec2KeyName { get { return this._ec2KeyName; } set { this._ec2KeyName = value; } } // Check to see if Ec2KeyName property is set internal bool IsSetEc2KeyName() { return this._ec2KeyName != null; } /// /// Gets and sets the property Ec2SubnetId. /// /// Applies to clusters that use the uniform instance group configuration. To launch the /// cluster in Amazon Virtual Private Cloud (Amazon VPC), set this parameter to the identifier /// of the Amazon VPC subnet where you want the cluster to launch. If you do not specify /// this value and your account supports EC2-Classic, the cluster launches in EC2-Classic. /// /// [AWSProperty(Min=0, Max=256)] public string Ec2SubnetId { get { return this._ec2SubnetId; } set { this._ec2SubnetId = value; } } // Check to see if Ec2SubnetId property is set internal bool IsSetEc2SubnetId() { return this._ec2SubnetId != null; } /// /// Gets and sets the property Ec2SubnetIds. /// /// Applies to clusters that use the instance fleet configuration. When multiple Amazon /// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances in /// the optimal subnet. /// /// /// /// The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and /// later, excluding 5.0.x versions. /// /// /// public List Ec2SubnetIds { get { return this._ec2SubnetIds; } set { this._ec2SubnetIds = value; } } // Check to see if Ec2SubnetIds property is set internal bool IsSetEc2SubnetIds() { return this._ec2SubnetIds != null && this._ec2SubnetIds.Count > 0; } /// /// Gets and sets the property EmrManagedMasterSecurityGroup. /// /// The identifier of the Amazon EC2 security group for the master node. If you specify /// EmrManagedMasterSecurityGroup, you must also specify EmrManagedSlaveSecurityGroup. /// /// [AWSProperty(Min=0, Max=256)] public string EmrManagedMasterSecurityGroup { get { return this._emrManagedMasterSecurityGroup; } set { this._emrManagedMasterSecurityGroup = value; } } // Check to see if EmrManagedMasterSecurityGroup property is set internal bool IsSetEmrManagedMasterSecurityGroup() { return this._emrManagedMasterSecurityGroup != null; } /// /// Gets and sets the property EmrManagedSlaveSecurityGroup. /// /// The identifier of the Amazon EC2 security group for the core and task nodes. If you /// specify EmrManagedSlaveSecurityGroup, you must also specify EmrManagedMasterSecurityGroup. /// /// [AWSProperty(Min=0, Max=256)] public string EmrManagedSlaveSecurityGroup { get { return this._emrManagedSlaveSecurityGroup; } set { this._emrManagedSlaveSecurityGroup = value; } } // Check to see if EmrManagedSlaveSecurityGroup property is set internal bool IsSetEmrManagedSlaveSecurityGroup() { return this._emrManagedSlaveSecurityGroup != null; } /// /// Gets and sets the property HadoopVersion. /// /// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop version for /// the cluster. Valid inputs are "0.18" (no longer maintained), "0.20" (no longer maintained), /// "0.20.205" (no longer maintained), "1.0.3", "2.2.0", or "2.4.0". If you do not set /// this value, the default of 0.18 is used, unless the AmiVersion parameter /// is set in the RunJobFlow call, in which case the default version of Hadoop for that /// AMI version is used. /// /// [AWSProperty(Min=0, Max=256)] public string HadoopVersion { get { return this._hadoopVersion; } set { this._hadoopVersion = value; } } // Check to see if HadoopVersion property is set internal bool IsSetHadoopVersion() { return this._hadoopVersion != null; } /// /// Gets and sets the property InstanceCount. /// /// The number of Amazon EC2 instances in the cluster. /// /// public int InstanceCount { get { return this._instanceCount.GetValueOrDefault(); } set { this._instanceCount = value; } } // Check to see if InstanceCount property is set internal bool IsSetInstanceCount() { return this._instanceCount.HasValue; } /// /// Gets and sets the property InstanceFleets. /// /// The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and /// later, excluding 5.0.x versions. /// /// /// /// Describes the Amazon EC2 instances and instance configurations for clusters that use /// the instance fleet configuration. /// /// public List InstanceFleets { get { return this._instanceFleets; } set { this._instanceFleets = value; } } // Check to see if InstanceFleets property is set internal bool IsSetInstanceFleets() { return this._instanceFleets != null && this._instanceFleets.Count > 0; } /// /// Gets and sets the property InstanceGroups. /// /// Configuration for the instance groups in a cluster. /// /// public List InstanceGroups { get { return this._instanceGroups; } set { this._instanceGroups = value; } } // Check to see if InstanceGroups property is set internal bool IsSetInstanceGroups() { return this._instanceGroups != null && this._instanceGroups.Count > 0; } /// /// Gets and sets the property KeepJobFlowAliveWhenNoSteps. /// /// Specifies whether the cluster should remain available after completing all steps. /// Defaults to true. For more information about configuring cluster termination, /// see Control /// Cluster Termination in the EMR Management Guide. /// /// public bool KeepJobFlowAliveWhenNoSteps { get { return this._keepJobFlowAliveWhenNoSteps.GetValueOrDefault(); } set { this._keepJobFlowAliveWhenNoSteps = value; } } // Check to see if KeepJobFlowAliveWhenNoSteps property is set internal bool IsSetKeepJobFlowAliveWhenNoSteps() { return this._keepJobFlowAliveWhenNoSteps.HasValue; } /// /// Gets and sets the property MasterInstanceType. /// /// The Amazon EC2 instance type of the master node. /// /// [AWSProperty(Min=1, Max=256)] public string MasterInstanceType { get { return this._masterInstanceType; } set { this._masterInstanceType = value; } } // Check to see if MasterInstanceType property is set internal bool IsSetMasterInstanceType() { return this._masterInstanceType != null; } /// /// Gets and sets the property Placement. /// /// The Availability Zone in which the cluster runs. /// /// public PlacementType 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 ServiceAccessSecurityGroup. /// /// The identifier of the Amazon EC2 security group for the Amazon EMR service to access /// clusters in VPC private subnets. /// /// [AWSProperty(Min=0, Max=256)] public string ServiceAccessSecurityGroup { get { return this._serviceAccessSecurityGroup; } set { this._serviceAccessSecurityGroup = value; } } // Check to see if ServiceAccessSecurityGroup property is set internal bool IsSetServiceAccessSecurityGroup() { return this._serviceAccessSecurityGroup != null; } /// /// Gets and sets the property SlaveInstanceType. /// /// The Amazon EC2 instance type of the core and task nodes. /// /// [AWSProperty(Min=1, Max=256)] public string SlaveInstanceType { get { return this._slaveInstanceType; } set { this._slaveInstanceType = value; } } // Check to see if SlaveInstanceType property is set internal bool IsSetSlaveInstanceType() { return this._slaveInstanceType != null; } /// /// Gets and sets the property TerminationProtected. /// /// Specifies whether to lock the cluster to prevent the Amazon EC2 instances from being /// terminated by API call, user intervention, or in the event of a job-flow error. /// /// public bool TerminationProtected { get { return this._terminationProtected.GetValueOrDefault(); } set { this._terminationProtected = value; } } // Check to see if TerminationProtected property is set internal bool IsSetTerminationProtected() { return this._terminationProtected.HasValue; } } }