import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class HibernationOptions { Configured ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Ebs { DeleteOnTermination ? : Value < boolean > ; Encrypted ? : Value < boolean > ; Iops ? : Value < number > ; KmsKeyId ? : Value < string > ; SnapshotId ? : Value < string > ; VolumeSize ? : Value < number > ; VolumeType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NoDevice { constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CreditSpecification { CPUCredits ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ElasticGpuSpecification { Type ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CpuOptions { CoreCount ? : Value < number > ; ThreadsPerCore ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LaunchTemplateSpecification { LaunchTemplateId ? : Value < string > ; LaunchTemplateName ? : Value < string > ; Version ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BlockDeviceMapping { DeviceName ! : Value < string > ; Ebs ? : Ebs ; NoDevice ? : NoDevice ; VirtualName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PrivateIpAddressSpecification { Primary ! : Value < boolean > ; PrivateIpAddress ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Volume { Device ! : Value < string > ; VolumeId ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NetworkInterface { AssociatePublicIpAddress ? : Value < boolean > ; DeleteOnTermination ? : Value < boolean > ; Description ? : Value < string > ; DeviceIndex ! : Value < string > ; GroupSet ? : List < Value < string > > ; Ipv6AddressCount ? : Value < number > ; Ipv6Addresses ? : List < InstanceIpv6Address > ; NetworkInterfaceId ? : Value < string > ; PrivateIpAddress ? : Value < string > ; PrivateIpAddresses ? : List < PrivateIpAddressSpecification > ; SecondaryPrivateIpAddressCount ? : Value < number > ; SubnetId ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InstanceIpv6Address { Ipv6Address ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AssociationParameter { Key ! : Value < string > ; Value ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EnclaveOptions { Enabled ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LicenseSpecification { LicenseConfigurationArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SsmAssociation { AssociationParameters ? : List < AssociationParameter > ; DocumentName ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ElasticInferenceAccelerator { Count ? : Value < number > ; Type ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface InstanceProperties { AdditionalInfo ? : Value < string > ; Affinity ? : Value < string > ; AvailabilityZone ? : Value < string > ; BlockDeviceMappings ? : List < BlockDeviceMapping > ; CpuOptions ? : CpuOptions ; CreditSpecification ? : CreditSpecification ; DisableApiTermination ? : Value < boolean > ; EbsOptimized ? : Value < boolean > ; ElasticGpuSpecifications ? : List < ElasticGpuSpecification > ; ElasticInferenceAccelerators ? : List < ElasticInferenceAccelerator > ; EnclaveOptions ? : EnclaveOptions ; HibernationOptions ? : HibernationOptions ; HostId ? : Value < string > ; HostResourceGroupArn ? : Value < string > ; IamInstanceProfile ? : Value < string > ; ImageId ? : Value < string > ; InstanceInitiatedShutdownBehavior ? : Value < string > ; InstanceType ? : Value < string > ; Ipv6AddressCount ? : Value < number > ; Ipv6Addresses ? : List < InstanceIpv6Address > ; KernelId ? : Value < string > ; KeyName ? : Value < string > ; LaunchTemplate ? : LaunchTemplateSpecification ; LicenseSpecifications ? : List < LicenseSpecification > ; Monitoring ? : Value < boolean > ; NetworkInterfaces ? : List < NetworkInterface > ; PlacementGroupName ? : Value < string > ; PrivateIpAddress ? : Value < string > ; RamdiskId ? : Value < string > ; SecurityGroupIds ? : List < Value < string > > ; SecurityGroups ? : List < Value < string > > ; SourceDestCheck ? : Value < boolean > ; SsmAssociations ? : List < SsmAssociation > ; SubnetId ? : Value < string > ; Tags ? : List < ResourceTag > ; Tenancy ? : Value < string > ; UserData ? : Value < string > ; Volumes ? : List < Volume > ; } export default class Instance extends ResourceBase < InstanceProperties > { static HibernationOptions = HibernationOptions ; static Ebs = Ebs ; static NoDevice = NoDevice ; static CreditSpecification = CreditSpecification ; static ElasticGpuSpecification = ElasticGpuSpecification ; static CpuOptions = CpuOptions ; static LaunchTemplateSpecification = LaunchTemplateSpecification ; static BlockDeviceMapping = BlockDeviceMapping ; static PrivateIpAddressSpecification = PrivateIpAddressSpecification ; static Volume = Volume ; static NetworkInterface = NetworkInterface ; static InstanceIpv6Address = InstanceIpv6Address ; static AssociationParameter = AssociationParameter ; static EnclaveOptions = EnclaveOptions ; static LicenseSpecification = LicenseSpecification ; static SsmAssociation = SsmAssociation ; static ElasticInferenceAccelerator = ElasticInferenceAccelerator ; constructor ( properties ? ) { super ( 'AWS::EC2::Instance' , properties || { } ) ; } }