Class Cluster

java.lang.Object
software.amazon.awssdk.services.emr.model.Cluster
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Cluster.Builder,Cluster>

@Generated("software.amazon.awssdk:codegen") public final class Cluster extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Cluster.Builder,Cluster>

The detailed description of the cluster.

See Also:
  • Method Details

    • id

      public final String id()

      The unique identifier for the cluster.

      Returns:
      The unique identifier for the cluster.
    • name

      public final String name()

      The name of the cluster. This parameter can't contain the characters <, >, $, |, or ` (backtick).

      Returns:
      The name of the cluster. This parameter can't contain the characters <, >, $, |, or ` (backtick).
    • status

      public final ClusterStatus status()

      The current status details about the cluster.

      Returns:
      The current status details about the cluster.
    • ec2InstanceAttributes

      public final Ec2InstanceAttributes ec2InstanceAttributes()

      Provides information about the Amazon EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.

      Returns:
      Provides information about the Amazon EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.
    • instanceCollectionType

      public final InstanceCollectionType instanceCollectionType()

      The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

      The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

      If the service returns an enum value that is not available in the current SDK version, instanceCollectionType will return InstanceCollectionType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from instanceCollectionTypeAsString().

      Returns:

      The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

      The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

      See Also:
    • instanceCollectionTypeAsString

      public final String instanceCollectionTypeAsString()

      The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

      The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

      If the service returns an enum value that is not available in the current SDK version, instanceCollectionType will return InstanceCollectionType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from instanceCollectionTypeAsString().

      Returns:

      The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions.

      The instance group configuration of the cluster. A value of INSTANCE_GROUP indicates a uniform instance group configuration. A value of INSTANCE_FLEET indicates an instance fleets configuration.

      See Also:
    • logUri

      public final String logUri()

      The path to the Amazon S3 location where logs for this cluster are stored.

      Returns:
      The path to the Amazon S3 location where logs for this cluster are stored.
    • logEncryptionKmsKeyId

      public final String logEncryptionKmsKeyId()

      The KMS key used for encrypting log files. This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR 6.0.0.

      Returns:
      The KMS key used for encrypting log files. This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR 6.0.0.
    • requestedAmiVersion

      public final String requestedAmiVersion()

      The AMI version requested for this cluster.

      Returns:
      The AMI version requested for this cluster.
    • runningAmiVersion

      public final String runningAmiVersion()

      The AMI version running on this cluster.

      Returns:
      The AMI version running on this cluster.
    • releaseLabel

      public final String releaseLabel()

      The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. For more information about Amazon EMR release versions and included application versions and features, see https://docs.aws.amazon. com/emr/latest/ReleaseGuide/. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use AmiVersion.

      Returns:
      The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Release labels are in the form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. For more information about Amazon EMR release versions and included application versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/. The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use AmiVersion.
    • autoTerminate

      public final Boolean autoTerminate()

      Specifies whether the cluster should terminate after completing all steps.

      Returns:
      Specifies whether the cluster should terminate after completing all steps.
    • terminationProtected

      public final Boolean terminationProtected()

      Indicates whether Amazon EMR will lock the cluster to prevent the Amazon EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.

      Returns:
      Indicates whether Amazon EMR will lock the cluster to prevent the Amazon EC2 instances from being terminated by an API call or user intervention, or in the event of a cluster error.
    • unhealthyNodeReplacement

      public final Boolean unhealthyNodeReplacement()

      Indicates whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster.

      Returns:
      Indicates whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster.
    • visibleToAllUsers

      public final Boolean 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 on the cluster 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.

      Returns:
      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 on the cluster 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.

    • hasApplications

      public final boolean hasApplications()
      For responses, this returns true if the service returned a value for the Applications property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • applications

      public final List<Application> applications()

      The applications installed on this cluster.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasApplications() method.

      Returns:
      The applications installed on this cluster.
    • hasTags

      public final boolean hasTags()
      For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • tags

      public final List<Tag> tags()

      A list of tags associated with a cluster.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTags() method.

      Returns:
      A list of tags associated with a cluster.
    • serviceRole

      public final String serviceRole()

      The IAM role that Amazon EMR assumes in order to access Amazon Web Services resources on your behalf.

      Returns:
      The IAM role that Amazon EMR assumes in order to access Amazon Web Services resources on your behalf.
    • normalizedInstanceHours

      public final Integer normalizedInstanceHours()

      An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.

      Returns:
      An approximation of the cost of the cluster, represented in m1.small/hours. This value is incremented one time for every hour an m1.small instance runs. Larger instances are weighted more, so an Amazon EC2 instance that is roughly four times more expensive would result in the normalized instance hours being incremented by four. This result is only an approximation and does not reflect the actual billing rate.
    • masterPublicDnsName

      public final String masterPublicDnsName()

      The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.

      Returns:
      The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name. On a public subnet, this is the public DNS name.
    • hasConfigurations

      public final boolean hasConfigurations()
      For responses, this returns true if the service returned a value for the Configurations property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • configurations

      public final List<Configuration> configurations()

      Applies only to Amazon EMR releases 4.x and later. The list of configurations that are supplied to the Amazon EMR cluster.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasConfigurations() method.

      Returns:
      Applies only to Amazon EMR releases 4.x and later. The list of configurations that are supplied to the Amazon EMR cluster.
    • securityConfiguration

      public final String securityConfiguration()

      The name of the security configuration applied to the cluster.

      Returns:
      The name of the security configuration applied to the cluster.
    • autoScalingRole

      public final String autoScalingRole()

      An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an instance group.

      Returns:
      An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an instance group.
    • scaleDownBehavior

      public final ScaleDownBehavior 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 is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.

      If the service returns an enum value that is not available in the current SDK version, scaleDownBehavior will return ScaleDownBehavior.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from scaleDownBehaviorAsString().

      Returns:
      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 is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
      See Also:
    • scaleDownBehaviorAsString

      public final String scaleDownBehaviorAsString()

      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 is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.

      If the service returns an enum value that is not available in the current SDK version, scaleDownBehavior will return ScaleDownBehavior.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from scaleDownBehaviorAsString().

      Returns:
      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 is available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
      See Also:
    • customAmiId

      public final String customAmiId()

      Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.

      Returns:
      Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
    • ebsRootVolumeSize

      public final Integer ebsRootVolumeSize()

      The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and later.

      Returns:
      The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 4.x and later.
    • repoUpgradeOnBoot

      public final RepoUpgradeOnBoot repoUpgradeOnBoot()

      Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.

      If the service returns an enum value that is not available in the current SDK version, repoUpgradeOnBoot will return RepoUpgradeOnBoot.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from repoUpgradeOnBootAsString().

      Returns:
      Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.
      See Also:
    • repoUpgradeOnBootAsString

      public final String repoUpgradeOnBootAsString()

      Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.

      If the service returns an enum value that is not available in the current SDK version, repoUpgradeOnBoot will return RepoUpgradeOnBoot.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from repoUpgradeOnBootAsString().

      Returns:
      Applies only when CustomAmiID is used. Specifies the type of updates that the Amazon Linux AMI package repositories apply when an instance boots using the AMI.
      See Also:
    • kerberosAttributes

      public final KerberosAttributes kerberosAttributes()

      Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the Amazon EMR Management Guide.

      Returns:
      Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. For more information see Use Kerberos Authentication in the Amazon EMR Management Guide.
    • clusterArn

      public final String clusterArn()

      The Amazon Resource Name of the cluster.

      Returns:
      The Amazon Resource Name of the cluster.
    • outpostArn

      public final String outpostArn()

      The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.

      Returns:
      The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
    • stepConcurrencyLevel

      public final Integer stepConcurrencyLevel()

      Specifies the number of steps that can be executed concurrently.

      Returns:
      Specifies the number of steps that can be executed concurrently.
    • hasPlacementGroups

      public final boolean hasPlacementGroups()
      For responses, this returns true if the service returned a value for the PlacementGroups property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • placementGroups

      public final List<PlacementGroupConfig> placementGroups()

      Placement group configured for an Amazon EMR cluster.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasPlacementGroups() method.

      Returns:
      Placement group configured for an Amazon EMR cluster.
    • osReleaseLabel

      public final String osReleaseLabel()

      The Amazon Linux release specified in a cluster launch RunJobFlow request. If no Amazon Linux release was specified, the default Amazon Linux release is shown in the response.

      Returns:
      The Amazon Linux release specified in a cluster launch RunJobFlow request. If no Amazon Linux release was specified, the default Amazon Linux release is shown in the response.
    • ebsRootVolumeIops

      public final Integer ebsRootVolumeIops()

      The IOPS, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.

      Returns:
      The IOPS, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.
    • ebsRootVolumeThroughput

      public final Integer ebsRootVolumeThroughput()

      The throughput, in MiB/s, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.

      Returns:
      The throughput, in MiB/s, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon EC2 instance. Available in Amazon EMR releases 6.15.0 and later.
    • toBuilder

      public Cluster.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<Cluster.Builder,Cluster>
      Returns:
      a builder for type T
    • builder

      public static Cluster.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Cluster.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.