import * as core from "@terrascript/core"; export interface AutoTerminationPolicyArgs extends core.SchemaArgs { idleTimeout?: number | core.NumberOut; } export declare class AutoTerminationPolicy extends core.Schema { idleTimeout?: number | core.NumberOut; } export interface ConfigurationsArgs extends core.SchemaArgs { classification?: string | core.StringOut; properties?: core.Map | core.MapOut; } export declare class Configurations extends core.Schema { classification?: string | core.StringOut; properties?: core.Map | core.MapOut; } export interface InstanceTypeConfigsEbsConfigArgs extends core.SchemaArgs { iops?: number | core.NumberOut; size: number | core.NumberOut; type: string | core.StringOut; volumesPerInstance?: number | core.NumberOut; } export declare class InstanceTypeConfigsEbsConfig extends core.Schema { iops?: number | core.NumberOut; size: number | core.NumberOut; type: string | core.StringOut; volumesPerInstance?: number | core.NumberOut; } export interface InstanceTypeConfigsArgs extends core.SchemaArgs { bidPrice?: string | core.StringOut; bidPriceAsPercentageOfOnDemandPrice?: number | core.NumberOut; configurations?: core.Array | core.ArrayOut; ebsConfig?: core.Array | core.ArrayOut; instanceType: string | core.StringOut; weightedCapacity?: number | core.NumberOut; } export declare class InstanceTypeConfigs extends core.Schema { bidPrice?: string | core.StringOut; bidPriceAsPercentageOfOnDemandPrice?: number | core.NumberOut; configurations?: core.Array | core.ArrayOut; ebsConfig?: core.Array | core.ArrayOut; instanceType: string | core.StringOut; weightedCapacity?: number | core.NumberOut; } export interface OnDemandSpecificationArgs extends core.SchemaArgs { allocationStrategy: string | core.StringOut; } export declare class OnDemandSpecification extends core.Schema { allocationStrategy: string | core.StringOut; } export interface SpotSpecificationArgs extends core.SchemaArgs { allocationStrategy: string | core.StringOut; blockDurationMinutes?: number | core.NumberOut; timeoutAction: string | core.StringOut; timeoutDurationMinutes: number | core.NumberOut; } export declare class SpotSpecification extends core.Schema { allocationStrategy: string | core.StringOut; blockDurationMinutes?: number | core.NumberOut; timeoutAction: string | core.StringOut; timeoutDurationMinutes: number | core.NumberOut; } export interface LaunchSpecificationsArgs extends core.SchemaArgs { onDemandSpecification?: core.Array | core.ArrayOut; spotSpecification?: core.Array | core.ArrayOut; } export declare class LaunchSpecifications extends core.Schema { onDemandSpecification?: core.Array | core.ArrayOut; spotSpecification?: core.Array | core.ArrayOut; } export interface MasterInstanceFleetArgs extends core.SchemaArgs { id: string | core.StringOut; instanceTypeConfigs?: core.Array | core.ArrayOut; launchSpecifications?: LaunchSpecifications; name?: string | core.StringOut; provisionedOnDemandCapacity: number | core.NumberOut; provisionedSpotCapacity: number | core.NumberOut; targetOnDemandCapacity?: number | core.NumberOut; targetSpotCapacity?: number | core.NumberOut; } export declare class MasterInstanceFleet extends core.Schema { id: string | core.StringOut; instanceTypeConfigs?: core.Array | core.ArrayOut; launchSpecifications?: LaunchSpecifications; name?: string | core.StringOut; provisionedOnDemandCapacity: number | core.NumberOut; provisionedSpotCapacity: number | core.NumberOut; targetOnDemandCapacity?: number | core.NumberOut; targetSpotCapacity?: number | core.NumberOut; } export interface Ec2AttributesArgs extends core.SchemaArgs { additionalMasterSecurityGroups?: string | core.StringOut; additionalSlaveSecurityGroups?: string | core.StringOut; emrManagedMasterSecurityGroup?: string | core.StringOut; emrManagedSlaveSecurityGroup?: string | core.StringOut; instanceProfile: string | core.StringOut; keyName?: string | core.StringOut; serviceAccessSecurityGroup?: string | core.StringOut; subnetId?: string | core.StringOut; subnetIds?: core.Array | core.ArrayOut; } export declare class Ec2Attributes extends core.Schema { additionalMasterSecurityGroups?: string | core.StringOut; additionalSlaveSecurityGroups?: string | core.StringOut; emrManagedMasterSecurityGroup?: string | core.StringOut; emrManagedSlaveSecurityGroup?: string | core.StringOut; instanceProfile: string | core.StringOut; keyName?: string | core.StringOut; serviceAccessSecurityGroup?: string | core.StringOut; subnetId?: string | core.StringOut; subnetIds?: core.Array | core.ArrayOut; } export interface HadoopJarStepArgs extends core.SchemaArgs { args?: core.Array | core.ArrayOut; jar: string | core.StringOut; mainClass?: string | core.StringOut; properties?: core.Map | core.MapOut; } export declare class HadoopJarStep extends core.Schema { args?: core.Array | core.ArrayOut; jar: string | core.StringOut; mainClass?: string | core.StringOut; properties?: core.Map | core.MapOut; } export interface StepArgs extends core.SchemaArgs { actionOnFailure: string | core.StringOut; hadoopJarStep: HadoopJarStep; name: string | core.StringOut; } export declare class Step extends core.Schema { actionOnFailure: string | core.StringOut; hadoopJarStep: HadoopJarStep; name: string | core.StringOut; } export interface CoreInstanceGroupEbsConfigArgs extends core.SchemaArgs { iops?: number | core.NumberOut; size: number | core.NumberOut; throughput?: number | core.NumberOut; type: string | core.StringOut; volumesPerInstance?: number | core.NumberOut; } export declare class CoreInstanceGroupEbsConfig extends core.Schema { iops?: number | core.NumberOut; size: number | core.NumberOut; throughput?: number | core.NumberOut; type: string | core.StringOut; volumesPerInstance?: number | core.NumberOut; } export interface CoreInstanceGroupArgs extends core.SchemaArgs { autoscalingPolicy?: string | core.StringOut; bidPrice?: string | core.StringOut; ebsConfig?: core.Array | core.ArrayOut; id: string | core.StringOut; instanceCount?: number | core.NumberOut; instanceType: string | core.StringOut; name?: string | core.StringOut; } export declare class CoreInstanceGroup extends core.Schema { autoscalingPolicy?: string | core.StringOut; bidPrice?: string | core.StringOut; ebsConfig?: core.Array | core.ArrayOut; id: string | core.StringOut; instanceCount?: number | core.NumberOut; instanceType: string | core.StringOut; name?: string | core.StringOut; } export interface BootstrapActionArgs extends core.SchemaArgs { args?: core.Array | core.ArrayOut; name: string | core.StringOut; path: string | core.StringOut; } export declare class BootstrapAction extends core.Schema { args?: core.Array | core.ArrayOut; name: string | core.StringOut; path: string | core.StringOut; } export interface KerberosAttributesArgs extends core.SchemaArgs { adDomainJoinPassword?: string | core.StringOut; adDomainJoinUser?: string | core.StringOut; crossRealmTrustPrincipalPassword?: string | core.StringOut; kdcAdminPassword: string | core.StringOut; realm: string | core.StringOut; } export declare class KerberosAttributes extends core.Schema { adDomainJoinPassword?: string | core.StringOut; adDomainJoinUser?: string | core.StringOut; crossRealmTrustPrincipalPassword?: string | core.StringOut; kdcAdminPassword: string | core.StringOut; realm: string | core.StringOut; } export interface CoreInstanceFleetArgs extends core.SchemaArgs { id: string | core.StringOut; instanceTypeConfigs?: core.Array | core.ArrayOut; launchSpecifications?: LaunchSpecifications; name?: string | core.StringOut; provisionedOnDemandCapacity: number | core.NumberOut; provisionedSpotCapacity: number | core.NumberOut; targetOnDemandCapacity?: number | core.NumberOut; targetSpotCapacity?: number | core.NumberOut; } export declare class CoreInstanceFleet extends core.Schema { id: string | core.StringOut; instanceTypeConfigs?: core.Array | core.ArrayOut; launchSpecifications?: LaunchSpecifications; name?: string | core.StringOut; provisionedOnDemandCapacity: number | core.NumberOut; provisionedSpotCapacity: number | core.NumberOut; targetOnDemandCapacity?: number | core.NumberOut; targetSpotCapacity?: number | core.NumberOut; } export interface MasterInstanceGroupArgs extends core.SchemaArgs { bidPrice?: string | core.StringOut; ebsConfig?: core.Array | core.ArrayOut; id: string | core.StringOut; instanceCount?: number | core.NumberOut; instanceType: string | core.StringOut; name?: string | core.StringOut; } export declare class MasterInstanceGroup extends core.Schema { bidPrice?: string | core.StringOut; ebsConfig?: core.Array | core.ArrayOut; id: string | core.StringOut; instanceCount?: number | core.NumberOut; instanceType: string | core.StringOut; name?: string | core.StringOut; } export interface ClusterArgs extends core.ResourceArgs { /** * (Optional) JSON string for selecting additional features such as adding proxy information. Note: Cur * rently there is no API to retrieve the value of this argument after EMR cluster creation from provid * er, therefore Terraform cannot detect drift from the actual EMR cluster if its value is changed outs * ide Terraform. */ additionalInfo?: string | core.StringOut; /** * (Optional) A case-insensitive list of applications for Amazon EMR to install and configure when laun * ching the cluster. For a list of applications available for each Amazon EMR release version, see the * [Amazon EMR Release Guide](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-componen * ts.html). */ applications?: core.Array | core.ArrayOut; /** * (Optional) 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. See [Auto Termina * tion Policy](#auto_termination_policy) Below. */ autoTerminationPolicy?: AutoTerminationPolicy; /** * (Optional) IAM role for automatic scaling policies. The IAM role provides permissions that the autom * atic scaling feature requires to launch and terminate EC2 instances in an instance group. */ autoscalingRole?: string | core.StringOut; /** * (Optional) Ordered list of bootstrap actions that will be run before Hadoop is started on the cluste * r nodes. See below. */ bootstrapAction?: core.Array | core.ArrayOut; /** * (Optional) List of configurations supplied for the EMR cluster you are creating. Supply a configurat * ion object for applications to override their default configuration. See [AWS Documentation](https:/ * /docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html) for more information. */ configurations?: string | core.StringOut; /** * (Optional) JSON string for supplying list of configurations for the EMR cluster. */ configurationsJson?: string | core.StringOut; /** * (Optional) Configuration block to use an [Instance Fleet](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-fleet.html) for the core node type. Cannot be specified if any `core_insta * nce_group` configuration blocks are set. Detailed below. */ coreInstanceFleet?: CoreInstanceFleet; /** * (Optional) Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type * ](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-co * re). */ coreInstanceGroup?: CoreInstanceGroup; /** * (Optional) Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazo * n EMR version 5.7.0 and later. */ customAmiId?: string | core.StringOut; /** * (Optional) Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 inst * ance. Available in Amazon EMR version 4.x and later. */ ebsRootVolumeSize?: number | core.NumberOut; /** * (Optional) Attributes for the EC2 instances running the job flow. See below. */ ec2Attributes?: Ec2Attributes; /** * (Optional) Switch on/off run cluster with no steps or when all steps are complete (default is on) */ keepJobFlowAliveWhenNoSteps?: boolean | core.BooleanOut; /** * (Optional) Kerberos configuration for the cluster. See below. */ kerberosAttributes?: KerberosAttributes; /** * (Optional) List of [step states](https://docs.aws.amazon.com/emr/latest/APIReference/API_StepStatus. * html) used to filter returned steps */ listStepsStates?: core.Array | core.ArrayOut; /** * (Optional) AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attri * bute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0. */ logEncryptionKmsKeyId?: string | core.StringOut; /** * (Optional) S3 bucket to write the log files of the job flow. If a value is not provided, logs are no * t created. */ logUri?: string | core.StringOut; /** * (Optional) Configuration block to use an [Instance Fleet](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-fleet.html) for the master node type. Cannot be specified if any `master_i * nstance_group` configuration blocks are set. Detailed below. */ masterInstanceFleet?: MasterInstanceFleet; /** * (Optional) Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node ty * pe](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan- * master). */ masterInstanceGroup?: MasterInstanceGroup; /** * (Required) Name of the job flow. */ name: string | core.StringOut; /** * (Required) Release label for the Amazon EMR release. */ releaseLabel: string | core.StringOut; /** * (Optional) Way that individual Amazon EC2 instances terminate when an automatic scale-in activity oc * curs or an `instance group` is resized. */ scaleDownBehavior?: string | core.StringOut; /** * (Optional) Security configuration name to attach to the EMR cluster. Only valid for EMR clusters wit * h `release_label` 4.8.0 or greater. */ securityConfiguration?: string | core.StringOut; /** * (Required) IAM role that will be assumed by the Amazon EMR service to access AWS resources. */ serviceRole: string | core.StringOut; /** * (Optional) List of steps to run when creating the cluster. See below. It is highly recommended to ut * ilize the [lifecycle configuration block](https://www.terraform.io/docs/configuration/meta-arguments * /lifecycle.html) with `ignore_changes` if other steps are being managed outside of Terraform. This a * rgument is processed in [attribute-as-blocks mode](https://www.terraform.io/docs/configuration/attr- * as-blocks.html). */ step?: core.Array | core.ArrayOut; /** * (Optional) Number of steps that can be executed concurrently. You can specify a maximum of 256 steps * . Only valid for EMR clusters with `release_label` 5.28.0 or greater (default is 1). */ stepConcurrencyLevel?: number | core.NumberOut; /** * (Optional) list of tags to apply to the EMR Cluster. If configured with a provider [`default_tags` c * onfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-c * onfiguration-block) present, tags with matching keys will overwrite those defined at the provider-le * vel. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) Switch on/off termination protection (default is `false`, except when using multiple mast * er nodes). Before attempting to destroy the resource when termination protection is enabled, this co * nfiguration must be applied with its value set to `false`. */ terminationProtection?: boolean | core.BooleanOut; /** * (Optional) Whether the job flow is visible to all IAM users of the AWS account associated with the j * ob flow. Default value is `true`. */ visibleToAllUsers?: boolean | core.BooleanOut; } export declare class Cluster extends core.Resource { /** * (Optional) JSON string for selecting additional features such as adding proxy information. Note: Cur * rently there is no API to retrieve the value of this argument after EMR cluster creation from provid * er, therefore Terraform cannot detect drift from the actual EMR cluster if its value is changed outs * ide Terraform. */ additionalInfo?: string | core.StringOut; /** * (Optional) A case-insensitive list of applications for Amazon EMR to install and configure when laun * ching the cluster. For a list of applications available for each Amazon EMR release version, see the * [Amazon EMR Release Guide](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-componen * ts.html). */ applications?: core.Array | core.ArrayOut; arn: string | core.StringOut; /** * (Optional) 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. See [Auto Termina * tion Policy](#auto_termination_policy) Below. */ autoTerminationPolicy?: AutoTerminationPolicy; /** * (Optional) IAM role for automatic scaling policies. The IAM role provides permissions that the autom * atic scaling feature requires to launch and terminate EC2 instances in an instance group. */ autoscalingRole?: string | core.StringOut; /** * (Optional) Ordered list of bootstrap actions that will be run before Hadoop is started on the cluste * r nodes. See below. */ bootstrapAction?: core.Array | core.ArrayOut; clusterState: string | core.StringOut; /** * (Optional) List of configurations supplied for the EMR cluster you are creating. Supply a configurat * ion object for applications to override their default configuration. See [AWS Documentation](https:/ * /docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html) for more information. */ configurations?: string | core.StringOut; /** * (Optional) JSON string for supplying list of configurations for the EMR cluster. */ configurationsJson?: string | core.StringOut; /** * (Optional) Configuration block to use an [Instance Fleet](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-fleet.html) for the core node type. Cannot be specified if any `core_insta * nce_group` configuration blocks are set. Detailed below. */ coreInstanceFleet?: CoreInstanceFleet; /** * (Optional) Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type * ](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-co * re). */ coreInstanceGroup?: CoreInstanceGroup; /** * (Optional) Custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazo * n EMR version 5.7.0 and later. */ customAmiId?: string | core.StringOut; /** * (Optional) Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 inst * ance. Available in Amazon EMR version 4.x and later. */ ebsRootVolumeSize?: number | core.NumberOut; /** * (Optional) Attributes for the EC2 instances running the job flow. See below. */ ec2Attributes?: Ec2Attributes; /** * ID of the cluster. */ id: string | core.StringOut; /** * (Optional) Switch on/off run cluster with no steps or when all steps are complete (default is on) */ keepJobFlowAliveWhenNoSteps?: boolean | core.BooleanOut; /** * (Optional) Kerberos configuration for the cluster. See below. */ kerberosAttributes?: KerberosAttributes; /** * (Optional) List of [step states](https://docs.aws.amazon.com/emr/latest/APIReference/API_StepStatus. * html) used to filter returned steps */ listStepsStates?: core.Array | core.ArrayOut; /** * (Optional) AWS KMS customer master key (CMK) key ID or arn used for encrypting log files. This attri * bute is only available with EMR version 5.30.0 and later, excluding EMR 6.0.0. */ logEncryptionKmsKeyId?: string | core.StringOut; /** * (Optional) S3 bucket to write the log files of the job flow. If a value is not provided, logs are no * t created. */ logUri?: string | core.StringOut; /** * (Optional) Configuration block to use an [Instance Fleet](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-fleet.html) for the master node type. Cannot be specified if any `master_i * nstance_group` configuration blocks are set. Detailed below. */ masterInstanceFleet?: MasterInstanceFleet; /** * (Optional) Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/Man * agementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node ty * pe](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan- * master). */ masterInstanceGroup?: MasterInstanceGroup; /** * The DNS name of the master node. If the cluster is on a private subnet, this is the private DNS name * . On a public subnet, this is the public DNS name. */ masterPublicDns: string | core.StringOut; /** * (Required) Name of the job flow. */ name: string | core.StringOut; /** * (Required) Release label for the Amazon EMR release. */ releaseLabel: string | core.StringOut; /** * (Optional) Way that individual Amazon EC2 instances terminate when an automatic scale-in activity oc * curs or an `instance group` is resized. */ scaleDownBehavior?: string | core.StringOut; /** * (Optional) Security configuration name to attach to the EMR cluster. Only valid for EMR clusters wit * h `release_label` 4.8.0 or greater. */ securityConfiguration?: string | core.StringOut; /** * (Required) IAM role that will be assumed by the Amazon EMR service to access AWS resources. */ serviceRole: string | core.StringOut; /** * (Optional) List of steps to run when creating the cluster. See below. It is highly recommended to ut * ilize the [lifecycle configuration block](https://www.terraform.io/docs/configuration/meta-arguments * /lifecycle.html) with `ignore_changes` if other steps are being managed outside of Terraform. This a * rgument is processed in [attribute-as-blocks mode](https://www.terraform.io/docs/configuration/attr- * as-blocks.html). */ step?: core.Array | core.ArrayOut; /** * (Optional) Number of steps that can be executed concurrently. You can specify a maximum of 256 steps * . Only valid for EMR clusters with `release_label` 5.28.0 or greater (default is 1). */ stepConcurrencyLevel?: number | core.NumberOut; /** * (Optional) list of tags to apply to the EMR Cluster. If configured with a provider [`default_tags` c * onfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-c * onfiguration-block) present, tags with matching keys will overwrite those defined at the provider-le * vel. */ tags?: core.Map | core.MapOut; /** * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) Switch on/off termination protection (default is `false`, except when using multiple mast * er nodes). Before attempting to destroy the resource when termination protection is enabled, this co * nfiguration must be applied with its value set to `false`. */ terminationProtection?: boolean | core.BooleanOut; /** * (Optional) Whether the job flow is visible to all IAM users of the AWS account associated with the j * ob flow. Default value is `true`. */ visibleToAllUsers?: boolean | core.BooleanOut; constructor(name: string, args?: ClusterArgs); getNamespace(): string; } //# sourceMappingURL=cluster.d.ts.map