import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class BlockDeviceMapping { DeviceName ? : Value < string > ; Ebs ? : EbsBlockDevice ; NoDevice ? : Value < string > ; VirtualName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TimeBasedAutoScaling { Friday ? : { [ key ] : Value < string > ; } ; Monday ? : { [ key ] : Value < string > ; } ; Saturday ? : { [ key ] : Value < string > ; } ; Sunday ? : { [ key ] : Value < string > ; } ; Thursday ? : { [ key ] : Value < string > ; } ; Tuesday ? : { [ key ] : Value < string > ; } ; Wednesday ? : { [ key ] : Value < string > ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EbsBlockDevice { DeleteOnTermination ? : Value < boolean > ; Iops ? : Value < number > ; SnapshotId ? : Value < string > ; VolumeSize ? : Value < number > ; VolumeType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface InstanceProperties { AgentVersion ? : Value < string > ; AmiId ? : Value < string > ; Architecture ? : Value < string > ; AutoScalingType ? : Value < string > ; AvailabilityZone ? : Value < string > ; BlockDeviceMappings ? : List < BlockDeviceMapping > ; EbsOptimized ? : Value < boolean > ; ElasticIps ? : List < Value < string > > ; Hostname ? : Value < string > ; InstallUpdatesOnBoot ? : Value < boolean > ; InstanceType : Value < string > ; LayerIds : List < Value < string > > ; Os ? : Value < string > ; RootDeviceType ? : Value < string > ; SshKeyName ? : Value < string > ; StackId : Value < string > ; SubnetId ? : Value < string > ; Tenancy ? : Value < string > ; TimeBasedAutoScaling ? : TimeBasedAutoScaling ; VirtualizationType ? : Value < string > ; Volumes ? : List < Value < string > > ; } export default class Instance extends ResourceBase < InstanceProperties > { static BlockDeviceMapping = BlockDeviceMapping ; static TimeBasedAutoScaling = TimeBasedAutoScaling ; static EbsBlockDevice = EbsBlockDevice ; constructor ( properties ) { super ( 'AWS::OpsWorks::Instance' , properties ) ; } }