import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Volumes { Host ? : VolumesHost ; EfsVolumeConfiguration ? : EfsVolumeConfiguration ; Name ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AuthorizationConfig { Iam ? : Value < string > ; AccessPointId ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ResourceRequirement { Type ? : Value < string > ; Value ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Environment { Value ? : Value < string > ; Name ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VolumesHost { SourcePath ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NodeProperties { MainNode ! : Value < number > ; NodeRangeProperties ! : List < NodeRangeProperty > ; NumNodes ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RetryStrategy { EvaluateOnExit ? : List < EvaluateOnExit > ; Attempts ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Secret { ValueFrom ! : Value < string > ; Name ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NetworkConfiguration { AssignPublicIp ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LogConfiguration { SecretOptions ? : List < Secret > ; Options ? : { [ key ] : any ; } ; LogDriver ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ContainerProperties { User ? : Value < string > ; Secrets ? : List < Secret > ; Memory ? : Value < number > ; Privileged ? : Value < boolean > ; LinuxParameters ? : LinuxParameters ; FargatePlatformConfiguration ? : FargatePlatformConfiguration ; JobRoleArn ? : Value < string > ; ReadonlyRootFilesystem ? : Value < boolean > ; Vcpus ? : Value < number > ; Image ! : Value < string > ; ResourceRequirements ? : List < ResourceRequirement > ; LogConfiguration ? : LogConfiguration ; MountPoints ? : List < MountPoints > ; ExecutionRoleArn ? : Value < string > ; Volumes ? : List < Volumes > ; Command ? : List < Value < string > > ; Environment ? : List < Environment > ; Ulimits ? : List < Ulimit > ; NetworkConfiguration ? : NetworkConfiguration ; InstanceType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MountPoints { ReadOnly ? : Value < boolean > ; SourceVolume ? : Value < string > ; ContainerPath ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EvaluateOnExit { Action ! : Value < string > ; OnExitCode ? : Value < string > ; OnReason ? : Value < string > ; OnStatusReason ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Ulimit { SoftLimit ! : Value < number > ; HardLimit ! : Value < number > ; Name ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LinuxParameters { Swappiness ? : Value < number > ; Tmpfs ? : List < Tmpfs > ; SharedMemorySize ? : Value < number > ; Devices ? : List < Device > ; InitProcessEnabled ? : Value < boolean > ; MaxSwap ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FargatePlatformConfiguration { PlatformVersion ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Timeout { AttemptDurationSeconds ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Tmpfs { Size ! : Value < number > ; ContainerPath ! : Value < string > ; MountOptions ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NodeRangeProperty { Container ? : ContainerProperties ; TargetNodes ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EfsVolumeConfiguration { TransitEncryption ? : Value < string > ; AuthorizationConfig ? : AuthorizationConfig ; FileSystemId ! : Value < string > ; RootDirectory ? : Value < string > ; TransitEncryptionPort ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Device { HostPath ? : Value < string > ; Permissions ? : List < Value < string > > ; ContainerPath ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface JobDefinitionProperties { Type : Value < string > ; Parameters ? : { [ key ] : any ; } ; NodeProperties ? : NodeProperties ; Timeout ? : Timeout ; ContainerProperties ? : ContainerProperties ; JobDefinitionName ? : Value < string > ; PropagateTags ? : Value < boolean > ; PlatformCapabilities ? : List < Value < string > > ; RetryStrategy ? : RetryStrategy ; Tags ? : { [ key ] : any ; } ; } export default class JobDefinition extends ResourceBase < JobDefinitionProperties > { static Volumes = Volumes ; static AuthorizationConfig = AuthorizationConfig ; static ResourceRequirement = ResourceRequirement ; static Environment = Environment ; static VolumesHost = VolumesHost ; static NodeProperties = NodeProperties ; static RetryStrategy = RetryStrategy ; static Secret = Secret ; static NetworkConfiguration = NetworkConfiguration ; static LogConfiguration = LogConfiguration ; static ContainerProperties = ContainerProperties ; static MountPoints = MountPoints ; static EvaluateOnExit = EvaluateOnExit ; static Ulimit = Ulimit ; static LinuxParameters = LinuxParameters ; static FargatePlatformConfiguration = FargatePlatformConfiguration ; static Timeout = Timeout ; static Tmpfs = Tmpfs ; static NodeRangeProperty = NodeRangeProperty ; static EfsVolumeConfiguration = EfsVolumeConfiguration ; static Device = Device ; constructor ( properties ) { super ( 'AWS::Batch::JobDefinition' , properties ) ; } }