aws-cdk-lib 2.215.0__py3-none-any.whl → 2.216.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

@@ -966,6 +966,18 @@ tasks.EmrCreateCluster(self, "SpotSpecification",
966
966
  )
967
967
  ```
968
968
 
969
+ You can [customize EBS root device volume](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html).
970
+
971
+ ```python
972
+ tasks.EmrCreateCluster(self, "Create Cluster",
973
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(),
974
+ name="ClusterName",
975
+ ebs_root_volume_iops=4000,
976
+ ebs_root_volume_size=Size.gibibytes(20),
977
+ ebs_root_volume_throughput=200
978
+ )
979
+ ```
980
+
969
981
  If you want to run multiple steps in [parallel](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-concurrent-steps.html),
970
982
  you can specify the `stepConcurrencyLevel` property. The concurrency range is between 1
971
983
  and 256 inclusive, where the default concurrency of 1 means no step concurrency is allowed.
@@ -991,6 +1003,43 @@ tasks.EmrCreateCluster(self, "Create Cluster",
991
1003
  )
992
1004
  ```
993
1005
 
1006
+ If you want to use [managed scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-scaling.html),
1007
+ you can specify the `managedScalingPolicy` property.
1008
+
1009
+ ```python
1010
+ tasks.EmrCreateCluster(self, "CreateCluster",
1011
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
1012
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
1013
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
1014
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
1015
+ instance_type="m5.xlarge"
1016
+ )
1017
+ ],
1018
+ target_on_demand_capacity=1
1019
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
1020
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
1021
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
1022
+ instance_type="m5.xlarge"
1023
+ )
1024
+ ],
1025
+ target_on_demand_capacity=1
1026
+ )
1027
+ ]
1028
+ ),
1029
+ name="ClusterName",
1030
+ release_label="emr-7.9.0",
1031
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
1032
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
1033
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
1034
+ maximum_capacity_units=4,
1035
+ minimum_capacity_units=1,
1036
+ maximum_on_demand_capacity_units=4,
1037
+ maximum_core_capacity_units=2
1038
+ )
1039
+ )
1040
+ )
1041
+ ```
1042
+
994
1043
  ### Termination Protection
995
1044
 
996
1045
  Locks a cluster (job flow) so the EC2 instances in the cluster cannot be
@@ -41317,34 +41366,36 @@ class EmrCreateCluster(
41317
41366
 
41318
41367
  Example::
41319
41368
 
41320
- cluster_role = iam.Role(self, "ClusterRole",
41321
- assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
41322
- )
41323
-
41324
- service_role = iam.Role(self, "ServiceRole",
41325
- assumed_by=iam.ServicePrincipal("elasticmapreduce.amazonaws.com")
41326
- )
41327
-
41328
- auto_scaling_role = iam.Role(self, "AutoScalingRole",
41329
- assumed_by=iam.ServicePrincipal("elasticmapreduce.amazonaws.com")
41330
- )
41331
-
41332
- auto_scaling_role.assume_role_policy.add_statements(
41333
- iam.PolicyStatement(
41334
- effect=iam.Effect.ALLOW,
41335
- principals=[
41336
- iam.ServicePrincipal("application-autoscaling.amazonaws.com")
41337
- ],
41338
- actions=["sts:AssumeRole"
41369
+ tasks.EmrCreateCluster(self, "CreateCluster",
41370
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
41371
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
41372
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
41373
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
41374
+ instance_type="m5.xlarge"
41375
+ )
41376
+ ],
41377
+ target_on_demand_capacity=1
41378
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
41379
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
41380
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
41381
+ instance_type="m5.xlarge"
41382
+ )
41383
+ ],
41384
+ target_on_demand_capacity=1
41385
+ )
41339
41386
  ]
41340
- ))
41341
-
41342
- tasks.EmrCreateCluster(self, "Create Cluster",
41343
- instances=tasks.EmrCreateCluster.InstancesConfigProperty(),
41344
- cluster_role=cluster_role,
41345
- name=sfn.TaskInput.from_json_path_at("$.ClusterName").value,
41346
- service_role=service_role,
41347
- auto_scaling_role=auto_scaling_role
41387
+ ),
41388
+ name="ClusterName",
41389
+ release_label="emr-7.9.0",
41390
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
41391
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
41392
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
41393
+ maximum_capacity_units=4,
41394
+ minimum_capacity_units=1,
41395
+ maximum_on_demand_capacity_units=4,
41396
+ maximum_core_capacity_units=2
41397
+ )
41398
+ )
41348
41399
  )
