/*
* 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 a cluster (job flow).
///
public partial class JobFlowDetail
{
private string _amiVersion;
private string _autoScalingRole;
private List _bootstrapActions = new List();
private JobFlowExecutionStatusDetail _executionStatusDetail;
private JobFlowInstancesDetail _instances;
private string _jobFlowId;
private string _jobFlowRole;
private string _logEncryptionKmsKeyId;
private string _logUri;
private string _name;
private ScaleDownBehavior _scaleDownBehavior;
private string _serviceRole;
private List _steps = new List();
private List _supportedProducts = new List();
private bool? _visibleToAllUsers;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public JobFlowDetail() { }
///
/// Instantiates JobFlowDetail with the parameterized properties
///
/// The job flow identifier.
/// The name of the job flow.
/// Describes the execution status of the job flow.
/// Describes the Amazon EC2 instances of the job flow.
public JobFlowDetail(string jobFlowId, string name, JobFlowExecutionStatusDetail executionStatusDetail, JobFlowInstancesDetail instances)
{
_jobFlowId = jobFlowId;
_name = name;
_executionStatusDetail = executionStatusDetail;
_instances = instances;
}
///
/// Gets and sets the property AmiVersion.
///
/// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases 4.0 and
/// later, ReleaseLabel
is used. To specify a custom AMI, use CustomAmiID
.
///
///
[AWSProperty(Min=0, Max=256)]
public string AmiVersion
{
get { return this._amiVersion; }
set { this._amiVersion = value; }
}
// Check to see if AmiVersion property is set
internal bool IsSetAmiVersion()
{
return this._amiVersion != null;
}
///
/// Gets and sets the property AutoScalingRole.
///
/// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole
.
/// The IAM role provides a way for the automatic scaling feature to get the required
/// permissions it needs to launch and terminate Amazon EC2 instances in an instance group.
///
///
[AWSProperty(Min=0, Max=10280)]
public string AutoScalingRole
{
get { return this._autoScalingRole; }
set { this._autoScalingRole = value; }
}
// Check to see if AutoScalingRole property is set
internal bool IsSetAutoScalingRole()
{
return this._autoScalingRole != null;
}
///
/// Gets and sets the property BootstrapActions.
///
/// A list of the bootstrap actions run by the job flow.
///
///
public List BootstrapActions
{
get { return this._bootstrapActions; }
set { this._bootstrapActions = value; }
}
// Check to see if BootstrapActions property is set
internal bool IsSetBootstrapActions()
{
return this._bootstrapActions != null && this._bootstrapActions.Count > 0;
}
///
/// Gets and sets the property ExecutionStatusDetail.
///
/// Describes the execution status of the job flow.
///
///
[AWSProperty(Required=true)]
public JobFlowExecutionStatusDetail ExecutionStatusDetail
{
get { return this._executionStatusDetail; }
set { this._executionStatusDetail = value; }
}
// Check to see if ExecutionStatusDetail property is set
internal bool IsSetExecutionStatusDetail()
{
return this._executionStatusDetail != null;
}
///
/// Gets and sets the property Instances.
///
/// Describes the Amazon EC2 instances of the job flow.
///
///
[AWSProperty(Required=true)]
public JobFlowInstancesDetail Instances
{
get { return this._instances; }
set { this._instances = value; }
}
// Check to see if Instances property is set
internal bool IsSetInstances()
{
return this._instances != null;
}
///
/// Gets and sets the property JobFlowId.
///
/// The job flow identifier.
///
///
[AWSProperty(Required=true, Min=0, Max=256)]
public string JobFlowId
{
get { return this._jobFlowId; }
set { this._jobFlowId = value; }
}
// Check to see if JobFlowId property is set
internal bool IsSetJobFlowId()
{
return this._jobFlowId != null;
}
///
/// Gets and sets the property JobFlowRole.
///
/// The IAM role that was specified when the job flow was launched. The Amazon EC2 instances
/// of the job flow assume this role.
///
///
[AWSProperty(Min=0, Max=10280)]
public string JobFlowRole
{
get { return this._jobFlowRole; }
set { this._jobFlowRole = value; }
}
// Check to see if JobFlowRole property is set
internal bool IsSetJobFlowRole()
{
return this._jobFlowRole != null;
}
///
/// Gets and sets the property LogEncryptionKmsKeyId.
///
/// The KMS key used for encrypting log files. This attribute is only available with Amazon
/// EMR 5.30.0 and later, excluding 6.0.0.
///
///
[AWSProperty(Min=0, Max=10280)]
public string LogEncryptionKmsKeyId
{
get { return this._logEncryptionKmsKeyId; }
set { this._logEncryptionKmsKeyId = value; }
}
// Check to see if LogEncryptionKmsKeyId property is set
internal bool IsSetLogEncryptionKmsKeyId()
{
return this._logEncryptionKmsKeyId != null;
}
///
/// Gets and sets the property LogUri.
///
/// The location in Amazon S3 where log files for the job are stored.
///
///
[AWSProperty(Min=0, Max=10280)]
public string LogUri
{
get { return this._logUri; }
set { this._logUri = value; }
}
// Check to see if LogUri property is set
internal bool IsSetLogUri()
{
return this._logUri != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the job flow.
///
///
[AWSProperty(Required=true, 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 ScaleDownBehavior.
///
/// The way that individual Amazon EC2 instances terminate when an automatic scale-in
/// activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
/// indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless
/// of when the request to terminate the instance was submitted. This option is only available
/// with Amazon EMR 5.1.0 and later and is the default for clusters created using that
/// version. TERMINATE_AT_TASK_COMPLETION
indicates that Amazon EMR adds
/// nodes to a deny list and drains tasks from nodes before terminating the Amazon EC2
/// instances, regardless of the instance-hour boundary. With either behavior, Amazon
/// EMR removes the least active nodes first and blocks instance termination if it could
/// lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
available only
/// in Amazon EMR releases 4.1.0 and later, and is the default for releases of Amazon
/// EMR earlier than 5.1.0.
///
///
public ScaleDownBehavior ScaleDownBehavior
{
get { return this._scaleDownBehavior; }
set { this._scaleDownBehavior = value; }
}
// Check to see if ScaleDownBehavior property is set
internal bool IsSetScaleDownBehavior()
{
return this._scaleDownBehavior != null;
}
///
/// Gets and sets the property ServiceRole.
///
/// The IAM role that is assumed by the Amazon EMR service to access Amazon Web Services
/// resources on your behalf.
///
///
[AWSProperty(Min=0, Max=10280)]
public string ServiceRole
{
get { return this._serviceRole; }
set { this._serviceRole = value; }
}
// Check to see if ServiceRole property is set
internal bool IsSetServiceRole()
{
return this._serviceRole != null;
}
///
/// Gets and sets the property Steps.
///
/// A list of steps run by the job flow.
///
///
public List Steps
{
get { return this._steps; }
set { this._steps = value; }
}
// Check to see if Steps property is set
internal bool IsSetSteps()
{
return this._steps != null && this._steps.Count > 0;
}
///
/// Gets and sets the property SupportedProducts.
///
/// A list of strings set by third-party software when the job flow is launched. If you
/// are not using third-party software to manage the job flow, this value is empty.
///
///
public List SupportedProducts
{
get { return this._supportedProducts; }
set { this._supportedProducts = value; }
}
// Check to see if SupportedProducts property is set
internal bool IsSetSupportedProducts()
{
return this._supportedProducts != null && this._supportedProducts.Count > 0;
}
///
/// Gets and sets the property VisibleToAllUsers.
///
/// Indicates whether the cluster is visible to IAM principals in the Amazon Web Services
/// account associated with the cluster. When true
, IAM principals in the
/// Amazon Web Services account can perform Amazon EMR cluster actions that their IAM
/// policies allow. When false
, only the IAM principal that created the cluster
/// and the Amazon Web Services account root user can perform Amazon EMR actions, regardless
/// of IAM permissions policies attached to other IAM principals.
///
///
///
/// The default value is true
if a value is not provided when creating a
/// cluster using the Amazon EMR API RunJobFlow command, the CLI create-cluster
/// command, or the Amazon Web Services Management Console.
///
///
public bool VisibleToAllUsers
{
get { return this._visibleToAllUsers.GetValueOrDefault(); }
set { this._visibleToAllUsers = value; }
}
// Check to see if VisibleToAllUsers property is set
internal bool IsSetVisibleToAllUsers()
{
return this._visibleToAllUsers.HasValue;
}
}
}