/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Resource Type definition for AWS::EMR::Cluster */ export interface AwsEmrCluster { Steps?: StepConfig[]; StepConcurrencyLevel?: number; EbsRootVolumeSize?: number; OSReleaseLabel?: string; Name: string; ServiceRole: string; LogUri?: string; BootstrapActions?: BootstrapActionConfig[]; MasterPublicDNS?: string; Configurations?: Configuration[]; ReleaseLabel?: string; Tags?: Tag[]; ManagedScalingPolicy?: ManagedScalingPolicy; LogEncryptionKmsKeyId?: string; AdditionalInfo?: { [k: string]: unknown; }; AutoTerminationPolicy?: AutoTerminationPolicy; KerberosAttributes?: KerberosAttributes; Applications?: Application[]; AutoScalingRole?: string; CustomAmiId?: string; Instances: JobFlowInstancesConfig; ScaleDownBehavior?: string; JobFlowRole: string; VisibleToAllUsers?: boolean; SecurityConfiguration?: string; Id?: string; } export interface StepConfig { HadoopJarStep: HadoopJarStepConfig; ActionOnFailure?: string; Name: string; } export interface HadoopJarStepConfig { Args?: string[]; MainClass?: string; Jar: string; StepProperties?: KeyValue[]; } export interface KeyValue { Value?: string; Key?: string; } export interface BootstrapActionConfig { ScriptBootstrapAction: ScriptBootstrapActionConfig; Name: string; } export interface ScriptBootstrapActionConfig { Path: string; Args?: string[]; } export interface Configuration { ConfigurationProperties?: { /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z0-9]+". */ [k: string]: string; }; Configurations?: Configuration[]; Classification?: string; } export interface Tag { Value: string; Key: string; } export interface ManagedScalingPolicy { ComputeLimits?: ComputeLimits; } export interface ComputeLimits { MaximumOnDemandCapacityUnits?: number; MaximumCapacityUnits: number; MaximumCoreCapacityUnits?: number; MinimumCapacityUnits: number; UnitType: string; } export interface AutoTerminationPolicy { IdleTimeout?: number; } export interface KerberosAttributes { KdcAdminPassword: string; Realm: string; ADDomainJoinPassword?: string; ADDomainJoinUser?: string; CrossRealmTrustPrincipalPassword?: string; } export interface Application { AdditionalInfo?: { /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z0-9]+". */ [k: string]: string; }; Args?: string[]; Version?: string; Name?: string; } export interface JobFlowInstancesConfig { MasterInstanceFleet?: InstanceFleetConfig; AdditionalSlaveSecurityGroups?: string[]; CoreInstanceFleet?: InstanceFleetConfig; CoreInstanceGroup?: InstanceGroupConfig; Ec2SubnetIds?: string[]; HadoopVersion?: string; TerminationProtected?: boolean; KeepJobFlowAliveWhenNoSteps?: boolean; Ec2KeyName?: string; MasterInstanceGroup?: InstanceGroupConfig; Placement?: PlacementType; TaskInstanceFleets?: InstanceFleetConfig[]; Ec2SubnetId?: string; TaskInstanceGroups?: InstanceGroupConfig[]; ServiceAccessSecurityGroup?: string; EmrManagedSlaveSecurityGroup?: string; AdditionalMasterSecurityGroups?: string[]; EmrManagedMasterSecurityGroup?: string; } export interface InstanceFleetConfig { TargetOnDemandCapacity?: number; TargetSpotCapacity?: number; InstanceTypeConfigs?: InstanceTypeConfig[]; LaunchSpecifications?: InstanceFleetProvisioningSpecifications; Name?: string; } export interface InstanceTypeConfig { BidPrice?: string; WeightedCapacity?: number; EbsConfiguration?: EbsConfiguration; BidPriceAsPercentageOfOnDemandPrice?: number; CustomAmiId?: string; Configurations?: Configuration[]; InstanceType: string; } export interface EbsConfiguration { EbsBlockDeviceConfigs?: EbsBlockDeviceConfig[]; EbsOptimized?: boolean; } export interface EbsBlockDeviceConfig { VolumeSpecification: VolumeSpecification; VolumesPerInstance?: number; } export interface VolumeSpecification { SizeInGB: number; VolumeType: string; Iops?: number; } export interface InstanceFleetProvisioningSpecifications { SpotSpecification?: SpotProvisioningSpecification; OnDemandSpecification?: OnDemandProvisioningSpecification; } export interface SpotProvisioningSpecification { AllocationStrategy?: string; TimeoutDurationMinutes: number; TimeoutAction: string; BlockDurationMinutes?: number; } export interface OnDemandProvisioningSpecification { AllocationStrategy: string; } export interface InstanceGroupConfig { AutoScalingPolicy?: AutoScalingPolicy; BidPrice?: string; InstanceCount: number; EbsConfiguration?: EbsConfiguration; CustomAmiId?: string; Configurations?: Configuration[]; InstanceType: string; Market?: string; Name?: string; } export interface AutoScalingPolicy { Rules: ScalingRule[]; Constraints: ScalingConstraints; } export interface ScalingRule { Action: ScalingAction; Description?: string; Trigger: ScalingTrigger; Name: string; } export interface ScalingAction { Market?: string; SimpleScalingPolicyConfiguration: SimpleScalingPolicyConfiguration; } export interface SimpleScalingPolicyConfiguration { ScalingAdjustment: number; CoolDown?: number; AdjustmentType?: string; } export interface ScalingTrigger { CloudWatchAlarmDefinition: CloudWatchAlarmDefinition; } export interface CloudWatchAlarmDefinition { MetricName: string; ComparisonOperator: string; Statistic?: string; Dimensions?: MetricDimension[]; Period: number; EvaluationPeriods?: number; Unit?: string; Namespace?: string; Threshold: number; } export interface MetricDimension { Value: string; Key: string; } export interface ScalingConstraints { MinCapacity: number; MaxCapacity: number; } export interface PlacementType { AvailabilityZone: string; }