41349
41400
  '''
41350
41401
 
@@ -41363,9 +41414,12 @@ class EmrCreateCluster(
41363
41414
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
41364
41415
  configurations: typing.Optional[typing.Sequence[typing.Union["EmrCreateCluster.ConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
41365
41416
  custom_ami_id: typing.Optional[builtins.str] = None,
41417
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
41366
41418
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
41419
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
41367
41420
  kerberos_attributes: typing.Optional[typing.Union["EmrCreateCluster.KerberosAttributesProperty", typing.Dict[builtins.str, typing.Any]]] = None,
41368
41421
  log_uri: typing.Optional[builtins.str] = None,
41422
+ managed_scaling_policy: typing.Optional[typing.Union["EmrCreateCluster.ManagedScalingPolicyProperty", typing.Dict[builtins.str, typing.Any]]] = None,
41369
41423
  release_label: typing.Optional[builtins.str] = None,
41370
41424
  scale_down_behavior: typing.Optional["EmrCreateCluster.EmrClusterScaleDownBehavior"] = None,
41371
41425
  security_configuration: typing.Optional[builtins.str] = None,
@@ -41402,9 +41456,12 @@ class EmrCreateCluster(
41402
41456
  :param cluster_role: Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters. Default: - - A Role will be created
41403
41457
  :param configurations: The list of configurations supplied for the EMR cluster you are creating. Default: - None
41404
41458
  :param custom_ami_id: The ID of a custom Amazon EBS-backed Linux AMI. Default: - None
41459
+ :param ebs_root_volume_iops: The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000]. Default: - EMR selected default
41405
41460
  :param ebs_root_volume_size: The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Default: - EMR selected default
41461
+ :param ebs_root_volume_throughput: The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [125, 1000]. Default: - EMR selected default
41406
41462
  :param kerberos_attributes: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. Default: - None
41407
41463
  :param log_uri: The location in Amazon S3 to write the log files of the job flow. Default: - None
41464
+ :param managed_scaling_policy: The specified managed scaling policy for an Amazon EMR cluster. Default: - None
41408
41465
  :param release_label: The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Default: - EMR selected default
41409
41466
  :param scale_down_behavior: Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. Default: - EMR selected default
41410
41467
  :param security_configuration: The name of a security configuration to apply to the cluster. Default: - None
@@ -41443,9 +41500,12 @@ class EmrCreateCluster(
41443
41500
  cluster_role=cluster_role,
41444
41501
  configurations=configurations,
41445
41502
  custom_ami_id=custom_ami_id,
41503
+ ebs_root_volume_iops=ebs_root_volume_iops,
41446
41504
  ebs_root_volume_size=ebs_root_volume_size,
41505
+ ebs_root_volume_throughput=ebs_root_volume_throughput,
41447
41506
  kerberos_attributes=kerberos_attributes,
41448
41507
  log_uri=log_uri,
41508
+ managed_scaling_policy=managed_scaling_policy,
41449
41509
  release_label=release_label,
41450
41510
  scale_down_behavior=scale_down_behavior,
41451
41511
  security_configuration=security_configuration,
@@ -41489,9 +41549,12 @@ class EmrCreateCluster(
41489
41549
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
41490
41550
  configurations: typing.Optional[typing.Sequence[typing.Union["EmrCreateCluster.ConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
41491
41551
  custom_ami_id: typing.Optional[builtins.str] = None,
41552
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
41492
41553
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
41554
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
41493
41555
  kerberos_attributes: typing.Optional[typing.Union["EmrCreateCluster.KerberosAttributesProperty", typing.Dict[builtins.str, typing.Any]]] = None,
41494
41556
  log_uri: typing.Optional[builtins.str] = None,
41557
+ managed_scaling_policy: typing.Optional[typing.Union["EmrCreateCluster.ManagedScalingPolicyProperty", typing.Dict[builtins.str, typing.Any]]] = None,
41495
41558
  release_label: typing.Optional[builtins.str] = None,
41496
41559
  scale_down_behavior: typing.Optional["EmrCreateCluster.EmrClusterScaleDownBehavior"] = None,
41497
41560
  security_configuration: typing.Optional[builtins.str] = None,
@@ -41527,9 +41590,12 @@ class EmrCreateCluster(
41527
41590
  :param cluster_role: Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters. Default: - - A Role will be created
41528
41591
  :param configurations: The list of configurations supplied for the EMR cluster you are creating. Default: - None
41529
41592
  :param custom_ami_id: The ID of a custom Amazon EBS-backed Linux AMI. Default: - None
41593
+ :param ebs_root_volume_iops: The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000]. Default: - EMR selected default
41530
41594
  :param ebs_root_volume_size: The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Default: - EMR selected default
41595
+ :param ebs_root_volume_throughput: The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [125, 1000]. Default: - EMR selected default
41531
41596
  :param kerberos_attributes: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. Default: - None
41532
41597
  :param log_uri: The location in Amazon S3 to write the log files of the job flow. Default: - None
41598
+ :param managed_scaling_policy: The specified managed scaling policy for an Amazon EMR cluster. Default: - None
41533
41599
  :param release_label: The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Default: - EMR selected default
41534
41600
  :param scale_down_behavior: Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. Default: - EMR selected default
41535
41601
  :param security_configuration: The name of a security configuration to apply to the cluster. Default: - None
@@ -41564,9 +41630,12 @@ class EmrCreateCluster(
41564
41630
  cluster_role=cluster_role,
41565
41631
  configurations=configurations,
41566
41632
  custom_ami_id=custom_ami_id,
41633
+ ebs_root_volume_iops=ebs_root_volume_iops,
41567
41634
  ebs_root_volume_size=ebs_root_volume_size,
41635
+ ebs_root_volume_throughput=ebs_root_volume_throughput,
41568
41636
  kerberos_attributes=kerberos_attributes,
41569
41637
  log_uri=log_uri,
41638
+ managed_scaling_policy=managed_scaling_policy,
41570
41639
  release_label=release_label,
41571
41640
  scale_down_behavior=scale_down_behavior,
41572
41641
  security_configuration=security_configuration,
@@ -41606,9 +41675,12 @@ class EmrCreateCluster(
41606
41675
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
41607
41676
  configurations: typing.Optional[typing.Sequence[typing.Union["EmrCreateCluster.ConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
41608
41677
  custom_ami_id: typing.Optional[builtins.str] = None,
41678
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
41609
41679
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
41680
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
41610
41681
  kerberos_attributes: typing.Optional[typing.Union["EmrCreateCluster.KerberosAttributesProperty", typing.Dict[builtins.str, typing.Any]]] = None,
41611
41682
  log_uri: typing.Optional[builtins.str] = None,
41683
+ managed_scaling_policy: typing.Optional[typing.Union["EmrCreateCluster.ManagedScalingPolicyProperty", typing.Dict[builtins.str, typing.Any]]] = None,
41612
41684
  release_label: typing.Optional[builtins.str] = None,
41613
41685
  scale_down_behavior: typing.Optional["EmrCreateCluster.EmrClusterScaleDownBehavior"] = None,
41614
41686
  security_configuration: typing.Optional[builtins.str] = None,
@@ -41647,9 +41719,12 @@ class EmrCreateCluster(
41647
41719
  :param cluster_role: Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters. Default: - - A Role will be created
41648
41720
  :param configurations: The list of configurations supplied for the EMR cluster you are creating. Default: - None
41649
41721
  :param custom_ami_id: The ID of a custom Amazon EBS-backed Linux AMI. Default: - None
41722
+ :param ebs_root_volume_iops: The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000]. Default: - EMR selected default
41650
41723
  :param ebs_root_volume_size: The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Default: - EMR selected default
41724
+ :param ebs_root_volume_throughput: The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [125, 1000]. Default: - EMR selected default
41651
41725
  :param kerberos_attributes: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. Default: - None
41652
41726
  :param log_uri: The location in Amazon S3 to write the log files of the job flow. Default: - None
41727
+ :param managed_scaling_policy: The specified managed scaling policy for an Amazon EMR cluster. Default: - None
41653
41728
  :param release_label: The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Default: - EMR selected default
41654
41729
  :param scale_down_behavior: Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. Default: - EMR selected default
41655
41730
  :param security_configuration: The name of a security configuration to apply to the cluster. Default: - None
@@ -41687,9 +41762,12 @@ class EmrCreateCluster(
41687
41762
  cluster_role=cluster_role,
41688
41763
  configurations=configurations,
41689
41764
  custom_ami_id=custom_ami_id,
41765
+ ebs_root_volume_iops=ebs_root_volume_iops,
41690
41766
  ebs_root_volume_size=ebs_root_volume_size,
41767
+ ebs_root_volume_throughput=ebs_root_volume_throughput,
41691
41768
  kerberos_attributes=kerberos_attributes,
41692
41769
  log_uri=log_uri,
41770
+ managed_scaling_policy=managed_scaling_policy,
41693
41771
  release_label=release_label,
41694
41772
  scale_down_behavior=scale_down_behavior,
41695
41773
  security_configuration=security_configuration,
@@ -42350,6 +42428,57 @@ class EmrCreateCluster(
42350
42428
  COUNT_PER_SECOND = "COUNT_PER_SECOND"
42351
42429
  '''COUNT_PER_SECOND.'''
42352
42430
 
42431
+ @jsii.enum(
42432
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.ComputeLimitsUnitType"
42433
+ )
42434
+ class ComputeLimitsUnitType(enum.Enum):
42435
+ '''The unit type for managed scaling policy compute limits.
42436
+
42437
+ :see: https://docs.aws.amazon.com/emr/latest/APIReference/API_ComputeLimits.html
42438
+ :exampleMetadata: infused
42439
+
42440
+ Example::
42441
+
42442
+ tasks.EmrCreateCluster(self, "CreateCluster",
42443
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
42444
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
42445
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
42446
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
42447
+ instance_type="m5.xlarge"
42448
+ )
42449
+ ],
42450
+ target_on_demand_capacity=1
42451
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
42452
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
42453
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
42454
+ instance_type="m5.xlarge"
42455
+ )
42456
+ ],
42457
+ target_on_demand_capacity=1
42458
+ )
42459
+ ]
42460
+ ),
42461
+ name="ClusterName",
42462
+ release_label="emr-7.9.0",
42463
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
42464
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
42465
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
42466
+ maximum_capacity_units=4,
42467
+ minimum_capacity_units=1,
42468
+ maximum_on_demand_capacity_units=4,
42469
+ maximum_core_capacity_units=2
42470
+ )
42471
+ )
42472
+ )
42473
+ '''
42474
+
42475
+ INSTANCE_FLEET_UNITS = "INSTANCE_FLEET_UNITS"
42476
+ '''InstanceFleetUnits.'''
42477
+ INSTANCES = "INSTANCES"
42478
+ '''Instances.'''
42479
+ VCPU = "VCPU"
42480
+ '''VCPU.'''
42481
+
42353
42482
  @jsii.data_type(
42354
42483
  jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.ConfigurationProperty",
42355
42484
  jsii_struct_bases=[],
@@ -43536,34 +43665,36 @@ class EmrCreateCluster(
43536
43665
 
43537
43666
  Example::
43538
43667
 
43539
- cluster_role = iam.Role(self, "ClusterRole",
43540
- assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
43541
- )
43542
-
43543
- service_role = iam.Role(self, "ServiceRole",
43544
- assumed_by=iam.ServicePrincipal("elasticmapreduce.amazonaws.com")
43545
- )
43546
-
43547
- auto_scaling_role = iam.Role(self, "AutoScalingRole",
43548
- assumed_by=iam.ServicePrincipal("elasticmapreduce.amazonaws.com")
43549
- )
43550
-
43551
- auto_scaling_role.assume_role_policy.add_statements(
43552
- iam.PolicyStatement(
43553
- effect=iam.Effect.ALLOW,
43554
- principals=[
43555
- iam.ServicePrincipal("application-autoscaling.amazonaws.com")
43556
- ],
43557
- actions=["sts:AssumeRole"
43668
+ tasks.EmrCreateCluster(self, "CreateCluster",
43669
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
43670
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
43671
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
43672
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
43673
+ instance_type="m5.xlarge"
43674
+ )
43675
+ ],
43676
+ target_on_demand_capacity=1
43677
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
43678
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
43679
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
43680
+ instance_type="m5.xlarge"
43681
+ )
43682
+ ],
43683
+ target_on_demand_capacity=1
43684
+ )
43558
43685
  ]
43559
- ))
43560
-
43561
- tasks.EmrCreateCluster(self, "Create Cluster",
43562
- instances=tasks.EmrCreateCluster.InstancesConfigProperty(),
43563
- cluster_role=cluster_role,
43564
- name=sfn.TaskInput.from_json_path_at("$.ClusterName").value,
43565
- service_role=service_role,
43566
- auto_scaling_role=auto_scaling_role
43686
+ ),
43687
+ name="ClusterName",
43688
+ release_label="emr-7.9.0",
43689
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
43690
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
43691
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
43692
+ maximum_capacity_units=4,
43693
+ minimum_capacity_units=1,
43694
+ maximum_on_demand_capacity_units=4,
43695
+ maximum_core_capacity_units=2
43696
+ )
43697
+ )
43567
43698
  )
43568
43699
  '''
