/* 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::EC2::SpotFleet */ export interface AwsEc2Spotfleet { Id?: string; SpotFleetRequestConfigData: SpotFleetRequestConfigData; } export interface SpotFleetRequestConfigData { AllocationStrategy?: | "capacityOptimized" | "capacityOptimizedPrioritized" | "diversified" | "lowestPrice" | "priceCapacityOptimized"; Context?: string; ExcessCapacityTerminationPolicy?: "Default" | "NoTermination" | "default" | "noTermination"; IamFleetRole: string; InstanceInterruptionBehavior?: "hibernate" | "stop" | "terminate"; InstancePoolsToUseCount?: number; LaunchSpecifications?: SpotFleetLaunchSpecification[]; LaunchTemplateConfigs?: LaunchTemplateConfig[]; LoadBalancersConfig?: LoadBalancersConfig; OnDemandAllocationStrategy?: string; OnDemandMaxTotalPrice?: string; OnDemandTargetCapacity?: number; ReplaceUnhealthyInstances?: boolean; SpotMaintenanceStrategies?: SpotMaintenanceStrategies; SpotMaxTotalPrice?: string; SpotPrice?: string; TargetCapacity: number; TerminateInstancesWithExpiration?: boolean; Type?: "maintain" | "request"; ValidFrom?: string; ValidUntil?: string; TagSpecifications?: SpotFleetTagSpecification[]; TargetCapacityUnitType?: "vcpu" | "memory-mib" | "units"; } export interface SpotFleetLaunchSpecification { BlockDeviceMappings?: BlockDeviceMapping[]; EbsOptimized?: boolean; IamInstanceProfile?: IamInstanceProfileSpecification; ImageId: string; InstanceType?: string; KernelId?: string; KeyName?: string; Monitoring?: SpotFleetMonitoring; NetworkInterfaces?: InstanceNetworkInterfaceSpecification[]; Placement?: SpotPlacement; RamdiskId?: string; SecurityGroups?: GroupIdentifier[]; SpotPrice?: string; SubnetId?: string; TagSpecifications?: SpotFleetTagSpecification[]; UserData?: string; WeightedCapacity?: number; InstanceRequirements?: InstanceRequirementsRequest; } export interface BlockDeviceMapping { DeviceName: string; Ebs?: EbsBlockDevice; NoDevice?: string; VirtualName?: string; } export interface EbsBlockDevice { DeleteOnTermination?: boolean; Encrypted?: boolean; Iops?: number; SnapshotId?: string; VolumeSize?: number; VolumeType?: "gp2" | "gp3" | "io1" | "io2" | "sc1" | "st1" | "standard"; } export interface IamInstanceProfileSpecification { Arn?: string; } export interface SpotFleetMonitoring { Enabled?: boolean; } export interface InstanceNetworkInterfaceSpecification { AssociatePublicIpAddress?: boolean; DeleteOnTermination?: boolean; Description?: string; DeviceIndex?: number; Groups?: string[]; Ipv6AddressCount?: number; Ipv6Addresses?: InstanceIpv6Address[]; NetworkInterfaceId?: string; PrivateIpAddresses?: PrivateIpAddressSpecification[]; SecondaryPrivateIpAddressCount?: number; SubnetId?: string; } export interface InstanceIpv6Address { Ipv6Address: string; } export interface PrivateIpAddressSpecification { Primary?: boolean; PrivateIpAddress: string; } export interface SpotPlacement { AvailabilityZone?: string; GroupName?: string; Tenancy?: "dedicated" | "default" | "host"; } export interface GroupIdentifier { GroupId: string; } export interface SpotFleetTagSpecification { ResourceType?: | "client-vpn-endpoint" | "customer-gateway" | "dedicated-host" | "dhcp-options" | "egress-only-internet-gateway" | "elastic-gpu" | "elastic-ip" | "export-image-task" | "export-instance-task" | "fleet" | "fpga-image" | "host-reservation" | "image" | "import-image-task" | "import-snapshot-task" | "instance" | "internet-gateway" | "key-pair" | "launch-template" | "local-gateway-route-table-vpc-association" | "natgateway" | "network-acl" | "network-insights-analysis" | "network-insights-path" | "network-interface" | "placement-group" | "reserved-instances" | "route-table" | "security-group" | "snapshot" | "spot-fleet-request" | "spot-instances-request" | "subnet" | "traffic-mirror-filter" | "traffic-mirror-session" | "traffic-mirror-target" | "transit-gateway" | "transit-gateway-attachment" | "transit-gateway-connect-peer" | "transit-gateway-multicast-domain" | "transit-gateway-route-table" | "volume" | "vpc" | "vpc-flow-log" | "vpc-peering-connection" | "vpn-connection" | "vpn-gateway"; Tags?: Tag[]; } export interface Tag { Key: string; Value: string; } export interface InstanceRequirementsRequest { VCpuCount?: VCpuCountRangeRequest; MemoryMiB?: MemoryMiBRequest; CpuManufacturers?: ("intel" | "amd" | "amazon-web-services")[]; MemoryGiBPerVCpu?: MemoryGiBPerVCpuRequest; AllowedInstanceTypes?: string[]; ExcludedInstanceTypes?: string[]; InstanceGenerations?: ("current" | "previous")[]; SpotMaxPricePercentageOverLowestPrice?: number; OnDemandMaxPricePercentageOverLowestPrice?: number; BareMetal?: "included" | "required" | "excluded"; BurstablePerformance?: "included" | "required" | "excluded"; RequireHibernateSupport?: boolean; NetworkBandwidthGbps?: NetworkBandwidthGbpsRequest; NetworkInterfaceCount?: NetworkInterfaceCountRequest; LocalStorage?: "included" | "required" | "excluded"; LocalStorageTypes?: ("hdd" | "ssd")[]; TotalLocalStorageGB?: TotalLocalStorageGBRequest; BaselineEbsBandwidthMbps?: BaselineEbsBandwidthMbpsRequest; AcceleratorTypes?: ("gpu" | "fpga" | "inference")[]; AcceleratorCount?: AcceleratorCountRequest; AcceleratorManufacturers?: ("nvidia" | "amd" | "amazon-web-services" | "xilinx")[]; AcceleratorNames?: ("a100" | "v100" | "k80" | "t4" | "m60" | "radeon-pro-v520" | "vu9p" | "inferentia" | "k520")[]; AcceleratorTotalMemoryMiB?: AcceleratorTotalMemoryMiBRequest; } export interface VCpuCountRangeRequest { Min?: number; Max?: number; } export interface MemoryMiBRequest { Min?: number; Max?: number; } export interface MemoryGiBPerVCpuRequest { Min?: number; Max?: number; } export interface NetworkBandwidthGbpsRequest { Min?: number; Max?: number; } export interface NetworkInterfaceCountRequest { Min?: number; Max?: number; } export interface TotalLocalStorageGBRequest { Min?: number; Max?: number; } export interface BaselineEbsBandwidthMbpsRequest { Min?: number; Max?: number; } export interface AcceleratorCountRequest { Min?: number; Max?: number; } export interface AcceleratorTotalMemoryMiBRequest { Min?: number; Max?: number; } export interface LaunchTemplateConfig { LaunchTemplateSpecification?: FleetLaunchTemplateSpecification; Overrides?: LaunchTemplateOverrides[]; } export interface FleetLaunchTemplateSpecification { LaunchTemplateId?: string; LaunchTemplateName?: string; Version: string; } export interface LaunchTemplateOverrides { AvailabilityZone?: string; InstanceType?: string; SpotPrice?: string; SubnetId?: string; WeightedCapacity?: number; InstanceRequirements?: InstanceRequirementsRequest; Priority?: number; } export interface LoadBalancersConfig { ClassicLoadBalancersConfig?: ClassicLoadBalancersConfig; TargetGroupsConfig?: TargetGroupsConfig; } export interface ClassicLoadBalancersConfig { ClassicLoadBalancers: ClassicLoadBalancer[]; } export interface ClassicLoadBalancer { Name: string; } export interface TargetGroupsConfig { TargetGroups: TargetGroup[]; } export interface TargetGroup { Arn: string; } export interface SpotMaintenanceStrategies { CapacityRebalance?: SpotCapacityRebalance; } export interface SpotCapacityRebalance { ReplacementStrategy?: "launch" | "launch-before-terminate"; TerminationDelay?: number; }