import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; 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 class InstanceBlockDeviceMapping { DeviceName ? : Value < string > ; VirtualName ? : Value < string > ; NoDevice ? : Value < string > ; Ebs ? : EbsInstanceBlockDeviceSpecification ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InstanceConfiguration { Image ? : Value < string > ; BlockDeviceMappings ? : List < InstanceBlockDeviceMapping > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TargetContainerRepository { Service ? : Value < string > ; RepositoryName ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ContainerRecipeProperties { Name : Value < string > ; Description ? : Value < string > ; Version : Value < string > ; Components : List < ComponentConfiguration > ; InstanceConfiguration ? : InstanceConfiguration ; DockerfileTemplateData ? : Value < string > ; DockerfileTemplateUri ? : Value < string > ; PlatformOverride ? : Value < string > ; ContainerType : Value < string > ; ImageOsVersionOverride ? : Value < string > ; TargetRepository : TargetContainerRepository ; KmsKeyId ? : Value < string > ; ParentImage : Value < string > ; WorkingDirectory ? : Value < string > ; Tags ? : { [ key ] : Value < string > ; } ; } export default class ContainerRecipe extends ResourceBase < ContainerRecipeProperties > { static ComponentConfiguration = ComponentConfiguration ; static EbsInstanceBlockDeviceSpecification = EbsInstanceBlockDeviceSpecification ; static InstanceBlockDeviceMapping = InstanceBlockDeviceMapping ; static InstanceConfiguration = InstanceConfiguration ; static TargetContainerRepository = TargetContainerRepository ; constructor ( properties ) { super ( 'AWS::ImageBuilder::ContainerRecipe' , properties ) ; } }