43569
43700
  if isinstance(placement, dict):
@@ -43925,6 +44056,222 @@ class EmrCreateCluster(
43925
44056
  k + "=" + repr(v) for k, v in self._values.items()
43926
44057
  )
43927
44058
 
44059
+ @jsii.data_type(
44060
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty",
44061
+ jsii_struct_bases=[],
44062
+ name_mapping={
44063
+ "maximum_capacity_units": "maximumCapacityUnits",
44064
+ "minimum_capacity_units": "minimumCapacityUnits",
44065
+ "unit_type": "unitType",
44066
+ "maximum_core_capacity_units": "maximumCoreCapacityUnits",
44067
+ "maximum_on_demand_capacity_units": "maximumOnDemandCapacityUnits",
44068
+ },
44069
+ )
44070
+ class ManagedScalingComputeLimitsProperty:
44071
+ def __init__(
44072
+ self,
44073
+ *,
44074
+ maximum_capacity_units: jsii.Number,
44075
+ minimum_capacity_units: jsii.Number,
44076
+ unit_type: "EmrCreateCluster.ComputeLimitsUnitType",
44077
+ maximum_core_capacity_units: typing.Optional[jsii.Number] = None,
44078
+ maximum_on_demand_capacity_units: typing.Optional[jsii.Number] = None,
44079
+ ) -> None:
44080
+ '''The EC2 unit limits for a managed scaling policy.
44081
+
44082
+ :param maximum_capacity_units: The upper boundary of Amazon EC2 units.
44083
+ :param minimum_capacity_units: The lower boundary of Amazon EC2 units.
44084
+ :param unit_type: The unit type used for specifying a managed scaling policy.
44085
+ :param maximum_core_capacity_units: The upper boundary of Amazon EC2 units for core node type in a cluster. Default: - None
44086
+ :param maximum_on_demand_capacity_units: The upper boundary of On-Demand Amazon EC2 units. Default: - None
44087
+
44088
+ :see: https://docs.aws.amazon.com/emr/latest/APIReference/API_ComputeLimits.html
44089
+ :exampleMetadata: infused
44090
+
44091
+ Example::
44092
+
44093
+ tasks.EmrCreateCluster(self, "CreateCluster",
44094
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
44095
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
44096
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
44097
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
44098
+ instance_type="m5.xlarge"
44099
+ )
44100
+ ],
44101
+ target_on_demand_capacity=1
44102
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
44103
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
44104
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
44105
+ instance_type="m5.xlarge"
44106
+ )
44107
+ ],
44108
+ target_on_demand_capacity=1
44109
+ )
44110
+ ]
44111
+ ),
44112
+ name="ClusterName",
44113
+ release_label="emr-7.9.0",
44114
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
44115
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
44116
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
44117
+ maximum_capacity_units=4,
44118
+ minimum_capacity_units=1,
44119
+ maximum_on_demand_capacity_units=4,
44120
+ maximum_core_capacity_units=2
44121
+ )
44122
+ )
44123
+ )
44124
+ '''
44125
+ if __debug__:
44126
+ type_hints = typing.get_type_hints(_typecheckingstub__456056f16dcf97fd1f56ad4f544f9e6a7740b916af0bb528c7039258390c676c)
44127
+ check_type(argname="argument maximum_capacity_units", value=maximum_capacity_units, expected_type=type_hints["maximum_capacity_units"])
44128
+ check_type(argname="argument minimum_capacity_units", value=minimum_capacity_units, expected_type=type_hints["minimum_capacity_units"])
44129
+ check_type(argname="argument unit_type", value=unit_type, expected_type=type_hints["unit_type"])
44130
+ check_type(argname="argument maximum_core_capacity_units", value=maximum_core_capacity_units, expected_type=type_hints["maximum_core_capacity_units"])
44131
+ check_type(argname="argument maximum_on_demand_capacity_units", value=maximum_on_demand_capacity_units, expected_type=type_hints["maximum_on_demand_capacity_units"])
44132
+ self._values: typing.Dict[builtins.str, typing.Any] = {
44133
+ "maximum_capacity_units": maximum_capacity_units,
44134
+ "minimum_capacity_units": minimum_capacity_units,
44135
+ "unit_type": unit_type,
44136
+ }
44137
+ if maximum_core_capacity_units is not None:
44138
+ self._values["maximum_core_capacity_units"] = maximum_core_capacity_units
44139
+ if maximum_on_demand_capacity_units is not None:
44140
+ self._values["maximum_on_demand_capacity_units"] = maximum_on_demand_capacity_units
44141
+
44142
+ @builtins.property
44143
+ def maximum_capacity_units(self) -> jsii.Number:
44144
+ '''The upper boundary of Amazon EC2 units.'''
44145
+ result = self._values.get("maximum_capacity_units")
44146
+ assert result is not None, "Required property 'maximum_capacity_units' is missing"
44147
+ return typing.cast(jsii.Number, result)
44148
+
44149
+ @builtins.property
44150
+ def minimum_capacity_units(self) -> jsii.Number:
44151
+ '''The lower boundary of Amazon EC2 units.'''
44152
+ result = self._values.get("minimum_capacity_units")
44153
+ assert result is not None, "Required property 'minimum_capacity_units' is missing"
44154
+ return typing.cast(jsii.Number, result)
44155
+
44156
+ @builtins.property
44157
+ def unit_type(self) -> "EmrCreateCluster.ComputeLimitsUnitType":
44158
+ '''The unit type used for specifying a managed scaling policy.'''
44159
+ result = self._values.get("unit_type")
44160
+ assert result is not None, "Required property 'unit_type' is missing"
44161
+ return typing.cast("EmrCreateCluster.ComputeLimitsUnitType", result)
44162
+
44163
+ @builtins.property
44164
+ def maximum_core_capacity_units(self) -> typing.Optional[jsii.Number]:
44165
+ '''The upper boundary of Amazon EC2 units for core node type in a cluster.
44166
+
44167
+ :default: - None
44168
+ '''
44169
+ result = self._values.get("maximum_core_capacity_units")
44170
+ return typing.cast(typing.Optional[jsii.Number], result)
44171
+
44172
+ @builtins.property
44173
+ def maximum_on_demand_capacity_units(self) -> typing.Optional[jsii.Number]:
44174
+ '''The upper boundary of On-Demand Amazon EC2 units.
44175
+
44176
+ :default: - None
44177
+ '''
44178
+ result = self._values.get("maximum_on_demand_capacity_units")
44179
+ return typing.cast(typing.Optional[jsii.Number], result)
44180
+
44181
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
44182
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
44183
+
44184
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
44185
+ return not (rhs == self)
44186
+
44187
+ def __repr__(self) -> str:
44188
+ return "ManagedScalingComputeLimitsProperty(%s)" % ", ".join(
44189
+ k + "=" + repr(v) for k, v in self._values.items()
44190
+ )
44191
+
44192
+ @jsii.data_type(
44193
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.ManagedScalingPolicyProperty",
44194
+ jsii_struct_bases=[],
44195
+ name_mapping={"compute_limits": "computeLimits"},
44196
+ )
44197
+ class ManagedScalingPolicyProperty:
44198
+ def __init__(
44199
+ self,
44200
+ *,
44201
+ compute_limits: typing.Optional[typing.Union["EmrCreateCluster.ManagedScalingComputeLimitsProperty", typing.Dict[builtins.str, typing.Any]]] = None,
44202
+ ) -> None:
44203
+ '''The managed scaling policy for an Amazon EMR cluster.
44204
+
44205
+ :param compute_limits: The Amazon EC2 unit limits for a managed scaling policy. Default: - None
44206
+
44207
+ :see: https://docs.aws.amazon.com/emr/latest/APIReference/API_ManagedScalingPolicy.html
44208
+ :exampleMetadata: infused
44209
+
44210
+ Example::
44211
+
44212
+ tasks.EmrCreateCluster(self, "CreateCluster",
44213
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
44214
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
44215
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
44216
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
44217
+ instance_type="m5.xlarge"
44218
+ )
44219
+ ],
44220
+ target_on_demand_capacity=1
44221
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
44222
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
44223
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
44224
+ instance_type="m5.xlarge"
44225
+ )
44226
+ ],
44227
+ target_on_demand_capacity=1
44228
+ )
44229
+ ]
44230
+ ),
44231
+ name="ClusterName",
44232
+ release_label="emr-7.9.0",
44233
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
44234
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
44235
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
44236
+ maximum_capacity_units=4,
44237
+ minimum_capacity_units=1,
44238
+ maximum_on_demand_capacity_units=4,
44239
+ maximum_core_capacity_units=2
44240
+ )
44241
+ )
44242
+ )
44243
+ '''
44244
+ if isinstance(compute_limits, dict):
44245
+ compute_limits = EmrCreateCluster.ManagedScalingComputeLimitsProperty(**compute_limits)
44246
+ if __debug__:
44247
+ type_hints = typing.get_type_hints(_typecheckingstub__179ad22f7f4bb419f4267ee887aae9d8eb939feb472f44c905e5f5d18bca8899)
44248
+ check_type(argname="argument compute_limits", value=compute_limits, expected_type=type_hints["compute_limits"])
44249
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
44250
+ if compute_limits is not None:
44251
+ self._values["compute_limits"] = compute_limits
44252
+
44253
+ @builtins.property
44254
+ def compute_limits(
44255
+ self,
44256
+ ) -> typing.Optional["EmrCreateCluster.ManagedScalingComputeLimitsProperty"]:
44257
+ '''The Amazon EC2 unit limits for a managed scaling policy.
44258
+
44259
+ :default: - None
44260
+ '''
44261
+ result = self._values.get("compute_limits")
44262
+ return typing.cast(typing.Optional["EmrCreateCluster.ManagedScalingComputeLimitsProperty"], result)
44263
+
44264
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
44265
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
44266
+
44267
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
44268
+ return not (rhs == self)
44269
+
44270
+ def __repr__(self) -> str:
44271
+ return "ManagedScalingPolicyProperty(%s)" % ", ".join(
44272
+ k + "=" + repr(v) for k, v in self._values.items()
44273
+ )
44274
+
43928
44275
  @jsii.data_type(
43929
44276
  jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.MetricDimensionProperty",
43930
44277
  jsii_struct_bases=[],
@@ -45147,9 +45494,12 @@ class EmrCreateCluster(
45147
45494
  "cluster_role": "clusterRole",
45148
45495
  "configurations": "configurations",
45149
45496
  "custom_ami_id": "customAmiId",
45497
+ "ebs_root_volume_iops": "ebsRootVolumeIops",
45150
45498
  "ebs_root_volume_size": "ebsRootVolumeSize",
45499
+ "ebs_root_volume_throughput": "ebsRootVolumeThroughput",
45151
45500
  "kerberos_attributes": "kerberosAttributes",
45152
45501
  "log_uri": "logUri",
45502
+ "managed_scaling_policy": "managedScalingPolicy",
45153
45503
  "release_label": "releaseLabel",
45154
45504
  "scale_down_behavior": "scaleDownBehavior",
45155
45505
  "security_configuration": "securityConfiguration",
@@ -45187,9 +45537,12 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45187
45537
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
45188
45538
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
45189
45539
  custom_ami_id: typing.Optional[builtins.str] = None,
45540
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
45190
45541
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
45542
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
45191
45543
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
45192
45544
  log_uri: typing.Optional[builtins.str] = None,
45545
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
45193
45546
  release_label: typing.Optional[builtins.str] = None,
45194
45547
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
45195
45548
  security_configuration: typing.Optional[builtins.str] = None,
@@ -45224,9 +45577,12 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45224
45577
  :param cluster_role: Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters. Default: - - A Role will be created
45225
45578
  :param configurations: The list of configurations supplied for the EMR cluster you are creating. Default: - None
45226
45579
  :param custom_ami_id: The ID of a custom Amazon EBS-backed Linux AMI. Default: - None
45580
+ :param ebs_root_volume_iops: The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000]. Default: - EMR selected default
45227
45581
  :param ebs_root_volume_size: The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Default: - EMR selected default
45582
+ :param ebs_root_volume_throughput: The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [125, 1000]. Default: - EMR selected default
45228
45583
  :param kerberos_attributes: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. Default: - None
45229
45584
  :param log_uri: The location in Amazon S3 to write the log files of the job flow. Default: - None
45585
+ :param managed_scaling_policy: The specified managed scaling policy for an Amazon EMR cluster. Default: - None
45230
45586
  :param release_label: The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Default: - EMR selected default
45231
45587
  :param scale_down_behavior: Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. Default: - EMR selected default
45232
45588
  :param security_configuration: The name of a security configuration to apply to the cluster. Default: - None
@@ -45441,7 +45797,9 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45441
45797
  role=task_role
45442
45798
  ),
