import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class InstanceBlockDeviceMapping { DeviceName ? : Value < string > ; VirtualName ? : Value < string > ; NoDevice ? : Value < string > ; Ebs ? : EbsInstanceBlockDeviceSpecification ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ComponentConfiguration { ComponentArn ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EbsInstanceBlockDeviceSpecification { Encrypted ? : Value < boolean > ; DeleteOnTermination ? : Value < boolean > ; Iops ? : Value < number > ; KmsKeyId ? : Value < string > ; SnapshotId ? : Value < string > ; VolumeSize ? : Value < number > ; VolumeType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ImageRecipeProperties { Name : Value < string > ; Description ? : Value < string > ; Version : Value < string > ; Components : List < ComponentConfiguration > ; BlockDeviceMappings ? : List < InstanceBlockDeviceMapping > ; ParentImage : Value < string > ; WorkingDirectory ? : Value < string > ; Tags ? : { [ key ] : Value < string > ; } ; } export default class ImageRecipe extends ResourceBase < ImageRecipeProperties > { static InstanceBlockDeviceMapping = InstanceBlockDeviceMapping ; static ComponentConfiguration = ComponentConfiguration ; static EbsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification ; constructor ( properties ) { super ( 'AWS::ImageBuilder::ImageRecipe' , properties ) ; } }