# Generated by default/object.tt
package Paws::EMR::Cluster;
  use Moose;
  has Applications => (is => 'ro', isa => 'ArrayRef[Paws::EMR::Application]');
  has AutoScalingRole => (is => 'ro', isa => 'Str');
  has AutoTerminate => (is => 'ro', isa => 'Bool');
  has ClusterArn => (is => 'ro', isa => 'Str');
  has Configurations => (is => 'ro', isa => 'ArrayRef[Paws::EMR::Configuration]');
  has CustomAmiId => (is => 'ro', isa => 'Str');
  has EbsRootVolumeSize => (is => 'ro', isa => 'Int');
  has Ec2InstanceAttributes => (is => 'ro', isa => 'Paws::EMR::Ec2InstanceAttributes');
  has Id => (is => 'ro', isa => 'Str');
  has InstanceCollectionType => (is => 'ro', isa => 'Str');
  has KerberosAttributes => (is => 'ro', isa => 'Paws::EMR::KerberosAttributes');
  has LogEncryptionKmsKeyId => (is => 'ro', isa => 'Str');
  has LogUri => (is => 'ro', isa => 'Str');
  has MasterPublicDnsName => (is => 'ro', isa => 'Str');
  has Name => (is => 'ro', isa => 'Str');
  has NormalizedInstanceHours => (is => 'ro', isa => 'Int');
  has OutpostArn => (is => 'ro', isa => 'Str');
  has PlacementGroups => (is => 'ro', isa => 'ArrayRef[Paws::EMR::PlacementGroupConfig]');
  has ReleaseLabel => (is => 'ro', isa => 'Str');
  has RepoUpgradeOnBoot => (is => 'ro', isa => 'Str');
  has RequestedAmiVersion => (is => 'ro', isa => 'Str');
  has RunningAmiVersion => (is => 'ro', isa => 'Str');
  has ScaleDownBehavior => (is => 'ro', isa => 'Str');
  has SecurityConfiguration => (is => 'ro', isa => 'Str');
  has ServiceRole => (is => 'ro', isa => 'Str');
  has Status => (is => 'ro', isa => 'Paws::EMR::ClusterStatus');
  has StepConcurrencyLevel => (is => 'ro', isa => 'Int');
  has Tags => (is => 'ro', isa => 'ArrayRef[Paws::EMR::Tag]');
  has TerminationProtected => (is => 'ro', isa => 'Bool');
  has VisibleToAllUsers => (is => 'ro', isa => 'Bool');

1;

### main pod documentation begin ###

=head1 NAME

Paws::EMR::Cluster

=head1 USAGE

This class represents one of two things:

=head3 Arguments in a call to a service

Use the attributes of this class as arguments to methods. You shouldn't make instances of this class. 
Each attribute should be used as a named argument in the calls that expect this type of object.

As an example, if Att1 is expected to be a Paws::EMR::Cluster object:

  $service_obj->Method(Att1 => { Applications => $value, ..., VisibleToAllUsers => $value  });

=head3 Results returned from an API call

Use accessors for each attribute. If Att1 is expected to be an Paws::EMR::Cluster object:

  $result = $service_obj->Method(...);
  $result->Att1->Applications

=head1 DESCRIPTION

The detailed description of the cluster.

=head1 ATTRIBUTES


=head2 Applications => ArrayRef[L<Paws::EMR::Application>]

The applications installed on this cluster.


=head2 AutoScalingRole => Str

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


=head2 AutoTerminate => Bool

Specifies whether the cluster should terminate after completing all
steps.


=head2 ClusterArn => Str

The Amazon Resource Name of the cluster.


=head2 Configurations => ArrayRef[L<Paws::EMR::Configuration>]

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


=head2 CustomAmiId => Str

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


=head2 EbsRootVolumeSize => Int

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


=head2 Ec2InstanceAttributes => L<Paws::EMR::Ec2InstanceAttributes>

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


=head2 Id => Str

The unique identifier for the cluster.


=head2 InstanceCollectionType => Str

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

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


=head2 KerberosAttributes => L<Paws::EMR::KerberosAttributes>

Attributes for Kerberos configuration when Kerberos authentication is
enabled using a security configuration. For more information see Use
Kerberos Authentication
(https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
in the I<Amazon EMR Management Guide>.


=head2 LogEncryptionKmsKeyId => Str

The AWS KMS customer master key (CMK) used for encrypting log files.
This attribute is only available with EMR version 5.30.0 and later,
excluding EMR 6.0.0.


=head2 LogUri => Str

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


=head2 MasterPublicDnsName => Str

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.


=head2 Name => Str

The name of the cluster.


=head2 NormalizedInstanceHours => Int

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 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.


=head2 OutpostArn => Str

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


=head2 PlacementGroups => ArrayRef[L<Paws::EMR::PlacementGroupConfig>]

Placement group configured for an Amazon EMR cluster.


=head2 ReleaseLabel => Str

The Amazon EMR release label, which determines the version of
open-source application packages installed on the cluster. Release
labels are in the form C<emr-x.x.x>, where x.x.x is an Amazon EMR
release version such as C<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/
(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 C<AmiVersion>.


=head2 RepoUpgradeOnBoot => Str

Applies only when C<CustomAmiID> is used. Specifies the type of updates
that are applied from the Amazon Linux AMI package repositories when an
instance boots using the AMI.


=head2 RequestedAmiVersion => Str

The AMI version requested for this cluster.


=head2 RunningAmiVersion => Str

The AMI version running on this cluster.


=head2 ScaleDownBehavior => Str

The way that individual Amazon EC2 instances terminate when an
automatic scale-in activity occurs or an instance group is resized.
C<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. C<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. C<TERMINATE_AT_TASK_COMPLETION> is available only in Amazon
EMR version 4.1.0 and later, and is the default for versions of Amazon
EMR earlier than 5.1.0.


=head2 SecurityConfiguration => Str

The name of the security configuration applied to the cluster.


=head2 ServiceRole => Str

The IAM role that will be assumed by the Amazon EMR service to access
AWS resources on your behalf.


=head2 Status => L<Paws::EMR::ClusterStatus>

The current status details about the cluster.


=head2 StepConcurrencyLevel => Int

Specifies the number of steps that can be executed concurrently.


=head2 Tags => ArrayRef[L<Paws::EMR::Tag>]

A list of tags associated with a cluster.


=head2 TerminationProtected => Bool

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


=head2 VisibleToAllUsers => Bool

Indicates whether the cluster is visible to all IAM users of the AWS
account associated with the cluster. The default value, C<true>,
indicates that all IAM users in the AWS account can perform cluster
actions if they have the proper IAM policy permissions. If this value
is C<false>, only the IAM user that created the cluster can perform
actions. This value can be changed on a running cluster by using the
SetVisibleToAllUsers action. You can override the default value of
C<true> when you create a cluster by using the C<VisibleToAllUsers>
parameter of the C<RunJobFlow> action.



=head1 SEE ALSO

This class forms part of L<Paws>, describing an object used in L<Paws::EMR>

=head1 BUGS and CONTRIBUTIONS

The source code is located here: L<https://github.com/pplu/aws-sdk-perl>

Please report bugs to: L<https://github.com/pplu/aws-sdk-perl/issues>

=cut