45443
45799
  custom_ami_id="customAmiId",
45800
+ ebs_root_volume_iops=123,
45444
45801
  ebs_root_volume_size=size,
45802
+ ebs_root_volume_throughput=123,
45445
45803
  heartbeat=cdk.Duration.minutes(30),
45446
45804
  heartbeat_timeout=timeout,
45447
45805
  input_path="inputPath",
@@ -45456,6 +45814,17 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45456
45814
  kdc_admin_password="kdcAdminPassword"
45457
45815
  ),
45458
45816
  log_uri="logUri",
45817
+ managed_scaling_policy=stepfunctions_tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
45818
+ compute_limits=stepfunctions_tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
45819
+ maximum_capacity_units=123,
45820
+ minimum_capacity_units=123,
45821
+ unit_type=stepfunctions_tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
45822
+
45823
+ # the properties below are optional
45824
+ maximum_core_capacity_units=123,
45825
+ maximum_on_demand_capacity_units=123
45826
+ )
45827
+ ),
45459
45828
  output_path="outputPath",
45460
45829
  query_language=stepfunctions.QueryLanguage.JSON_PATH,
45461
45830
  release_label="releaseLabel",
@@ -45482,6 +45851,8 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45482
45851
  instances = EmrCreateCluster.InstancesConfigProperty(**instances)
45483
45852
  if isinstance(kerberos_attributes, dict):
45484
45853
  kerberos_attributes = EmrCreateCluster.KerberosAttributesProperty(**kerberos_attributes)
45854
+ if isinstance(managed_scaling_policy, dict):
45855
+ managed_scaling_policy = EmrCreateCluster.ManagedScalingPolicyProperty(**managed_scaling_policy)
45485
45856
  if __debug__:
45486
45857
  type_hints = typing.get_type_hints(_typecheckingstub__8eee079f7d9817361a59216197eaa0f6c6e38fddbd968457fbb263e4251c422a)
45487
45858
  check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
@@ -45508,9 +45879,12 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45508
45879
  check_type(argname="argument cluster_role", value=cluster_role, expected_type=type_hints["cluster_role"])
45509
45880
  check_type(argname="argument configurations", value=configurations, expected_type=type_hints["configurations"])
45510
45881
  check_type(argname="argument custom_ami_id", value=custom_ami_id, expected_type=type_hints["custom_ami_id"])
