import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class ComponentPlatform { Name ? : Value < string > ; Attributes ? : { [ key ] : Value < string > ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaContainerParams { MemorySizeInKB ? : Value < number > ; MountROSysfs ? : Value < boolean > ; Volumes ? : List < LambdaVolumeMount > ; Devices ? : List < LambdaDeviceMount > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaVolumeMount { SourcePath ? : Value < string > ; DestinationPath ? : Value < string > ; Permission ? : Value < string > ; AddGroupOwner ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaFunctionRecipeSource { LambdaArn ? : Value < string > ; ComponentName ? : Value < string > ; ComponentVersion ? : Value < string > ; ComponentPlatforms ? : List < ComponentPlatform > ; ComponentDependencies ? : { [ key ] : ComponentDependencyRequirement ; } ; ComponentLambdaParameters ? : LambdaExecutionParameters ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ComponentDependencyRequirement { VersionRequirement ? : Value < string > ; DependencyType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaDeviceMount { Path ? : Value < string > ; Permission ? : Value < string > ; AddGroupOwner ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaLinuxProcessParams { IsolationMode ? : Value < string > ; ContainerParams ? : LambdaContainerParams ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaEventSource { Topic ? : Value < string > ; Type ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LambdaExecutionParameters { EventSources ? : List < LambdaEventSource > ; MaxQueueSize ? : Value < number > ; MaxInstancesCount ? : Value < number > ; MaxIdleTimeInSeconds ? : Value < number > ; TimeoutInSeconds ? : Value < number > ; StatusTimeoutInSeconds ? : Value < number > ; Pinned ? : Value < boolean > ; InputPayloadEncodingType ? : Value < string > ; ExecArgs ? : List < Value < string > > ; EnvironmentVariables ? : { [ key ] : Value < string > ; } ; LinuxProcessParams ? : LambdaLinuxProcessParams ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ComponentVersionProperties { InlineRecipe ? : Value < string > ; LambdaFunction ? : LambdaFunctionRecipeSource ; Tags ? : { [ key ] : Value < string > ; } ; } export default class ComponentVersion extends ResourceBase < ComponentVersionProperties > { static ComponentPlatform = ComponentPlatform ; static LambdaContainerParams = LambdaContainerParams ; static LambdaVolumeMount = LambdaVolumeMount ; static LambdaFunctionRecipeSource = LambdaFunctionRecipeSource ; static ComponentDependencyRequirement = ComponentDependencyRequirement ; static LambdaDeviceMount = LambdaDeviceMount ; static LambdaLinuxProcessParams = LambdaLinuxProcessParams ; static LambdaEventSource = LambdaEventSource ; static LambdaExecutionParameters = LambdaExecutionParameters ; constructor ( properties ? ) { super ( 'AWS::GreengrassV2::ComponentVersion' , properties || { } ) ; } }