UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

149 lines (148 loc) 5.5 kB
import { Construct } from 'constructs'; import { EmrCreateCluster } from './emr-create-cluster'; import * as iam from '../../../aws-iam'; import * as sfn from '../../../aws-stepfunctions'; import { Duration } from '../../../core'; interface EmrModifyInstanceGroupByNameOptions { /** * The ClusterId to update. */ readonly clusterId: string; /** * The InstanceGroupName to update. */ readonly instanceGroupName: string; /** * The JSON that you want to provide to your ModifyInstanceGroup call as input. * * This uses the same syntax as the ModifyInstanceGroups API. * * @see https://docs.aws.amazon.com/emr/latest/APIReference/API_ModifyInstanceGroups.html */ readonly instanceGroup: EmrModifyInstanceGroupByName.InstanceGroupModifyConfigProperty; } /** * Properties for EmrModifyInstanceGroupByName using JSONPath * */ export interface EmrModifyInstanceGroupByNameJsonPathProps extends sfn.TaskStateJsonPathBaseProps, EmrModifyInstanceGroupByNameOptions { } /** * Properties for EmrModifyInstanceGroupByName using JSONata * */ export interface EmrModifyInstanceGroupByNameJsonataProps extends sfn.TaskStateJsonataBaseProps, EmrModifyInstanceGroupByNameOptions { } /** * Properties for EmrModifyInstanceGroupByName * */ export interface EmrModifyInstanceGroupByNameProps extends sfn.TaskStateBaseProps, EmrModifyInstanceGroupByNameOptions { } /** * A Step Functions Task to to modify an InstanceGroup on an EMR Cluster. * */ export declare class EmrModifyInstanceGroupByName extends sfn.TaskStateBase { private readonly props; /** * A Step Functions Task using JSONPath to modify an InstanceGroup on an EMR Cluster. * */ static jsonPath(scope: Construct, id: string, props: EmrModifyInstanceGroupByNameJsonPathProps): EmrModifyInstanceGroupByName; /** * A Step Functions Task using JSONata to modify an InstanceGroup on an EMR Cluster. * */ static jsonata(scope: Construct, id: string, props: EmrModifyInstanceGroupByNameJsonataProps): EmrModifyInstanceGroupByName; protected readonly taskPolicies?: iam.PolicyStatement[]; protected readonly taskMetrics?: sfn.TaskMetricsConfig; constructor(scope: Construct, id: string, props: EmrModifyInstanceGroupByNameProps); /** * @internal */ protected _renderTask(topLevelQueryLanguage?: sfn.QueryLanguage): any; } export declare namespace EmrModifyInstanceGroupByName { /** * Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group. * * @see https://docs.aws.amazon.com/emr/latest/APIReference/API_InstanceResizePolicy.html * */ interface InstanceResizePolicyProperty { /** * Specific list of instances to be protected when shrinking an instance group. * * @default - No instances will be protected when shrinking an instance group */ readonly instancesToProtect?: string[]; /** * Specific list of instances to be terminated when shrinking an instance group. * * @default - No instances will be terminated when shrinking an instance group. */ readonly instancesToTerminate?: string[]; /** * Decommissioning timeout override for the specific list of instances to be terminated. * * @default cdk.Duration.seconds */ readonly instanceTerminationTimeout?: Duration; } /** * Policy for customizing shrink operations. Allows configuration of decommissioning timeout and targeted instance shrinking. * * @see https://docs.aws.amazon.com/emr/latest/APIReference/API_ShrinkPolicy.html * */ interface ShrinkPolicyProperty { /** * The desired timeout for decommissioning an instance. Overrides the default YARN decommissioning timeout. * * @default - EMR selected default */ readonly decommissionTimeout?: Duration; /** * Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group. * * @default - None */ readonly instanceResizePolicy?: InstanceResizePolicyProperty; } /** * Modify the size or configurations of an instance group. * * @see https://docs.aws.amazon.com/emr/latest/APIReference/API_InstanceGroupModifyConfig.html * */ interface InstanceGroupModifyConfigProperty { /** * A list of new or modified configurations to apply for an instance group. * * @default - None */ readonly configurations?: EmrCreateCluster.ConfigurationProperty[]; /** * The EC2 InstanceIds to terminate. After you terminate the instances, the instance group will not return to its original requested size. * * @default - None */ readonly eC2InstanceIdsToTerminate?: string[]; /** * Target size for the instance group. * * @default - None */ readonly instanceCount?: number; /** * Policy for customizing shrink operations. * * @see https://docs.aws.amazon.com/emr/latest/APIReference/API_ShrinkPolicy.html * * @default - None */ readonly shrinkPolicy?: ShrinkPolicyProperty; } } export {};