45882
+ check_type(argname="argument ebs_root_volume_iops", value=ebs_root_volume_iops, expected_type=type_hints["ebs_root_volume_iops"])
45511
45883
  check_type(argname="argument ebs_root_volume_size", value=ebs_root_volume_size, expected_type=type_hints["ebs_root_volume_size"])
45884
+ check_type(argname="argument ebs_root_volume_throughput", value=ebs_root_volume_throughput, expected_type=type_hints["ebs_root_volume_throughput"])
45512
45885
  check_type(argname="argument kerberos_attributes", value=kerberos_attributes, expected_type=type_hints["kerberos_attributes"])
45513
45886
  check_type(argname="argument log_uri", value=log_uri, expected_type=type_hints["log_uri"])
45887
+ check_type(argname="argument managed_scaling_policy", value=managed_scaling_policy, expected_type=type_hints["managed_scaling_policy"])
45514
45888
  check_type(argname="argument release_label", value=release_label, expected_type=type_hints["release_label"])
45515
45889
  check_type(argname="argument scale_down_behavior", value=scale_down_behavior, expected_type=type_hints["scale_down_behavior"])
45516
45890
  check_type(argname="argument security_configuration", value=security_configuration, expected_type=type_hints["security_configuration"])
@@ -45566,12 +45940,18 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45566
45940
  self._values["configurations"] = configurations
45567
45941
  if custom_ami_id is not None:
45568
45942
  self._values["custom_ami_id"] = custom_ami_id
45943
+ if ebs_root_volume_iops is not None:
45944
+ self._values["ebs_root_volume_iops"] = ebs_root_volume_iops
45569
45945
  if ebs_root_volume_size is not None:
45570
45946
  self._values["ebs_root_volume_size"] = ebs_root_volume_size
45947
+ if ebs_root_volume_throughput is not None:
45948
+ self._values["ebs_root_volume_throughput"] = ebs_root_volume_throughput
45571
45949
  if kerberos_attributes is not None:
45572
45950
  self._values["kerberos_attributes"] = kerberos_attributes
45573
45951
  if log_uri is not None:
45574
45952
  self._values["log_uri"] = log_uri
45953
+ if managed_scaling_policy is not None:
45954
+ self._values["managed_scaling_policy"] = managed_scaling_policy
45575
45955
  if release_label is not None:
45576
45956
  self._values["release_label"] = release_label
45577
45957
  if scale_down_behavior is not None:
@@ -45867,6 +46247,20 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45867
46247
  result = self._values.get("custom_ami_id")
45868
46248
  return typing.cast(typing.Optional[builtins.str], result)
45869
46249
 
46250
+ @builtins.property
46251
+ def ebs_root_volume_iops(self) -> typing.Optional[jsii.Number]:
46252
+ '''The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
46253
+
46254
+ Requires EMR release label 6.15.0 or above.
46255
+ Must be in range [3000, 16000].
46256
+
46257
+ :default: - EMR selected default
46258
+
46259
+ :see: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html#emr-root-volume-overview
46260
+ '''
46261
+ result = self._values.get("ebs_root_volume_iops")
46262
+ return typing.cast(typing.Optional[jsii.Number], result)
46263
+
45870
46264
  @builtins.property
45871
46265
  def ebs_root_volume_size(self) -> typing.Optional[_Size_7b441c34]:
45872
46266
  '''The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
@@ -45876,6 +46270,20 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45876
46270
  result = self._values.get("ebs_root_volume_size")
45877
46271
  return typing.cast(typing.Optional[_Size_7b441c34], result)
45878
46272
 
46273
+ @builtins.property
46274
+ def ebs_root_volume_throughput(self) -> typing.Optional[jsii.Number]:
46275
+ '''The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
46276
+
46277
+ Requires EMR release label 6.15.0 or above.
46278
+ Must be in range [125, 1000].
46279
+
46280
+ :default: - EMR selected default
46281
+
46282
+ :see: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html#emr-root-volume-overview
46283
+ '''
46284
+ result = self._values.get("ebs_root_volume_throughput")
46285
+ return typing.cast(typing.Optional[jsii.Number], result)
46286
+
45879
46287
  @builtins.property
45880
46288
  def kerberos_attributes(
45881
46289
  self,
@@ -45896,6 +46304,17 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
45896
46304
  result = self._values.get("log_uri")
45897
46305
  return typing.cast(typing.Optional[builtins.str], result)
45898
46306
 
46307
+ @builtins.property
46308
+ def managed_scaling_policy(
46309
+ self,
46310
+ ) -> typing.Optional[EmrCreateCluster.ManagedScalingPolicyProperty]:
46311
+ '''The specified managed scaling policy for an Amazon EMR cluster.
46312
+
46313
+ :default: - None
46314
+ '''
46315
+ result = self._values.get("managed_scaling_policy")
46316
+ return typing.cast(typing.Optional[EmrCreateCluster.ManagedScalingPolicyProperty], result)
46317
+
45899
46318
  @builtins.property
45900
46319
  def release_label(self) -> typing.Optional[builtins.str]:
45901
46320
  '''The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster.
@@ -46001,9 +46420,12 @@ class EmrCreateClusterJsonPathProps(_TaskStateJsonPathBaseProps_57dc2260):
46001
46420
  "cluster_role": "clusterRole",
46002
46421
  "configurations": "configurations",
46003
46422
  "custom_ami_id": "customAmiId",
46423
+ "ebs_root_volume_iops": "ebsRootVolumeIops",
46004
46424
  "ebs_root_volume_size": "ebsRootVolumeSize",
46425
+ "ebs_root_volume_throughput": "ebsRootVolumeThroughput",
46005
46426
  "kerberos_attributes": "kerberosAttributes",
46006
46427
  "log_uri": "logUri",
46428
+ "managed_scaling_policy": "managedScalingPolicy",
46007
46429
  "release_label": "releaseLabel",
46008
46430
  "scale_down_behavior": "scaleDownBehavior",
46009
46431
  "security_configuration": "securityConfiguration",
@@ -46038,9 +46460,12 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46038
46460
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
46039
46461
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
46040
46462
  custom_ami_id: typing.Optional[builtins.str] = None,
46463
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
46041
46464
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
46465
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
46042
46466
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
46043
46467
  log_uri: typing.Optional[builtins.str] = None,
46468
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
46044
46469
  release_label: typing.Optional[builtins.str] = None,
46045
46470
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
46046
46471
  security_configuration: typing.Optional[builtins.str] = None,
@@ -46072,9 +46497,12 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46072
46497
  :param cluster_role: Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters. Default: - - A Role will be created
46073
46498
  :param configurations: The list of configurations supplied for the EMR cluster you are creating. Default: - None
46074
46499
  :param custom_ami_id: The ID of a custom Amazon EBS-backed Linux AMI. Default: - None
46500
+ :param ebs_root_volume_iops: The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000]. Default: - EMR selected default
46075
46501
  :param ebs_root_volume_size: The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Default: - EMR selected default
46502
+ :param ebs_root_volume_throughput: The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [125, 1000]. Default: - EMR selected default
46076
46503
  :param kerberos_attributes: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. Default: - None
46077
46504
  :param log_uri: The location in Amazon S3 to write the log files of the job flow. Default: - None
46505
+ :param managed_scaling_policy: The specified managed scaling policy for an Amazon EMR cluster. Default: - None
46078
46506
  :param release_label: The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Default: - EMR selected default
46079
46507
  :param scale_down_behavior: Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. Default: - EMR selected default
46080
46508
  :param security_configuration: The name of a security configuration to apply to the cluster. Default: - None
@@ -46289,7 +46717,9 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46289
46717
  role=task_role
46290
46718
  ),
46291
46719
  custom_ami_id="customAmiId",
46720
+ ebs_root_volume_iops=123,
46292
46721
  ebs_root_volume_size=size,
46722
+ ebs_root_volume_throughput=123,
46293
46723
  heartbeat=cdk.Duration.minutes(30),
46294
46724
  heartbeat_timeout=timeout,
46295
46725
  integration_pattern=stepfunctions.IntegrationPattern.REQUEST_RESPONSE,
@@ -46303,6 +46733,17 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46303
46733
  kdc_admin_password="kdcAdminPassword"
46304
46734
  ),
46305
46735
  log_uri="logUri",
