# Generated by default/object.tt
package Paws::EMR::InstanceFleetConfig;
  use Moose;
  has InstanceFleetType => (is => 'ro', isa => 'Str', required => 1);
  has InstanceTypeConfigs => (is => 'ro', isa => 'ArrayRef[Paws::EMR::InstanceTypeConfig]');
  has LaunchSpecifications => (is => 'ro', isa => 'Paws::EMR::InstanceFleetProvisioningSpecifications');
  has Name => (is => 'ro', isa => 'Str');
  has TargetOnDemandCapacity => (is => 'ro', isa => 'Int');
  has TargetSpotCapacity => (is => 'ro', isa => 'Int');

1;

### main pod documentation begin ###

=head1 NAME

Paws::EMR::InstanceFleetConfig

=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::InstanceFleetConfig object:

  $service_obj->Method(Att1 => { InstanceFleetType => $value, ..., TargetSpotCapacity => $value  });

=head3 Results returned from an API call

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

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

=head1 DESCRIPTION

The configuration that defines an instance fleet.

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

=head1 ATTRIBUTES


=head2 B<REQUIRED> InstanceFleetType => Str

The node type that the instance fleet hosts. Valid values are MASTER,
CORE, and TASK.


=head2 InstanceTypeConfigs => ArrayRef[L<Paws::EMR::InstanceTypeConfig>]

The instance type configurations that define the EC2 instances in the
instance fleet.


=head2 LaunchSpecifications => L<Paws::EMR::InstanceFleetProvisioningSpecifications>

The launch specification for the instance fleet.


=head2 Name => Str

The friendly name of the instance fleet.


=head2 TargetOnDemandCapacity => Int

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 C<WeightedCapacity>. When an On-Demand Instance is
provisioned, the C<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 C<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 C<TargetSpotCapacity>. At least one of
C<TargetSpotCapacity> and C<TargetOnDemandCapacity> should be greater
than 0. For a master instance fleet, only one of C<TargetSpotCapacity>
and C<TargetOnDemandCapacity> can be specified, and its value must be
1.


=head2 TargetSpotCapacity => Int

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 C<WeightedCapacity>. When a Spot Instance is provisioned, the
C<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 C<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 C<TargetSpotCapacity> and
C<TargetOnDemandCapacity> should be greater than 0. For a master
instance fleet, only one of C<TargetSpotCapacity> and
C<TargetOnDemandCapacity> can be specified, and its value must be 1.



=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