io.cloudshiftdev.awscdk.services.emr.CfnClusterProps.kt Maven / Gradle / Ivy
The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")
package io.cloudshiftdev.awscdk.services.emr
import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.Boolean
import kotlin.Number
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Properties for defining a `CfnCluster`.
*
* Example:
*
* ```
* // The code below shows an example of how to instantiate this type.
* // The values are placeholders you should change.
* import io.cloudshiftdev.awscdk.services.emr.*;
* Object additionalInfo;
* ConfigurationProperty configurationProperty_;
* CfnClusterProps cfnClusterProps = CfnClusterProps.builder()
* .instances(JobFlowInstancesConfigProperty.builder()
* .additionalMasterSecurityGroups(List.of("additionalMasterSecurityGroups"))
* .additionalSlaveSecurityGroups(List.of("additionalSlaveSecurityGroups"))
* .coreInstanceFleet(InstanceFleetConfigProperty.builder()
* .instanceTypeConfigs(List.of(InstanceTypeConfigProperty.builder()
* .instanceType("instanceType")
* // the properties below are optional
* .bidPrice("bidPrice")
* .bidPriceAsPercentageOfOnDemandPrice(123)
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsConfiguration(EbsConfigurationProperty.builder()
* .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder()
* .volumeSpecification(VolumeSpecificationProperty.builder()
* .sizeInGb(123)
* .volumeType("volumeType")
* // the properties below are optional
* .iops(123)
* .throughput(123)
* .build())
* // the properties below are optional
* .volumesPerInstance(123)
* .build()))
* .ebsOptimized(false)
* .build())
* .weightedCapacity(123)
* .build()))
* .launchSpecifications(InstanceFleetProvisioningSpecificationsProperty.builder()
* .onDemandSpecification(OnDemandProvisioningSpecificationProperty.builder()
* .allocationStrategy("allocationStrategy")
* .build())
* .spotSpecification(SpotProvisioningSpecificationProperty.builder()
* .timeoutAction("timeoutAction")
* .timeoutDurationMinutes(123)
* // the properties below are optional
* .allocationStrategy("allocationStrategy")
* .blockDurationMinutes(123)
* .build())
* .build())
* .name("name")
* .targetOnDemandCapacity(123)
* .targetSpotCapacity(123)
* .build())
* .coreInstanceGroup(InstanceGroupConfigProperty.builder()
* .instanceCount(123)
* .instanceType("instanceType")
* // the properties below are optional
* .autoScalingPolicy(AutoScalingPolicyProperty.builder()
* .constraints(ScalingConstraintsProperty.builder()
* .maxCapacity(123)
* .minCapacity(123)
* .build())
* .rules(List.of(ScalingRuleProperty.builder()
* .action(ScalingActionProperty.builder()
* .simpleScalingPolicyConfiguration(SimpleScalingPolicyConfigurationProperty.builder()
* .scalingAdjustment(123)
* // the properties below are optional
* .adjustmentType("adjustmentType")
* .coolDown(123)
* .build())
* // the properties below are optional
* .market("market")
* .build())
* .name("name")
* .trigger(ScalingTriggerProperty.builder()
* .cloudWatchAlarmDefinition(CloudWatchAlarmDefinitionProperty.builder()
* .comparisonOperator("comparisonOperator")
* .metricName("metricName")
* .period(123)
* .threshold(123)
* // the properties below are optional
* .dimensions(List.of(MetricDimensionProperty.builder()
* .key("key")
* .value("value")
* .build()))
* .evaluationPeriods(123)
* .namespace("namespace")
* .statistic("statistic")
* .unit("unit")
* .build())
* .build())
* // the properties below are optional
* .description("description")
* .build()))
* .build())
* .bidPrice("bidPrice")
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsConfiguration(EbsConfigurationProperty.builder()
* .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder()
* .volumeSpecification(VolumeSpecificationProperty.builder()
* .sizeInGb(123)
* .volumeType("volumeType")
* // the properties below are optional
* .iops(123)
* .throughput(123)
* .build())
* // the properties below are optional
* .volumesPerInstance(123)
* .build()))
* .ebsOptimized(false)
* .build())
* .market("market")
* .name("name")
* .build())
* .ec2KeyName("ec2KeyName")
* .ec2SubnetId("ec2SubnetId")
* .ec2SubnetIds(List.of("ec2SubnetIds"))
* .emrManagedMasterSecurityGroup("emrManagedMasterSecurityGroup")
* .emrManagedSlaveSecurityGroup("emrManagedSlaveSecurityGroup")
* .hadoopVersion("hadoopVersion")
* .keepJobFlowAliveWhenNoSteps(false)
* .masterInstanceFleet(InstanceFleetConfigProperty.builder()
* .instanceTypeConfigs(List.of(InstanceTypeConfigProperty.builder()
* .instanceType("instanceType")
* // the properties below are optional
* .bidPrice("bidPrice")
* .bidPriceAsPercentageOfOnDemandPrice(123)
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsConfiguration(EbsConfigurationProperty.builder()
* .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder()
* .volumeSpecification(VolumeSpecificationProperty.builder()
* .sizeInGb(123)
* .volumeType("volumeType")
* // the properties below are optional
* .iops(123)
* .throughput(123)
* .build())
* // the properties below are optional
* .volumesPerInstance(123)
* .build()))
* .ebsOptimized(false)
* .build())
* .weightedCapacity(123)
* .build()))
* .launchSpecifications(InstanceFleetProvisioningSpecificationsProperty.builder()
* .onDemandSpecification(OnDemandProvisioningSpecificationProperty.builder()
* .allocationStrategy("allocationStrategy")
* .build())
* .spotSpecification(SpotProvisioningSpecificationProperty.builder()
* .timeoutAction("timeoutAction")
* .timeoutDurationMinutes(123)
* // the properties below are optional
* .allocationStrategy("allocationStrategy")
* .blockDurationMinutes(123)
* .build())
* .build())
* .name("name")
* .targetOnDemandCapacity(123)
* .targetSpotCapacity(123)
* .build())
* .masterInstanceGroup(InstanceGroupConfigProperty.builder()
* .instanceCount(123)
* .instanceType("instanceType")
* // the properties below are optional
* .autoScalingPolicy(AutoScalingPolicyProperty.builder()
* .constraints(ScalingConstraintsProperty.builder()
* .maxCapacity(123)
* .minCapacity(123)
* .build())
* .rules(List.of(ScalingRuleProperty.builder()
* .action(ScalingActionProperty.builder()
* .simpleScalingPolicyConfiguration(SimpleScalingPolicyConfigurationProperty.builder()
* .scalingAdjustment(123)
* // the properties below are optional
* .adjustmentType("adjustmentType")
* .coolDown(123)
* .build())
* // the properties below are optional
* .market("market")
* .build())
* .name("name")
* .trigger(ScalingTriggerProperty.builder()
* .cloudWatchAlarmDefinition(CloudWatchAlarmDefinitionProperty.builder()
* .comparisonOperator("comparisonOperator")
* .metricName("metricName")
* .period(123)
* .threshold(123)
* // the properties below are optional
* .dimensions(List.of(MetricDimensionProperty.builder()
* .key("key")
* .value("value")
* .build()))
* .evaluationPeriods(123)
* .namespace("namespace")
* .statistic("statistic")
* .unit("unit")
* .build())
* .build())
* // the properties below are optional
* .description("description")
* .build()))
* .build())
* .bidPrice("bidPrice")
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsConfiguration(EbsConfigurationProperty.builder()
* .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder()
* .volumeSpecification(VolumeSpecificationProperty.builder()
* .sizeInGb(123)
* .volumeType("volumeType")
* // the properties below are optional
* .iops(123)
* .throughput(123)
* .build())
* // the properties below are optional
* .volumesPerInstance(123)
* .build()))
* .ebsOptimized(false)
* .build())
* .market("market")
* .name("name")
* .build())
* .placement(PlacementTypeProperty.builder()
* .availabilityZone("availabilityZone")
* .build())
* .serviceAccessSecurityGroup("serviceAccessSecurityGroup")
* .taskInstanceFleets(List.of(InstanceFleetConfigProperty.builder()
* .instanceTypeConfigs(List.of(InstanceTypeConfigProperty.builder()
* .instanceType("instanceType")
* // the properties below are optional
* .bidPrice("bidPrice")
* .bidPriceAsPercentageOfOnDemandPrice(123)
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsConfiguration(EbsConfigurationProperty.builder()
* .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder()
* .volumeSpecification(VolumeSpecificationProperty.builder()
* .sizeInGb(123)
* .volumeType("volumeType")
* // the properties below are optional
* .iops(123)
* .throughput(123)
* .build())
* // the properties below are optional
* .volumesPerInstance(123)
* .build()))
* .ebsOptimized(false)
* .build())
* .weightedCapacity(123)
* .build()))
* .launchSpecifications(InstanceFleetProvisioningSpecificationsProperty.builder()
* .onDemandSpecification(OnDemandProvisioningSpecificationProperty.builder()
* .allocationStrategy("allocationStrategy")
* .build())
* .spotSpecification(SpotProvisioningSpecificationProperty.builder()
* .timeoutAction("timeoutAction")
* .timeoutDurationMinutes(123)
* // the properties below are optional
* .allocationStrategy("allocationStrategy")
* .blockDurationMinutes(123)
* .build())
* .build())
* .name("name")
* .targetOnDemandCapacity(123)
* .targetSpotCapacity(123)
* .build()))
* .taskInstanceGroups(List.of(InstanceGroupConfigProperty.builder()
* .instanceCount(123)
* .instanceType("instanceType")
* // the properties below are optional
* .autoScalingPolicy(AutoScalingPolicyProperty.builder()
* .constraints(ScalingConstraintsProperty.builder()
* .maxCapacity(123)
* .minCapacity(123)
* .build())
* .rules(List.of(ScalingRuleProperty.builder()
* .action(ScalingActionProperty.builder()
* .simpleScalingPolicyConfiguration(SimpleScalingPolicyConfigurationProperty.builder()
* .scalingAdjustment(123)
* // the properties below are optional
* .adjustmentType("adjustmentType")
* .coolDown(123)
* .build())
* // the properties below are optional
* .market("market")
* .build())
* .name("name")
* .trigger(ScalingTriggerProperty.builder()
* .cloudWatchAlarmDefinition(CloudWatchAlarmDefinitionProperty.builder()
* .comparisonOperator("comparisonOperator")
* .metricName("metricName")
* .period(123)
* .threshold(123)
* // the properties below are optional
* .dimensions(List.of(MetricDimensionProperty.builder()
* .key("key")
* .value("value")
* .build()))
* .evaluationPeriods(123)
* .namespace("namespace")
* .statistic("statistic")
* .unit("unit")
* .build())
* .build())
* // the properties below are optional
* .description("description")
* .build()))
* .build())
* .bidPrice("bidPrice")
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsConfiguration(EbsConfigurationProperty.builder()
* .ebsBlockDeviceConfigs(List.of(EbsBlockDeviceConfigProperty.builder()
* .volumeSpecification(VolumeSpecificationProperty.builder()
* .sizeInGb(123)
* .volumeType("volumeType")
* // the properties below are optional
* .iops(123)
* .throughput(123)
* .build())
* // the properties below are optional
* .volumesPerInstance(123)
* .build()))
* .ebsOptimized(false)
* .build())
* .market("market")
* .name("name")
* .build()))
* .terminationProtected(false)
* .unhealthyNodeReplacement(false)
* .build())
* .jobFlowRole("jobFlowRole")
* .name("name")
* .serviceRole("serviceRole")
* // the properties below are optional
* .additionalInfo(additionalInfo)
* .applications(List.of(ApplicationProperty.builder()
* .additionalInfo(Map.of(
* "additionalInfoKey", "additionalInfo"))
* .args(List.of("args"))
* .name("name")
* .version("version")
* .build()))
* .autoScalingRole("autoScalingRole")
* .autoTerminationPolicy(AutoTerminationPolicyProperty.builder()
* .idleTimeout(123)
* .build())
* .bootstrapActions(List.of(BootstrapActionConfigProperty.builder()
* .name("name")
* .scriptBootstrapAction(ScriptBootstrapActionConfigProperty.builder()
* .path("path")
* // the properties below are optional
* .args(List.of("args"))
* .build())
* .build()))
* .configurations(List.of(ConfigurationProperty.builder()
* .classification("classification")
* .configurationProperties(Map.of(
* "configurationPropertiesKey", "configurationProperties"))
* .configurations(List.of(configurationProperty_))
* .build()))
* .customAmiId("customAmiId")
* .ebsRootVolumeIops(123)
* .ebsRootVolumeSize(123)
* .ebsRootVolumeThroughput(123)
* .kerberosAttributes(KerberosAttributesProperty.builder()
* .kdcAdminPassword("kdcAdminPassword")
* .realm("realm")
* // the properties below are optional
* .adDomainJoinPassword("adDomainJoinPassword")
* .adDomainJoinUser("adDomainJoinUser")
* .crossRealmTrustPrincipalPassword("crossRealmTrustPrincipalPassword")
* .build())
* .logEncryptionKmsKeyId("logEncryptionKmsKeyId")
* .logUri("logUri")
* .managedScalingPolicy(ManagedScalingPolicyProperty.builder()
* .computeLimits(ComputeLimitsProperty.builder()
* .maximumCapacityUnits(123)
* .minimumCapacityUnits(123)
* .unitType("unitType")
* // the properties below are optional
* .maximumCoreCapacityUnits(123)
* .maximumOnDemandCapacityUnits(123)
* .build())
* .build())
* .osReleaseLabel("osReleaseLabel")
* .placementGroupConfigs(List.of(PlacementGroupConfigProperty.builder()
* .instanceRole("instanceRole")
* // the properties below are optional
* .placementStrategy("placementStrategy")
* .build()))
* .releaseLabel("releaseLabel")
* .scaleDownBehavior("scaleDownBehavior")
* .securityConfiguration("securityConfiguration")
* .stepConcurrencyLevel(123)
* .steps(List.of(StepConfigProperty.builder()
* .hadoopJarStep(HadoopJarStepConfigProperty.builder()
* .jar("jar")
* // the properties below are optional
* .args(List.of("args"))
* .mainClass("mainClass")
* .stepProperties(List.of(KeyValueProperty.builder()
* .key("key")
* .value("value")
* .build()))
* .build())
* .name("name")
* // the properties below are optional
* .actionOnFailure("actionOnFailure")
* .build()))
* .tags(List.of(CfnTag.builder()
* .key("key")
* .value("value")
* .build()))
* .visibleToAllUsers(false)
* .build();
* ```
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html)
*/
public interface CfnClusterProps {
/**
* A JSON string for selecting additional features.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-additionalinfo)
*/
public fun additionalInfo(): Any? = unwrap(this).getAdditionalInfo()
/**
* The applications to install on this cluster, for example, Spark, Flink, Oozie, Zeppelin, and so
* on.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-applications)
*/
public fun applications(): Any? = unwrap(this).getApplications()
/**
* An IAM role for automatic scaling policies.
*
* The default role is `EMR_AutoScaling_DefaultRole` . The IAM role provides permissions that the
* automatic scaling feature requires to launch and terminate Amazon EC2 instances in an instance
* group.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-autoscalingrole)
*/
public fun autoScalingRole(): String? = unwrap(this).getAutoScalingRole()
/**
* An auto-termination policy for an Amazon EMR cluster.
*
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-autoterminationpolicy)
*/
public fun autoTerminationPolicy(): Any? = unwrap(this).getAutoTerminationPolicy()
/**
* A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-bootstrapactions)
*/
public fun bootstrapActions(): Any? = unwrap(this).getBootstrapActions()
/**
* Applies only to Amazon EMR releases 4.x and later. The list of configurations that are supplied
* to the Amazon EMR cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-configurations)
*/
public fun configurations(): Any? = unwrap(this).getConfigurations()
/**
* Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom Amazon EBS-backed
* Linux AMI if the cluster uses a custom AMI.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-customamiid)
*/
public fun customAmiId(): String? = unwrap(this).getCustomAmiId()
/**
* The IOPS, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon
* EC2 instance.
*
* Available in Amazon EMR releases 6.15.0 and later.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-ebsrootvolumeiops)
*/
public fun ebsRootVolumeIops(): Number? = unwrap(this).getEbsRootVolumeIops()
/**
* The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each
* Amazon EC2 instance.
*
* Available in Amazon EMR releases 4.x and later.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-ebsrootvolumesize)
*/
public fun ebsRootVolumeSize(): Number? = unwrap(this).getEbsRootVolumeSize()
/**
* The throughput, in MiB/s, of the Amazon EBS root device volume of the Linux AMI that is used
* for each Amazon EC2 instance.
*
* Available in Amazon EMR releases 6.15.0 and later.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-ebsrootvolumethroughput)
*/
public fun ebsRootVolumeThroughput(): Number? = unwrap(this).getEbsRootVolumeThroughput()
/**
* A specification of the number and type of Amazon EC2 instances.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-instances)
*/
public fun instances(): Any
/**
* Also called instance profile and Amazon EC2 role.
*
* An IAM role for an Amazon EMR cluster. The Amazon EC2 instances of the cluster assume this
* role. The default role is `EMR_EC2_DefaultRole` . In order to use the default role, you must have
* already created it using the AWS CLI or console.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-jobflowrole)
*/
public fun jobFlowRole(): String
/**
* 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
* *Amazon EMR Management Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-kerberosattributes)
*/
public fun kerberosAttributes(): Any? = unwrap(this).getKerberosAttributes()
/**
* The AWS KMS key used for encrypting log files.
*
* This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR 6.0.0.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-logencryptionkmskeyid)
*/
public fun logEncryptionKmsKeyId(): String? = unwrap(this).getLogEncryptionKmsKeyId()
/**
* The path to the Amazon S3 location where logs for this cluster are stored.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-loguri)
*/
public fun logUri(): String? = unwrap(this).getLogUri()
/**
* Creates or updates a managed scaling policy for an Amazon EMR cluster.
*
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances that
* can be added or terminated from a cluster. The policy only applies to the core and task nodes. The
* master node cannot be scaled after initial configuration.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-managedscalingpolicy)
*/
public fun managedScalingPolicy(): Any? = unwrap(this).getManagedScalingPolicy()
/**
* The name of the cluster.
*
* This parameter can't contain the characters <, >, $, |, or ` (backtick).
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-name)
*/
public fun name(): String
/**
* The Amazon Linux release specified in a cluster launch RunJobFlow request.
*
* If no Amazon Linux release was specified, the default Amazon Linux release is shown in the
* response.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-osreleaselabel)
*/
public fun osReleaseLabel(): String? = unwrap(this).getOsReleaseLabel()
/**
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-placementgroupconfigs)
*/
public fun placementGroupConfigs(): Any? = unwrap(this).getPlacementGroupConfigs()
/**
* The Amazon EMR release label, which determines the version of open-source application packages
* installed on the cluster.
*
* Release labels are in the form `emr-x.x.x` , where x.x.x is an Amazon EMR release version such
* as `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/) . The release
* label applies only to Amazon EMR releases version 4.0 and later. Earlier versions use `AmiVersion`
* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-releaselabel)
*/
public fun releaseLabel(): String? = unwrap(this).getReleaseLabel()
/**
* The way that individual Amazon EC2 instances terminate when an automatic scale-in activity
* occurs or an instance group is resized.
*
* `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. `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. `TERMINATE_AT_TASK_COMPLETION` is
* available only in Amazon EMR releases 4.1.0 and later, and is the default for versions of Amazon
* EMR earlier than 5.1.0.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-scaledownbehavior)
*/
public fun scaleDownBehavior(): String? = unwrap(this).getScaleDownBehavior()
/**
* The name of the security configuration applied to the cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-securityconfiguration)
*/
public fun securityConfiguration(): String? = unwrap(this).getSecurityConfiguration()
/**
* The IAM role that Amazon EMR assumes in order to access AWS resources on your behalf.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-servicerole)
*/
public fun serviceRole(): String
/**
* Specifies the number of steps that can be executed concurrently.
*
* The default value is `1` . The maximum value is `256` .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-stepconcurrencylevel)
*/
public fun stepConcurrencyLevel(): Number? = unwrap(this).getStepConcurrencyLevel()
/**
* A list of steps to run.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-steps)
*/
public fun steps(): Any? = unwrap(this).getSteps()
/**
* A list of tags associated with a cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-tags)
*/
public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
/**
* Indicates whether the cluster is visible to all IAM users of the AWS account associated with
* the cluster.
*
* If this value is set to `true` , all IAM users of that AWS account can view and manage the
* cluster if they have the proper policy permissions set. If this value is `false` , only the IAM
* user that created the cluster can view and manage it. This value can be changed using the
* SetVisibleToAllUsers action.
*
*
* When you create clusters directly through the EMR console or API, this value is set to `true`
* by default. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false` .
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-visibletoallusers)
*/
public fun visibleToAllUsers(): Any? = unwrap(this).getVisibleToAllUsers()
/**
* A builder for [CfnClusterProps]
*/
@CdkDslMarker
public interface Builder {
/**
* @param additionalInfo A JSON string for selecting additional features.
*/
public fun additionalInfo(additionalInfo: Any)
/**
* @param applications The applications to install on this cluster, for example, Spark, Flink,
* Oozie, Zeppelin, and so on.
*/
public fun applications(applications: IResolvable)
/**
* @param applications The applications to install on this cluster, for example, Spark, Flink,
* Oozie, Zeppelin, and so on.
*/
public fun applications(applications: List)
/**
* @param applications The applications to install on this cluster, for example, Spark, Flink,
* Oozie, Zeppelin, and so on.
*/
public fun applications(vararg applications: Any)
/**
* @param autoScalingRole An IAM role for automatic scaling policies.
* The default role is `EMR_AutoScaling_DefaultRole` . The IAM role provides permissions that
* the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an
* instance group.
*/
public fun autoScalingRole(autoScalingRole: String)
/**
* @param autoTerminationPolicy An auto-termination policy for an Amazon EMR cluster.
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*/
public fun autoTerminationPolicy(autoTerminationPolicy: IResolvable)
/**
* @param autoTerminationPolicy An auto-termination policy for an Amazon EMR cluster.
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*/
public
fun autoTerminationPolicy(autoTerminationPolicy: CfnCluster.AutoTerminationPolicyProperty)
/**
* @param autoTerminationPolicy An auto-termination policy for an Amazon EMR cluster.
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("8f3240acf26a1c9c7b4ba81bd6a1e25256e5be8202b4c67f86b93242c1944044")
public
fun autoTerminationPolicy(autoTerminationPolicy: CfnCluster.AutoTerminationPolicyProperty.Builder.() -> Unit)
/**
* @param bootstrapActions A list of bootstrap actions to run before Hadoop starts on the
* cluster nodes.
*/
public fun bootstrapActions(bootstrapActions: IResolvable)
/**
* @param bootstrapActions A list of bootstrap actions to run before Hadoop starts on the
* cluster nodes.
*/
public fun bootstrapActions(bootstrapActions: List)
/**
* @param bootstrapActions A list of bootstrap actions to run before Hadoop starts on the
* cluster nodes.
*/
public fun bootstrapActions(vararg bootstrapActions: Any)
/**
* @param configurations Applies only to Amazon EMR releases 4.x and later. The list of
* configurations that are supplied to the Amazon EMR cluster.
*/
public fun configurations(configurations: IResolvable)
/**
* @param configurations Applies only to Amazon EMR releases 4.x and later. The list of
* configurations that are supplied to the Amazon EMR cluster.
*/
public fun configurations(configurations: List)
/**
* @param configurations Applies only to Amazon EMR releases 4.x and later. The list of
* configurations that are supplied to the Amazon EMR cluster.
*/
public fun configurations(vararg configurations: Any)
/**
* @param customAmiId Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom
* Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
*/
public fun customAmiId(customAmiId: String)
/**
* @param ebsRootVolumeIops The IOPS, of the Amazon EBS root device volume of the Linux AMI that
* is used for each Amazon EC2 instance.
* Available in Amazon EMR releases 6.15.0 and later.
*/
public fun ebsRootVolumeIops(ebsRootVolumeIops: Number)
/**
* @param ebsRootVolumeSize The size, in GiB, of the Amazon EBS root device volume of the Linux
* AMI that is used for each Amazon EC2 instance.
* Available in Amazon EMR releases 4.x and later.
*/
public fun ebsRootVolumeSize(ebsRootVolumeSize: Number)
/**
* @param ebsRootVolumeThroughput The throughput, in MiB/s, of the Amazon EBS root device volume
* of the Linux AMI that is used for each Amazon EC2 instance.
* Available in Amazon EMR releases 6.15.0 and later.
*/
public fun ebsRootVolumeThroughput(ebsRootVolumeThroughput: Number)
/**
* @param instances A specification of the number and type of Amazon EC2 instances.
*/
public fun instances(instances: IResolvable)
/**
* @param instances A specification of the number and type of Amazon EC2 instances.
*/
public fun instances(instances: CfnCluster.JobFlowInstancesConfigProperty)
/**
* @param instances A specification of the number and type of Amazon EC2 instances.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("c3187d564387336529962c72fd2106d28abad87dda841f9a9006103caf648cb4")
public fun instances(instances: CfnCluster.JobFlowInstancesConfigProperty.Builder.() -> Unit)
/**
* @param jobFlowRole Also called instance profile and Amazon EC2 role.
* An IAM role for an Amazon EMR cluster. The Amazon EC2 instances of the cluster assume this
* role. The default role is `EMR_EC2_DefaultRole` . In order to use the default role, you must
* have already created it using the AWS CLI or console.
*/
public fun jobFlowRole(jobFlowRole: String)
/**
* @param 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
* *Amazon EMR Management Guide* .
*/
public fun kerberosAttributes(kerberosAttributes: IResolvable)
/**
* @param 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
* *Amazon EMR Management Guide* .
*/
public fun kerberosAttributes(kerberosAttributes: CfnCluster.KerberosAttributesProperty)
/**
* @param 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
* *Amazon EMR Management Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("d934421d8d810d6cbcf3885258551a0173093dbe4de5d5a3c75038b49cb30143")
public
fun kerberosAttributes(kerberosAttributes: CfnCluster.KerberosAttributesProperty.Builder.() -> Unit)
/**
* @param logEncryptionKmsKeyId The AWS KMS key used for encrypting log files.
* This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR
* 6.0.0.
*/
public fun logEncryptionKmsKeyId(logEncryptionKmsKeyId: String)
/**
* @param logUri The path to the Amazon S3 location where logs for this cluster are stored.
*/
public fun logUri(logUri: String)
/**
* @param managedScalingPolicy Creates or updates a managed scaling policy for an Amazon EMR
* cluster.
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*/
public fun managedScalingPolicy(managedScalingPolicy: IResolvable)
/**
* @param managedScalingPolicy Creates or updates a managed scaling policy for an Amazon EMR
* cluster.
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*/
public fun managedScalingPolicy(managedScalingPolicy: CfnCluster.ManagedScalingPolicyProperty)
/**
* @param managedScalingPolicy Creates or updates a managed scaling policy for an Amazon EMR
* cluster.
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("dc9c5ff76a6f289ebce415acdd74380dda47578b061a80d4d2045428f21afe26")
public
fun managedScalingPolicy(managedScalingPolicy: CfnCluster.ManagedScalingPolicyProperty.Builder.() -> Unit)
/**
* @param name The name of the cluster.
* This parameter can't contain the characters <, >, $, |, or ` (backtick).
*/
public fun name(name: String)
/**
* @param osReleaseLabel The Amazon Linux release specified in a cluster launch RunJobFlow
* request.
* If no Amazon Linux release was specified, the default Amazon Linux release is shown in the
* response.
*/
public fun osReleaseLabel(osReleaseLabel: String)
/**
* @param placementGroupConfigs the value to be set.
*/
public fun placementGroupConfigs(placementGroupConfigs: IResolvable)
/**
* @param placementGroupConfigs the value to be set.
*/
public fun placementGroupConfigs(placementGroupConfigs: List)
/**
* @param placementGroupConfigs the value to be set.
*/
public fun placementGroupConfigs(vararg placementGroupConfigs: Any)
/**
* @param releaseLabel The Amazon EMR release label, which determines the version of open-source
* application packages installed on the cluster.
* Release labels are in the form `emr-x.x.x` , where x.x.x is an Amazon EMR release version
* such as `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/)
* . The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions
* use `AmiVersion` .
*/
public fun releaseLabel(releaseLabel: String)
/**
* @param scaleDownBehavior The way that individual Amazon EC2 instances terminate when an
* automatic scale-in activity occurs or an instance group is resized.
* `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. `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.
* `TERMINATE_AT_TASK_COMPLETION` is available only in Amazon EMR releases 4.1.0 and later, and is
* the default for versions of Amazon EMR earlier than 5.1.0.
*/
public fun scaleDownBehavior(scaleDownBehavior: String)
/**
* @param securityConfiguration The name of the security configuration applied to the cluster.
*/
public fun securityConfiguration(securityConfiguration: String)
/**
* @param serviceRole The IAM role that Amazon EMR assumes in order to access AWS resources on
* your behalf.
*/
public fun serviceRole(serviceRole: String)
/**
* @param stepConcurrencyLevel Specifies the number of steps that can be executed concurrently.
* The default value is `1` . The maximum value is `256` .
*/
public fun stepConcurrencyLevel(stepConcurrencyLevel: Number)
/**
* @param steps A list of steps to run.
*/
public fun steps(steps: IResolvable)
/**
* @param steps A list of steps to run.
*/
public fun steps(steps: List)
/**
* @param steps A list of steps to run.
*/
public fun steps(vararg steps: Any)
/**
* @param tags A list of tags associated with a cluster.
*/
public fun tags(tags: List)
/**
* @param tags A list of tags associated with a cluster.
*/
public fun tags(vararg tags: CfnTag)
/**
* @param visibleToAllUsers Indicates whether the cluster is visible to all IAM users of the AWS
* account associated with the cluster.
* If this value is set to `true` , all IAM users of that AWS account can view and manage the
* cluster if they have the proper policy permissions set. If this value is `false` , only the IAM
* user that created the cluster can view and manage it. This value can be changed using the
* SetVisibleToAllUsers action.
*
*
* When you create clusters directly through the EMR console or API, this value is set to `true`
* by default. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`
* .
*/
public fun visibleToAllUsers(visibleToAllUsers: Boolean)
/**
* @param visibleToAllUsers Indicates whether the cluster is visible to all IAM users of the AWS
* account associated with the cluster.
* If this value is set to `true` , all IAM users of that AWS account can view and manage the
* cluster if they have the proper policy permissions set. If this value is `false` , only the IAM
* user that created the cluster can view and manage it. This value can be changed using the
* SetVisibleToAllUsers action.
*
*
* When you create clusters directly through the EMR console or API, this value is set to `true`
* by default. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`
* .
*/
public fun visibleToAllUsers(visibleToAllUsers: IResolvable)
}
private class BuilderImpl : Builder {
private val cdkBuilder: software.amazon.awscdk.services.emr.CfnClusterProps.Builder =
software.amazon.awscdk.services.emr.CfnClusterProps.builder()
/**
* @param additionalInfo A JSON string for selecting additional features.
*/
override fun additionalInfo(additionalInfo: Any) {
cdkBuilder.additionalInfo(additionalInfo)
}
/**
* @param applications The applications to install on this cluster, for example, Spark, Flink,
* Oozie, Zeppelin, and so on.
*/
override fun applications(applications: IResolvable) {
cdkBuilder.applications(applications.let(IResolvable.Companion::unwrap))
}
/**
* @param applications The applications to install on this cluster, for example, Spark, Flink,
* Oozie, Zeppelin, and so on.
*/
override fun applications(applications: List) {
cdkBuilder.applications(applications.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param applications The applications to install on this cluster, for example, Spark, Flink,
* Oozie, Zeppelin, and so on.
*/
override fun applications(vararg applications: Any): Unit = applications(applications.toList())
/**
* @param autoScalingRole An IAM role for automatic scaling policies.
* The default role is `EMR_AutoScaling_DefaultRole` . The IAM role provides permissions that
* the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an
* instance group.
*/
override fun autoScalingRole(autoScalingRole: String) {
cdkBuilder.autoScalingRole(autoScalingRole)
}
/**
* @param autoTerminationPolicy An auto-termination policy for an Amazon EMR cluster.
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*/
override fun autoTerminationPolicy(autoTerminationPolicy: IResolvable) {
cdkBuilder.autoTerminationPolicy(autoTerminationPolicy.let(IResolvable.Companion::unwrap))
}
/**
* @param autoTerminationPolicy An auto-termination policy for an Amazon EMR cluster.
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*/
override
fun autoTerminationPolicy(autoTerminationPolicy: CfnCluster.AutoTerminationPolicyProperty) {
cdkBuilder.autoTerminationPolicy(autoTerminationPolicy.let(CfnCluster.AutoTerminationPolicyProperty.Companion::unwrap))
}
/**
* @param autoTerminationPolicy An auto-termination policy for an Amazon EMR cluster.
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("8f3240acf26a1c9c7b4ba81bd6a1e25256e5be8202b4c67f86b93242c1944044")
override
fun autoTerminationPolicy(autoTerminationPolicy: CfnCluster.AutoTerminationPolicyProperty.Builder.() -> Unit):
Unit =
autoTerminationPolicy(CfnCluster.AutoTerminationPolicyProperty(autoTerminationPolicy))
/**
* @param bootstrapActions A list of bootstrap actions to run before Hadoop starts on the
* cluster nodes.
*/
override fun bootstrapActions(bootstrapActions: IResolvable) {
cdkBuilder.bootstrapActions(bootstrapActions.let(IResolvable.Companion::unwrap))
}
/**
* @param bootstrapActions A list of bootstrap actions to run before Hadoop starts on the
* cluster nodes.
*/
override fun bootstrapActions(bootstrapActions: List) {
cdkBuilder.bootstrapActions(bootstrapActions.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param bootstrapActions A list of bootstrap actions to run before Hadoop starts on the
* cluster nodes.
*/
override fun bootstrapActions(vararg bootstrapActions: Any): Unit =
bootstrapActions(bootstrapActions.toList())
/**
* @param configurations Applies only to Amazon EMR releases 4.x and later. The list of
* configurations that are supplied to the Amazon EMR cluster.
*/
override fun configurations(configurations: IResolvable) {
cdkBuilder.configurations(configurations.let(IResolvable.Companion::unwrap))
}
/**
* @param configurations Applies only to Amazon EMR releases 4.x and later. The list of
* configurations that are supplied to the Amazon EMR cluster.
*/
override fun configurations(configurations: List) {
cdkBuilder.configurations(configurations.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param configurations Applies only to Amazon EMR releases 4.x and later. The list of
* configurations that are supplied to the Amazon EMR cluster.
*/
override fun configurations(vararg configurations: Any): Unit =
configurations(configurations.toList())
/**
* @param customAmiId Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom
* Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
*/
override fun customAmiId(customAmiId: String) {
cdkBuilder.customAmiId(customAmiId)
}
/**
* @param ebsRootVolumeIops The IOPS, of the Amazon EBS root device volume of the Linux AMI that
* is used for each Amazon EC2 instance.
* Available in Amazon EMR releases 6.15.0 and later.
*/
override fun ebsRootVolumeIops(ebsRootVolumeIops: Number) {
cdkBuilder.ebsRootVolumeIops(ebsRootVolumeIops)
}
/**
* @param ebsRootVolumeSize The size, in GiB, of the Amazon EBS root device volume of the Linux
* AMI that is used for each Amazon EC2 instance.
* Available in Amazon EMR releases 4.x and later.
*/
override fun ebsRootVolumeSize(ebsRootVolumeSize: Number) {
cdkBuilder.ebsRootVolumeSize(ebsRootVolumeSize)
}
/**
* @param ebsRootVolumeThroughput The throughput, in MiB/s, of the Amazon EBS root device volume
* of the Linux AMI that is used for each Amazon EC2 instance.
* Available in Amazon EMR releases 6.15.0 and later.
*/
override fun ebsRootVolumeThroughput(ebsRootVolumeThroughput: Number) {
cdkBuilder.ebsRootVolumeThroughput(ebsRootVolumeThroughput)
}
/**
* @param instances A specification of the number and type of Amazon EC2 instances.
*/
override fun instances(instances: IResolvable) {
cdkBuilder.instances(instances.let(IResolvable.Companion::unwrap))
}
/**
* @param instances A specification of the number and type of Amazon EC2 instances.
*/
override fun instances(instances: CfnCluster.JobFlowInstancesConfigProperty) {
cdkBuilder.instances(instances.let(CfnCluster.JobFlowInstancesConfigProperty.Companion::unwrap))
}
/**
* @param instances A specification of the number and type of Amazon EC2 instances.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("c3187d564387336529962c72fd2106d28abad87dda841f9a9006103caf648cb4")
override fun instances(instances: CfnCluster.JobFlowInstancesConfigProperty.Builder.() -> Unit):
Unit = instances(CfnCluster.JobFlowInstancesConfigProperty(instances))
/**
* @param jobFlowRole Also called instance profile and Amazon EC2 role.
* An IAM role for an Amazon EMR cluster. The Amazon EC2 instances of the cluster assume this
* role. The default role is `EMR_EC2_DefaultRole` . In order to use the default role, you must
* have already created it using the AWS CLI or console.
*/
override fun jobFlowRole(jobFlowRole: String) {
cdkBuilder.jobFlowRole(jobFlowRole)
}
/**
* @param 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
* *Amazon EMR Management Guide* .
*/
override fun kerberosAttributes(kerberosAttributes: IResolvable) {
cdkBuilder.kerberosAttributes(kerberosAttributes.let(IResolvable.Companion::unwrap))
}
/**
* @param 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
* *Amazon EMR Management Guide* .
*/
override fun kerberosAttributes(kerberosAttributes: CfnCluster.KerberosAttributesProperty) {
cdkBuilder.kerberosAttributes(kerberosAttributes.let(CfnCluster.KerberosAttributesProperty.Companion::unwrap))
}
/**
* @param 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
* *Amazon EMR Management Guide* .
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("d934421d8d810d6cbcf3885258551a0173093dbe4de5d5a3c75038b49cb30143")
override
fun kerberosAttributes(kerberosAttributes: CfnCluster.KerberosAttributesProperty.Builder.() -> Unit):
Unit = kerberosAttributes(CfnCluster.KerberosAttributesProperty(kerberosAttributes))
/**
* @param logEncryptionKmsKeyId The AWS KMS key used for encrypting log files.
* This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR
* 6.0.0.
*/
override fun logEncryptionKmsKeyId(logEncryptionKmsKeyId: String) {
cdkBuilder.logEncryptionKmsKeyId(logEncryptionKmsKeyId)
}
/**
* @param logUri The path to the Amazon S3 location where logs for this cluster are stored.
*/
override fun logUri(logUri: String) {
cdkBuilder.logUri(logUri)
}
/**
* @param managedScalingPolicy Creates or updates a managed scaling policy for an Amazon EMR
* cluster.
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*/
override fun managedScalingPolicy(managedScalingPolicy: IResolvable) {
cdkBuilder.managedScalingPolicy(managedScalingPolicy.let(IResolvable.Companion::unwrap))
}
/**
* @param managedScalingPolicy Creates or updates a managed scaling policy for an Amazon EMR
* cluster.
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*/
override
fun managedScalingPolicy(managedScalingPolicy: CfnCluster.ManagedScalingPolicyProperty) {
cdkBuilder.managedScalingPolicy(managedScalingPolicy.let(CfnCluster.ManagedScalingPolicyProperty.Companion::unwrap))
}
/**
* @param managedScalingPolicy Creates or updates a managed scaling policy for an Amazon EMR
* cluster.
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*/
@kotlin.Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("dc9c5ff76a6f289ebce415acdd74380dda47578b061a80d4d2045428f21afe26")
override
fun managedScalingPolicy(managedScalingPolicy: CfnCluster.ManagedScalingPolicyProperty.Builder.() -> Unit):
Unit = managedScalingPolicy(CfnCluster.ManagedScalingPolicyProperty(managedScalingPolicy))
/**
* @param name The name of the cluster.
* This parameter can't contain the characters <, >, $, |, or ` (backtick).
*/
override fun name(name: String) {
cdkBuilder.name(name)
}
/**
* @param osReleaseLabel The Amazon Linux release specified in a cluster launch RunJobFlow
* request.
* If no Amazon Linux release was specified, the default Amazon Linux release is shown in the
* response.
*/
override fun osReleaseLabel(osReleaseLabel: String) {
cdkBuilder.osReleaseLabel(osReleaseLabel)
}
/**
* @param placementGroupConfigs the value to be set.
*/
override fun placementGroupConfigs(placementGroupConfigs: IResolvable) {
cdkBuilder.placementGroupConfigs(placementGroupConfigs.let(IResolvable.Companion::unwrap))
}
/**
* @param placementGroupConfigs the value to be set.
*/
override fun placementGroupConfigs(placementGroupConfigs: List) {
cdkBuilder.placementGroupConfigs(placementGroupConfigs.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param placementGroupConfigs the value to be set.
*/
override fun placementGroupConfigs(vararg placementGroupConfigs: Any): Unit =
placementGroupConfigs(placementGroupConfigs.toList())
/**
* @param releaseLabel The Amazon EMR release label, which determines the version of open-source
* application packages installed on the cluster.
* Release labels are in the form `emr-x.x.x` , where x.x.x is an Amazon EMR release version
* such as `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/)
* . The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions
* use `AmiVersion` .
*/
override fun releaseLabel(releaseLabel: String) {
cdkBuilder.releaseLabel(releaseLabel)
}
/**
* @param scaleDownBehavior The way that individual Amazon EC2 instances terminate when an
* automatic scale-in activity occurs or an instance group is resized.
* `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. `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.
* `TERMINATE_AT_TASK_COMPLETION` is available only in Amazon EMR releases 4.1.0 and later, and is
* the default for versions of Amazon EMR earlier than 5.1.0.
*/
override fun scaleDownBehavior(scaleDownBehavior: String) {
cdkBuilder.scaleDownBehavior(scaleDownBehavior)
}
/**
* @param securityConfiguration The name of the security configuration applied to the cluster.
*/
override fun securityConfiguration(securityConfiguration: String) {
cdkBuilder.securityConfiguration(securityConfiguration)
}
/**
* @param serviceRole The IAM role that Amazon EMR assumes in order to access AWS resources on
* your behalf.
*/
override fun serviceRole(serviceRole: String) {
cdkBuilder.serviceRole(serviceRole)
}
/**
* @param stepConcurrencyLevel Specifies the number of steps that can be executed concurrently.
* The default value is `1` . The maximum value is `256` .
*/
override fun stepConcurrencyLevel(stepConcurrencyLevel: Number) {
cdkBuilder.stepConcurrencyLevel(stepConcurrencyLevel)
}
/**
* @param steps A list of steps to run.
*/
override fun steps(steps: IResolvable) {
cdkBuilder.steps(steps.let(IResolvable.Companion::unwrap))
}
/**
* @param steps A list of steps to run.
*/
override fun steps(steps: List) {
cdkBuilder.steps(steps.map{CdkObjectWrappers.unwrap(it)})
}
/**
* @param steps A list of steps to run.
*/
override fun steps(vararg steps: Any): Unit = steps(steps.toList())
/**
* @param tags A list of tags associated with a cluster.
*/
override fun tags(tags: List) {
cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
}
/**
* @param tags A list of tags associated with a cluster.
*/
override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())
/**
* @param visibleToAllUsers Indicates whether the cluster is visible to all IAM users of the AWS
* account associated with the cluster.
* If this value is set to `true` , all IAM users of that AWS account can view and manage the
* cluster if they have the proper policy permissions set. If this value is `false` , only the IAM
* user that created the cluster can view and manage it. This value can be changed using the
* SetVisibleToAllUsers action.
*
*
* When you create clusters directly through the EMR console or API, this value is set to `true`
* by default. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`
* .
*/
override fun visibleToAllUsers(visibleToAllUsers: Boolean) {
cdkBuilder.visibleToAllUsers(visibleToAllUsers)
}
/**
* @param visibleToAllUsers Indicates whether the cluster is visible to all IAM users of the AWS
* account associated with the cluster.
* If this value is set to `true` , all IAM users of that AWS account can view and manage the
* cluster if they have the proper policy permissions set. If this value is `false` , only the IAM
* user that created the cluster can view and manage it. This value can be changed using the
* SetVisibleToAllUsers action.
*
*
* When you create clusters directly through the EMR console or API, this value is set to `true`
* by default. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`
* .
*/
override fun visibleToAllUsers(visibleToAllUsers: IResolvable) {
cdkBuilder.visibleToAllUsers(visibleToAllUsers.let(IResolvable.Companion::unwrap))
}
public fun build(): software.amazon.awscdk.services.emr.CfnClusterProps = cdkBuilder.build()
}
private class Wrapper(
cdkObject: software.amazon.awscdk.services.emr.CfnClusterProps,
) : CdkObject(cdkObject),
CfnClusterProps {
/**
* A JSON string for selecting additional features.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-additionalinfo)
*/
override fun additionalInfo(): Any? = unwrap(this).getAdditionalInfo()
/**
* The applications to install on this cluster, for example, Spark, Flink, Oozie, Zeppelin, and
* so on.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-applications)
*/
override fun applications(): Any? = unwrap(this).getApplications()
/**
* An IAM role for automatic scaling policies.
*
* The default role is `EMR_AutoScaling_DefaultRole` . The IAM role provides permissions that
* the automatic scaling feature requires to launch and terminate Amazon EC2 instances in an
* instance group.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-autoscalingrole)
*/
override fun autoScalingRole(): String? = unwrap(this).getAutoScalingRole()
/**
* An auto-termination policy for an Amazon EMR cluster.
*
* An auto-termination policy defines the amount of idle time in seconds after which a cluster
* automatically terminates. For alternative cluster termination options, see [Control cluster
* termination](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html) .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-autoterminationpolicy)
*/
override fun autoTerminationPolicy(): Any? = unwrap(this).getAutoTerminationPolicy()
/**
* A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-bootstrapactions)
*/
override fun bootstrapActions(): Any? = unwrap(this).getBootstrapActions()
/**
* Applies only to Amazon EMR releases 4.x and later. The list of configurations that are
* supplied to the Amazon EMR cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-configurations)
*/
override fun configurations(): Any? = unwrap(this).getConfigurations()
/**
* Available only in Amazon EMR releases 5.7.0 and later. The ID of a custom Amazon EBS-backed
* Linux AMI if the cluster uses a custom AMI.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-customamiid)
*/
override fun customAmiId(): String? = unwrap(this).getCustomAmiId()
/**
* The IOPS, of the Amazon EBS root device volume of the Linux AMI that is used for each Amazon
* EC2 instance.
*
* Available in Amazon EMR releases 6.15.0 and later.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-ebsrootvolumeiops)
*/
override fun ebsRootVolumeIops(): Number? = unwrap(this).getEbsRootVolumeIops()
/**
* The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that is used for each
* Amazon EC2 instance.
*
* Available in Amazon EMR releases 4.x and later.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-ebsrootvolumesize)
*/
override fun ebsRootVolumeSize(): Number? = unwrap(this).getEbsRootVolumeSize()
/**
* The throughput, in MiB/s, of the Amazon EBS root device volume of the Linux AMI that is used
* for each Amazon EC2 instance.
*
* Available in Amazon EMR releases 6.15.0 and later.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-ebsrootvolumethroughput)
*/
override fun ebsRootVolumeThroughput(): Number? = unwrap(this).getEbsRootVolumeThroughput()
/**
* A specification of the number and type of Amazon EC2 instances.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-instances)
*/
override fun instances(): Any = unwrap(this).getInstances()
/**
* Also called instance profile and Amazon EC2 role.
*
* An IAM role for an Amazon EMR cluster. The Amazon EC2 instances of the cluster assume this
* role. The default role is `EMR_EC2_DefaultRole` . In order to use the default role, you must
* have already created it using the AWS CLI or console.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-jobflowrole)
*/
override fun jobFlowRole(): String = unwrap(this).getJobFlowRole()
/**
* 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
* *Amazon EMR Management Guide* .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-kerberosattributes)
*/
override fun kerberosAttributes(): Any? = unwrap(this).getKerberosAttributes()
/**
* The AWS KMS key used for encrypting log files.
*
* This attribute is only available with Amazon EMR 5.30.0 and later, excluding Amazon EMR
* 6.0.0.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-logencryptionkmskeyid)
*/
override fun logEncryptionKmsKeyId(): String? = unwrap(this).getLogEncryptionKmsKeyId()
/**
* The path to the Amazon S3 location where logs for this cluster are stored.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-loguri)
*/
override fun logUri(): String? = unwrap(this).getLogUri()
/**
* Creates or updates a managed scaling policy for an Amazon EMR cluster.
*
* The managed scaling policy defines the limits for resources, such as Amazon EC2 instances
* that can be added or terminated from a cluster. The policy only applies to the core and task
* nodes. The master node cannot be scaled after initial configuration.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-managedscalingpolicy)
*/
override fun managedScalingPolicy(): Any? = unwrap(this).getManagedScalingPolicy()
/**
* The name of the cluster.
*
* This parameter can't contain the characters <, >, $, |, or ` (backtick).
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-name)
*/
override fun name(): String = unwrap(this).getName()
/**
* The Amazon Linux release specified in a cluster launch RunJobFlow request.
*
* If no Amazon Linux release was specified, the default Amazon Linux release is shown in the
* response.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-osreleaselabel)
*/
override fun osReleaseLabel(): String? = unwrap(this).getOsReleaseLabel()
/**
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-placementgroupconfigs)
*/
override fun placementGroupConfigs(): Any? = unwrap(this).getPlacementGroupConfigs()
/**
* The Amazon EMR release label, which determines the version of open-source application
* packages installed on the cluster.
*
* Release labels are in the form `emr-x.x.x` , where x.x.x is an Amazon EMR release version
* such as `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/)
* . The release label applies only to Amazon EMR releases version 4.0 and later. Earlier versions
* use `AmiVersion` .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-releaselabel)
*/
override fun releaseLabel(): String? = unwrap(this).getReleaseLabel()
/**
* The way that individual Amazon EC2 instances terminate when an automatic scale-in activity
* occurs or an instance group is resized.
*
* `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. `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.
* `TERMINATE_AT_TASK_COMPLETION` is available only in Amazon EMR releases 4.1.0 and later, and is
* the default for versions of Amazon EMR earlier than 5.1.0.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-scaledownbehavior)
*/
override fun scaleDownBehavior(): String? = unwrap(this).getScaleDownBehavior()
/**
* The name of the security configuration applied to the cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-securityconfiguration)
*/
override fun securityConfiguration(): String? = unwrap(this).getSecurityConfiguration()
/**
* The IAM role that Amazon EMR assumes in order to access AWS resources on your behalf.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-servicerole)
*/
override fun serviceRole(): String = unwrap(this).getServiceRole()
/**
* Specifies the number of steps that can be executed concurrently.
*
* The default value is `1` . The maximum value is `256` .
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-stepconcurrencylevel)
*/
override fun stepConcurrencyLevel(): Number? = unwrap(this).getStepConcurrencyLevel()
/**
* A list of steps to run.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-steps)
*/
override fun steps(): Any? = unwrap(this).getSteps()
/**
* A list of tags associated with a cluster.
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-tags)
*/
override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
/**
* Indicates whether the cluster is visible to all IAM users of the AWS account associated with
* the cluster.
*
* If this value is set to `true` , all IAM users of that AWS account can view and manage the
* cluster if they have the proper policy permissions set. If this value is `false` , only the IAM
* user that created the cluster can view and manage it. This value can be changed using the
* SetVisibleToAllUsers action.
*
*
* When you create clusters directly through the EMR console or API, this value is set to `true`
* by default. However, for `AWS::EMR::Cluster` resources in CloudFormation, the default is `false`
* .
*
*
* [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-emr-cluster.html#cfn-emr-cluster-visibletoallusers)
*/
override fun visibleToAllUsers(): Any? = unwrap(this).getVisibleToAllUsers()
}
public companion object {
public operator fun invoke(block: Builder.() -> Unit = {}): CfnClusterProps {
val builderImpl = BuilderImpl()
return Wrapper(builderImpl.apply(block).build())
}
internal fun wrap(cdkObject: software.amazon.awscdk.services.emr.CfnClusterProps):
CfnClusterProps = CdkObjectWrappers.wrap(cdkObject) as? CfnClusterProps ?:
Wrapper(cdkObject)
internal fun unwrap(wrapped: CfnClusterProps):
software.amazon.awscdk.services.emr.CfnClusterProps = (wrapped as CdkObject).cdkObject as
software.amazon.awscdk.services.emr.CfnClusterProps
}
}