46736
+ managed_scaling_policy=stepfunctions_tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
46737
+ compute_limits=stepfunctions_tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
46738
+ maximum_capacity_units=123,
46739
+ minimum_capacity_units=123,
46740
+ unit_type=stepfunctions_tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
46741
+
46742
+ # the properties below are optional
46743
+ maximum_core_capacity_units=123,
46744
+ maximum_on_demand_capacity_units=123
46745
+ )
46746
+ ),
46306
46747
  outputs=outputs,
46307
46748
  query_language=stepfunctions.QueryLanguage.JSON_PATH,
46308
46749
  release_label="releaseLabel",
@@ -46325,6 +46766,8 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46325
46766
  instances = EmrCreateCluster.InstancesConfigProperty(**instances)
46326
46767
  if isinstance(kerberos_attributes, dict):
46327
46768
  kerberos_attributes = EmrCreateCluster.KerberosAttributesProperty(**kerberos_attributes)
46769
+ if isinstance(managed_scaling_policy, dict):
46770
+ managed_scaling_policy = EmrCreateCluster.ManagedScalingPolicyProperty(**managed_scaling_policy)
46328
46771
  if __debug__:
46329
46772
  type_hints = typing.get_type_hints(_typecheckingstub__e0198d308a9f96d3aadda143c9d8a0ef5848603e760f6a16d02390d989c574d3)
46330
46773
  check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
@@ -46348,9 +46791,12 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46348
46791
  check_type(argname="argument cluster_role", value=cluster_role, expected_type=type_hints["cluster_role"])
46349
46792
  check_type(argname="argument configurations", value=configurations, expected_type=type_hints["configurations"])
46350
46793
  check_type(argname="argument custom_ami_id", value=custom_ami_id, expected_type=type_hints["custom_ami_id"])
46794
+ check_type(argname="argument ebs_root_volume_iops", value=ebs_root_volume_iops, expected_type=type_hints["ebs_root_volume_iops"])
46351
46795
  check_type(argname="argument ebs_root_volume_size", value=ebs_root_volume_size, expected_type=type_hints["ebs_root_volume_size"])
46796
+ check_type(argname="argument ebs_root_volume_throughput", value=ebs_root_volume_throughput, expected_type=type_hints["ebs_root_volume_throughput"])
46352
46797
  check_type(argname="argument kerberos_attributes", value=kerberos_attributes, expected_type=type_hints["kerberos_attributes"])
46353
46798
  check_type(argname="argument log_uri", value=log_uri, expected_type=type_hints["log_uri"])
46799
+ check_type(argname="argument managed_scaling_policy", value=managed_scaling_policy, expected_type=type_hints["managed_scaling_policy"])
46354
46800
  check_type(argname="argument release_label", value=release_label, expected_type=type_hints["release_label"])
46355
46801
  check_type(argname="argument scale_down_behavior", value=scale_down_behavior, expected_type=type_hints["scale_down_behavior"])
46356
46802
  check_type(argname="argument security_configuration", value=security_configuration, expected_type=type_hints["security_configuration"])
@@ -46400,12 +46846,18 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46400
46846
  self._values["configurations"] = configurations
46401
46847
  if custom_ami_id is not None:
46402
46848
  self._values["custom_ami_id"] = custom_ami_id
46849
+ if ebs_root_volume_iops is not None:
46850
+ self._values["ebs_root_volume_iops"] = ebs_root_volume_iops
46403
46851
  if ebs_root_volume_size is not None:
46404
46852
  self._values["ebs_root_volume_size"] = ebs_root_volume_size
46853
+ if ebs_root_volume_throughput is not None:
46854
+ self._values["ebs_root_volume_throughput"] = ebs_root_volume_throughput
46405
46855
  if kerberos_attributes is not None:
46406
46856
  self._values["kerberos_attributes"] = kerberos_attributes
46407
46857
  if log_uri is not None:
46408
46858
  self._values["log_uri"] = log_uri
46859
+ if managed_scaling_policy is not None:
46860
+ self._values["managed_scaling_policy"] = managed_scaling_policy
46409
46861
  if release_label is not None:
46410
46862
  self._values["release_label"] = release_label
46411
46863
  if scale_down_behavior is not None:
@@ -46666,6 +47118,20 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46666
47118
  result = self._values.get("custom_ami_id")
46667
47119
  return typing.cast(typing.Optional[builtins.str], result)
46668
47120
 
47121
+ @builtins.property
47122
+ def ebs_root_volume_iops(self) -> typing.Optional[jsii.Number]:
47123
+ '''The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
47124
+
47125
+ Requires EMR release label 6.15.0 or above.
47126
+ Must be in range [3000, 16000].
47127
+
47128
+ :default: - EMR selected default
47129
+
47130
+ :see: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html#emr-root-volume-overview
47131
+ '''
47132
+ result = self._values.get("ebs_root_volume_iops")
47133
+ return typing.cast(typing.Optional[jsii.Number], result)
47134
+
46669
47135
  @builtins.property
46670
47136
  def ebs_root_volume_size(self) -> typing.Optional[_Size_7b441c34]:
46671
47137
  '''The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
@@ -46675,6 +47141,20 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46675
47141
  result = self._values.get("ebs_root_volume_size")
46676
47142
  return typing.cast(typing.Optional[_Size_7b441c34], result)
46677
47143
 
47144
+ @builtins.property
47145
+ def ebs_root_volume_throughput(self) -> typing.Optional[jsii.Number]:
47146
+ '''The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
47147
+
47148
+ Requires EMR release label 6.15.0 or above.
47149
+ Must be in range [125, 1000].
47150
+
47151
+ :default: - EMR selected default
47152
+
47153
+ :see: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html#emr-root-volume-overview
47154
+ '''
47155
+ result = self._values.get("ebs_root_volume_throughput")
47156
+ return typing.cast(typing.Optional[jsii.Number], result)
47157
+
46678
47158
  @builtins.property
46679
47159
  def kerberos_attributes(
46680
47160
  self,
@@ -46695,6 +47175,17 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46695
47175
  result = self._values.get("log_uri")
46696
47176
  return typing.cast(typing.Optional[builtins.str], result)
46697
47177
 
47178
+ @builtins.property
47179
+ def managed_scaling_policy(
47180
+ self,
47181
+ ) -> typing.Optional[EmrCreateCluster.ManagedScalingPolicyProperty]:
47182
+ '''The specified managed scaling policy for an Amazon EMR cluster.
47183
+
47184
+ :default: - None
47185
+ '''
47186
+ result = self._values.get("managed_scaling_policy")
47187
+ return typing.cast(typing.Optional[EmrCreateCluster.ManagedScalingPolicyProperty], result)
47188
+
46698
47189
  @builtins.property
46699
47190
  def release_label(self) -> typing.Optional[builtins.str]:
46700
47191
  '''The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster.
@@ -46804,9 +47295,12 @@ class EmrCreateClusterJsonataProps(_TaskStateJsonataBaseProps_0e91775c):
46804
47295
  "cluster_role": "clusterRole",
46805
47296
  "configurations": "configurations",
46806
47297
  "custom_ami_id": "customAmiId",
47298
+ "ebs_root_volume_iops": "ebsRootVolumeIops",
46807
47299
  "ebs_root_volume_size": "ebsRootVolumeSize",
47300
+ "ebs_root_volume_throughput": "ebsRootVolumeThroughput",
46808
47301
  "kerberos_attributes": "kerberosAttributes",
46809
47302
  "log_uri": "logUri",
47303
+ "managed_scaling_policy": "managedScalingPolicy",
46810
47304
  "release_label": "releaseLabel",
46811
47305
  "scale_down_behavior": "scaleDownBehavior",
46812
47306
  "security_configuration": "securityConfiguration",
@@ -46845,9 +47339,12 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
46845
47339
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
46846
47340
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
46847
47341
  custom_ami_id: typing.Optional[builtins.str] = None,
47342
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
46848
47343
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
47344
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
46849
47345
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
46850
47346
  log_uri: typing.Optional[builtins.str] = None,
47347
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
46851
47348
  release_label: typing.Optional[builtins.str] = None,
46852
47349
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
46853
47350
  security_configuration: typing.Optional[builtins.str] = None,
@@ -46883,9 +47380,12 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
46883
47380
  :param cluster_role: Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. This attribute has been renamed from jobFlowRole to clusterRole to align with other ERM/StepFunction integration parameters. Default: - - A Role will be created
