import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Configuration { Classification ? : Value < string > ; ConfigurationProperties ? : { [ key ] : Value < string > ; } ; Configurations ? : List < Configuration > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InstanceTypeConfig { BidPrice ? : Value < string > ; BidPriceAsPercentageOfOnDemandPrice ? : Value < number > ; Configurations ? : List < Configuration > ; EbsConfiguration ? : EbsConfiguration ; InstanceType ! : Value < string > ; WeightedCapacity ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SpotProvisioningSpecification { AllocationStrategy ? : Value < string > ; BlockDurationMinutes ? : Value < number > ; TimeoutAction ! : Value < string > ; TimeoutDurationMinutes ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EbsConfiguration { EbsBlockDeviceConfigs ? : List < EbsBlockDeviceConfig > ; EbsOptimized ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OnDemandProvisioningSpecification { AllocationStrategy ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VolumeSpecification { Iops ? : Value < number > ; SizeInGB ! : Value < number > ; VolumeType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InstanceFleetProvisioningSpecifications { OnDemandSpecification ? : OnDemandProvisioningSpecification ; SpotSpecification ? : SpotProvisioningSpecification ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EbsBlockDeviceConfig { VolumeSpecification ! : VolumeSpecification ; VolumesPerInstance ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface InstanceFleetConfigProperties { ClusterId : Value < string > ; InstanceFleetType : Value < string > ; InstanceTypeConfigs ? : List < InstanceTypeConfig > ; LaunchSpecifications ? : InstanceFleetProvisioningSpecifications ; Name ? : Value < string > ; TargetOnDemandCapacity ? : Value < number > ; TargetSpotCapacity ? : Value < number > ; } export default class InstanceFleetConfig extends ResourceBase < InstanceFleetConfigProperties > { static Configuration = Configuration ; static InstanceTypeConfig = InstanceTypeConfig ; static SpotProvisioningSpecification = SpotProvisioningSpecification ; static EbsConfiguration = EbsConfiguration ; static OnDemandProvisioningSpecification = OnDemandProvisioningSpecification ; static VolumeSpecification = VolumeSpecification ; static InstanceFleetProvisioningSpecifications = InstanceFleetProvisioningSpecifications ; static EbsBlockDeviceConfig = EbsBlockDeviceConfig ; constructor ( properties ) { super ( 'AWS::EMR::InstanceFleetConfig' , properties ) ; } }