# SpotProvisioningSpecificationProperty

The launch specification for Spot instances in the instance fleet, which determines the defined duration and provisioning timeout behavior.

- Source: [`aws-stepfunctions-tasks/lib/emr/emr-create-cluster.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.ts#L871)
- Type last changed: v2.118.0 · 3 Jan 2024

## Example

```ts
new tasks.EmrCreateCluster(this, 'OnDemandSpecification', {
  instances: {
    instanceFleets: [{
      instanceFleetType: tasks.EmrCreateCluster.InstanceRoleType.MASTER,
      launchSpecifications: {
        onDemandSpecification: {
          allocationStrategy: tasks.EmrCreateCluster.OnDemandAllocationStrategy.LOWEST_PRICE,
        },
      },
    }],
  },
  name: 'OnDemandCluster',
  integrationPattern: sfn.IntegrationPattern.RUN_JOB,
});

new tasks.EmrCreateCluster(this, 'SpotSpecification', {
  instances: {
    instanceFleets: [{
      instanceFleetType: tasks.EmrCreateCluster.InstanceRoleType.MASTER,
      launchSpecifications: {
        spotSpecification: {
          allocationStrategy: tasks.EmrCreateCluster.SpotAllocationStrategy.CAPACITY_OPTIMIZED,
          timeoutAction: tasks.EmrCreateCluster.SpotTimeoutAction.TERMINATE_CLUSTER,
          timeout: Duration.minutes(5),
        },
      },
    }],
  },
  name: 'SpotCluster',
  integrationPattern: sfn.IntegrationPattern.RUN_JOB,
});
```

## Properties

- `allocationStrategy`: [EmrCreateCluster.SpotAllocationStrategy](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.SpotAllocationStrategy.html) — Specifies the strategy to use in launching Spot Instance fleets.

  **Default:** No allocation strategy, i.e. spot instance type will be chosen based on current price only

- `blockDurationMinutes`: number — - Spot Instances with a defined duration (also known as Spot blocks) are no longer available to new customers from July 1, 2021. For customers who have previously used the feature, we will continue to support Spot Instances with a defined duration until December 31, 2022.

  **Default:** No blockDurationMinutes

- `timeout`: [Duration](/cdk/api/v2/docs/aws-cdk-lib.Duration.html) — The spot provisioning timeout period in minutes.

  **Default:** The value in `timeoutDurationMinutes` is used

  The value must be between 5 and 1440 minutes.

  You must specify one of `timeout` and `timeoutDurationMinutes`.

- `timeoutAction`: [EmrCreateCluster.SpotTimeoutAction](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.SpotTimeoutAction.html) (required) — The action to take when TargetSpotCapacity has not been fulfilled when the TimeoutDurationMinutes has expired.

- `timeoutDurationMinutes`: number — - Use `timeout`.

  **Default:** The value in `timeout` is used

  The value must be between 5 and 1440 minutes.

  You must specify one of `timeout` and `timeoutDurationMinutes`.