46884
47381
  :param configurations: The list of configurations supplied for the EMR cluster you are creating. Default: - None
46885
47382
  :param custom_ami_id: The ID of a custom Amazon EBS-backed Linux AMI. Default: - None
47383
+ :param ebs_root_volume_iops: The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [3000, 16000]. Default: - EMR selected default
46886
47384
  :param ebs_root_volume_size: The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Default: - EMR selected default
47385
+ :param ebs_root_volume_throughput: The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Requires EMR release label 6.15.0 or above. Must be in range [125, 1000]. Default: - EMR selected default
46887
47386
  :param kerberos_attributes: Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration. Default: - None
46888
47387
  :param log_uri: The location in Amazon S3 to write the log files of the job flow. Default: - None
47388
+ :param managed_scaling_policy: The specified managed scaling policy for an Amazon EMR cluster. Default: - None
46889
47389
  :param release_label: The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster. Default: - EMR selected default
46890
47390
  :param scale_down_behavior: Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. Default: - EMR selected default
46891
47391
  :param security_configuration: The name of a security configuration to apply to the cluster. Default: - None
@@ -46898,34 +47398,36 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
46898
47398
 
46899
47399
  Example::
46900
47400
 
46901
- cluster_role = iam.Role(self, "ClusterRole",
46902
- assumed_by=iam.ServicePrincipal("ec2.amazonaws.com")
46903
- )
46904
-
46905
- service_role = iam.Role(self, "ServiceRole",
46906
- assumed_by=iam.ServicePrincipal("elasticmapreduce.amazonaws.com")
46907
- )
46908
-
46909
- auto_scaling_role = iam.Role(self, "AutoScalingRole",
46910
- assumed_by=iam.ServicePrincipal("elasticmapreduce.amazonaws.com")
46911
- )
46912
-
46913
- auto_scaling_role.assume_role_policy.add_statements(
46914
- iam.PolicyStatement(
46915
- effect=iam.Effect.ALLOW,
46916
- principals=[
46917
- iam.ServicePrincipal("application-autoscaling.amazonaws.com")
46918
- ],
46919
- actions=["sts:AssumeRole"
47401
+ tasks.EmrCreateCluster(self, "CreateCluster",
47402
+ instances=tasks.EmrCreateCluster.InstancesConfigProperty(
47403
+ instance_fleets=[tasks.EmrCreateCluster.InstanceFleetConfigProperty(
47404
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.CORE,
47405
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
47406
+ instance_type="m5.xlarge"
47407
+ )
47408
+ ],
47409
+ target_on_demand_capacity=1
47410
+ ), tasks.EmrCreateCluster.InstanceFleetConfigProperty(
47411
+ instance_fleet_type=tasks.EmrCreateCluster.InstanceRoleType.MASTER,
47412
+ instance_type_configs=[tasks.EmrCreateCluster.InstanceTypeConfigProperty(
47413
+ instance_type="m5.xlarge"
47414
+ )
47415
+ ],
47416
+ target_on_demand_capacity=1
47417
+ )
46920
47418
  ]
46921
- ))
46922
-
46923
- tasks.EmrCreateCluster(self, "Create Cluster",
46924
- instances=tasks.EmrCreateCluster.InstancesConfigProperty(),
46925
- cluster_role=cluster_role,
46926
- name=sfn.TaskInput.from_json_path_at("$.ClusterName").value,
46927
- service_role=service_role,
46928
- auto_scaling_role=auto_scaling_role
47419
+ ),
47420
+ name="ClusterName",
47421
+ release_label="emr-7.9.0",
47422
+ managed_scaling_policy=tasks.EmrCreateCluster.ManagedScalingPolicyProperty(
47423
+ compute_limits=tasks.EmrCreateCluster.ManagedScalingComputeLimitsProperty(
47424
+ unit_type=tasks.EmrCreateCluster.ComputeLimitsUnitType.INSTANCE_FLEET_UNITS,
47425
+ maximum_capacity_units=4,
47426
+ minimum_capacity_units=1,
47427
+ maximum_on_demand_capacity_units=4,
47428
+ maximum_core_capacity_units=2
47429
+ )
47430
+ )
46929
47431
  )
46930
47432
  '''
46931
47433
  if isinstance(credentials, dict):
@@ -46934,6 +47436,8 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
46934
47436
  instances = EmrCreateCluster.InstancesConfigProperty(**instances)
46935
47437
  if isinstance(kerberos_attributes, dict):
46936
47438
  kerberos_attributes = EmrCreateCluster.KerberosAttributesProperty(**kerberos_attributes)
47439
+ if isinstance(managed_scaling_policy, dict):
47440
+ managed_scaling_policy = EmrCreateCluster.ManagedScalingPolicyProperty(**managed_scaling_policy)
46937
47441
  if __debug__:
46938
47442
  type_hints = typing.get_type_hints(_typecheckingstub__47264d4efff2249070476b1432ca851665096bb89026c6d6564ff3c77327b86c)
46939
47443
  check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
@@ -46961,9 +47465,12 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
46961
47465
  check_type(argname="argument cluster_role", value=cluster_role, expected_type=type_hints["cluster_role"])
46962
47466
  check_type(argname="argument configurations", value=configurations, expected_type=type_hints["configurations"])
46963
47467
  check_type(argname="argument custom_ami_id", value=custom_ami_id, expected_type=type_hints["custom_ami_id"])
47468
+ check_type(argname="argument ebs_root_volume_iops", value=ebs_root_volume_iops, expected_type=type_hints["ebs_root_volume_iops"])
46964
47469
  check_type(argname="argument ebs_root_volume_size", value=ebs_root_volume_size, expected_type=type_hints["ebs_root_volume_size"])
47470
+ check_type(argname="argument ebs_root_volume_throughput", value=ebs_root_volume_throughput, expected_type=type_hints["ebs_root_volume_throughput"])
46965
47471
  check_type(argname="argument kerberos_attributes", value=kerberos_attributes, expected_type=type_hints["kerberos_attributes"])
46966
47472
  check_type(argname="argument log_uri", value=log_uri, expected_type=type_hints["log_uri"])
47473
+ check_type(argname="argument managed_scaling_policy", value=managed_scaling_policy, expected_type=type_hints["managed_scaling_policy"])
46967
47474
  check_type(argname="argument release_label", value=release_label, expected_type=type_hints["release_label"])
46968
47475
  check_type(argname="argument scale_down_behavior", value=scale_down_behavior, expected_type=type_hints["scale_down_behavior"])
46969
47476
  check_type(argname="argument security_configuration", value=security_configuration, expected_type=type_hints["security_configuration"])
@@ -47021,12 +47528,18 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
47021
47528
  self._values["configurations"] = configurations
47022
47529
  if custom_ami_id is not None:
47023
47530
  self._values["custom_ami_id"] = custom_ami_id
47531
+ if ebs_root_volume_iops is not None:
47532
+ self._values["ebs_root_volume_iops"] = ebs_root_volume_iops
47024
47533
  if ebs_root_volume_size is not None:
47025
47534
  self._values["ebs_root_volume_size"] = ebs_root_volume_size
47535
+ if ebs_root_volume_throughput is not None:
47536
+ self._values["ebs_root_volume_throughput"] = ebs_root_volume_throughput
47026
47537
  if kerberos_attributes is not None:
47027
47538
  self._values["kerberos_attributes"] = kerberos_attributes
47028
47539
  if log_uri is not None:
47029
47540
  self._values["log_uri"] = log_uri
47541
+ if managed_scaling_policy is not None:
47542
+ self._values["managed_scaling_policy"] = managed_scaling_policy
47030
47543
  if release_label is not None:
47031
47544
  self._values["release_label"] = release_label
47032
47545
  if scale_down_behavior is not None:
@@ -47339,6 +47852,20 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
47339
47852
  result = self._values.get("custom_ami_id")
47340
47853
  return typing.cast(typing.Optional[builtins.str], result)
47341
47854
 
47855
+ @builtins.property
47856
+ def ebs_root_volume_iops(self) -> typing.Optional[jsii.Number]:
47857
+ '''The IOPS of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
47858
+
47859
+ Requires EMR release label 6.15.0 or above.
47860
+ Must be in range [3000, 16000].
47861
+
47862
+ :default: - EMR selected default
47863
+
47864
+ :see: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html#emr-root-volume-overview
47865
+ '''
47866
+ result = self._values.get("ebs_root_volume_iops")
47867
+ return typing.cast(typing.Optional[jsii.Number], result)
47868
+
47342
47869
  @builtins.property
47343
47870
  def ebs_root_volume_size(self) -> typing.Optional[_Size_7b441c34]:
47344
47871
  '''The size of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
@@ -47348,6 +47875,20 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
47348
47875
  result = self._values.get("ebs_root_volume_size")
47349
47876
  return typing.cast(typing.Optional[_Size_7b441c34], result)
47350
47877
 
47878
+ @builtins.property
47879
+ def ebs_root_volume_throughput(self) -> typing.Optional[jsii.Number]:
47880
+ '''The throughput, in MiB/s, of the EBS root device volume of the Linux AMI that is used for each EC2 instance.
47881
+
47882
+ Requires EMR release label 6.15.0 or above.
47883
+ Must be in range [125, 1000].
47884
+
47885
+ :default: - EMR selected default
47886
+
47887
+ :see: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami-root-volume-size.html#emr-root-volume-overview
47888
+ '''
47889
+ result = self._values.get("ebs_root_volume_throughput")
47890
+ return typing.cast(typing.Optional[jsii.Number], result)
47891
+
47351
47892
  @builtins.property
47352
47893
  def kerberos_attributes(
47353
47894
  self,
@@ -47368,6 +47909,17 @@ class EmrCreateClusterProps(_TaskStateBaseProps_3a62b6d0):
47368
47909
  result = self._values.get("log_uri")
47369
47910
  return typing.cast(typing.Optional[builtins.str], result)
47370
47911
 
47912
+ @builtins.property
47913
+ def managed_scaling_policy(
47914
+ self,
47915
+ ) -> typing.Optional[EmrCreateCluster.ManagedScalingPolicyProperty]:
47916
+ '''The specified managed scaling policy for an Amazon EMR cluster.
47917
+
47918
+ :default: - None
47919
+ '''
47920
+ result = self._values.get("managed_scaling_policy")
47921
+ return typing.cast(typing.Optional[EmrCreateCluster.ManagedScalingPolicyProperty], result)
47922
+
47371
47923
  @builtins.property
47372
47924
  def release_label(self) -> typing.Optional[builtins.str]:
47373
47925
  '''The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster.
@@ -91561,9 +92113,12 @@ def _typecheckingstub__cea19fa2105afe952446f5bd0f605c16f7727beccef02df2d7846fc03
91561
92113
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
91562
92114
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
91563
92115
  custom_ami_id: typing.Optional[builtins.str] = None,
92116
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
91564
92117
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
92118
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
91565
92119
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91566
92120
  log_uri: typing.Optional[builtins.str] = None,
92121
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91567
92122
  release_label: typing.Optional[builtins.str] = None,
91568
92123
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
91569
92124
  security_configuration: typing.Optional[builtins.str] = None,
@@ -91604,9 +92159,12 @@ def _typecheckingstub__c919e6f14f726c30d5e9bfdcd68c1528feb537ad74733ba631023ae0e
91604
92159
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
91605
92160
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
91606
92161
  custom_ami_id: typing.Optional[builtins.str] = None,
92162
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
91607
92163
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
92164
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
91608
92165
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91609
92166
  log_uri: typing.Optional[builtins.str] = None,
92167
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91610
92168
  release_label: typing.Optional[builtins.str] = None,
91611
92169
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
91612
92170
  security_configuration: typing.Optional[builtins.str] = None,
@@ -91643,9 +92201,12 @@ def _typecheckingstub__c0ca62f39b0f27c784b5c3bd197f4bcb1898d07af8d6176a5e24d6cb4
91643
92201
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
91644
92202
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
91645
92203
  custom_ami_id: typing.Optional[builtins.str] = None,
92204
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
91646
92205
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
92206
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
91647
92207
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91648
92208
  log_uri: typing.Optional[builtins.str] = None,
92209
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91649
92210
  release_label: typing.Optional[builtins.str] = None,
91650
92211
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
91651
92212
  security_configuration: typing.Optional[builtins.str] = None,
@@ -91817,6 +92378,24 @@ def _typecheckingstub__55fd4ff6bee4f87932c9408a964df71df75a5355df79438f571de69d1
91817
92378
  """Type checking stubs"""
91818
92379
  pass
91819
92380
 
92381
+ def _typecheckingstub__456056f16dcf97fd1f56ad4f544f9e6a7740b916af0bb528c7039258390c676c(
92382
+ *,
92383
+ maximum_capacity_units: jsii.Number,
92384
+ minimum_capacity_units: jsii.Number,
92385
+ unit_type: EmrCreateCluster.ComputeLimitsUnitType,
92386
+ maximum_core_capacity_units: typing.Optional[jsii.Number] = None,
92387
+ maximum_on_demand_capacity_units: typing.Optional[jsii.Number] = None,
92388
+ ) -> None:
92389
+ """Type checking stubs"""
92390
+ pass
92391
+
92392
+ def _typecheckingstub__179ad22f7f4bb419f4267ee887aae9d8eb939feb472f44c905e5f5d18bca8899(
92393
+ *,
92394
+ compute_limits: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingComputeLimitsProperty, typing.Dict[builtins.str, typing.Any]]] = None,
92395
+ ) -> None:
92396
+ """Type checking stubs"""
92397
+ pass
92398
+
91820
92399
  def _typecheckingstub__b08b745951eed0d937bba525b556337b2cbf7ac04b7cf244aa893e39122e1abc(
91821
92400
  *,
91822
92401
  key: builtins.str,
@@ -91936,9 +92515,12 @@ def _typecheckingstub__8eee079f7d9817361a59216197eaa0f6c6e38fddbd968457fbb263e42
91936
92515
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
91937
92516
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
91938
92517
  custom_ami_id: typing.Optional[builtins.str] = None,
92518
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
91939
92519
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
92520
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
91940
92521
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91941
92522
  log_uri: typing.Optional[builtins.str] = None,
92523
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91942
92524
  release_label: typing.Optional[builtins.str] = None,
91943
92525
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
91944
92526
  security_configuration: typing.Optional[builtins.str] = None,
@@ -91973,9 +92555,12 @@ def _typecheckingstub__e0198d308a9f96d3aadda143c9d8a0ef5848603e760f6a16d02390d98
91973
92555
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
91974
92556
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
91975
92557
  custom_ami_id: typing.Optional[builtins.str] = None,
92558
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
91976
92559
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
92560
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
91977
92561
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91978
92562
  log_uri: typing.Optional[builtins.str] = None,
92563
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
91979
92564
  release_label: typing.Optional[builtins.str] = None,
91980
92565
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
91981
92566
  security_configuration: typing.Optional[builtins.str] = None,
@@ -92014,9 +92599,12 @@ def _typecheckingstub__47264d4efff2249070476b1432ca851665096bb89026c6d6564ff3c77
92014
92599
  cluster_role: typing.Optional[_IRole_235f5d8e] = None,
92015
92600
  configurations: typing.Optional[typing.Sequence[typing.Union[EmrCreateCluster.ConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
92016
92601
  custom_ami_id: typing.Optional[builtins.str] = None,
92602
+ ebs_root_volume_iops: typing.Optional[jsii.Number] = None,
92017
92603
  ebs_root_volume_size: typing.Optional[_Size_7b441c34] = None,
92604
+ ebs_root_volume_throughput: typing.Optional[jsii.Number] = None,
92018
92605
  kerberos_attributes: typing.Optional[typing.Union[EmrCreateCluster.KerberosAttributesProperty, typing.Dict[builtins.str, typing.Any]]] = None,
92019
92606
  log_uri: typing.Optional[builtins.str] = None,
92607
+ managed_scaling_policy: typing.Optional[typing.Union[EmrCreateCluster.ManagedScalingPolicyProperty, typing.Dict[builtins.str, typing.Any]]] = None,
92020
92608
  release_label: typing.Optional[builtins.str] = None,
92021
92609
  scale_down_behavior: typing.Optional[EmrCreateCluster.EmrClusterScaleDownBehavior] = None,
92022
92610
  security_configuration: typing.Optional[builtins.str] = None,