import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class LogConfiguration { LogDriver ! : Value < string > ; Options ? : { [ key ] : Value < string > ; } ; SecretOptions ? : List < Secret > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FirelensConfiguration { Type ? : Value < string > ; Options ? : { [ key ] : Value < string > ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Device { ContainerPath ? : Value < string > ; HostPath ? : Value < string > ; Permissions ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EFSVolumeConfiguration { FilesystemId ! : Value < string > ; RootDirectory ? : Value < string > ; TransitEncryption ? : Value < string > ; TransitEncryptionPort ? : Value < number > ; AuthorizationConfig ? : AuthorizationConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SystemControl { Namespace ? : Value < string > ; Value ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EphemeralStorage { SizeInGiB ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ResourceRequirement { Type ! : Value < string > ; Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DockerVolumeConfiguration { Autoprovision ? : Value < boolean > ; Driver ? : Value < string > ; DriverOpts ? : { [ key ] : Value < string > ; } ; Labels ? : { [ key ] : Value < string > ; } ; Scope ? : 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 MountPoint { ContainerPath ? : Value < string > ; ReadOnly ? : Value < boolean > ; SourceVolume ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class KernelCapabilities { Add ? : List < Value < string > > ; Drop ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PortMapping { ContainerPort ? : Value < number > ; HostPort ? : Value < number > ; Protocol ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Ulimit { HardLimit ! : Value < number > ; Name ! : Value < string > ; SoftLimit ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ContainerDependency { ContainerName ? : Value < string > ; Condition ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HostVolumeProperties { SourcePath ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RepositoryCredentials { CredentialsParameter ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InferenceAccelerator { DeviceName ? : Value < string > ; DeviceType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Secret { Name ! : Value < string > ; ValueFrom ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EnvironmentFile { Value ? : Value < string > ; Type ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class VolumeFrom { ReadOnly ? : Value < boolean > ; SourceContainer ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HostEntry { Hostname ? : Value < string > ; IpAddress ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TaskDefinitionPlacementConstraint { Type ! : Value < string > ; Expression ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Volume { DockerVolumeConfiguration ? : DockerVolumeConfiguration ; EFSVolumeConfiguration ? : EFSVolumeConfiguration ; Host ? : HostVolumeProperties ; Name ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Tmpfs { ContainerPath ? : Value < string > ; MountOptions ? : List < Value < string > > ; Size ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ContainerDefinition { Command ? : List < Value < string > > ; Cpu ? : Value < number > ; DependsOn ? : List < ContainerDependency > ; DisableNetworking ? : Value < boolean > ; DnsSearchDomains ? : List < Value < string > > ; DnsServers ? : List < Value < string > > ; DockerLabels ? : { [ key ] : Value < string > ; } ; DockerSecurityOptions ? : List < Value < string > > ; EntryPoint ? : List < Value < string > > ; Environment ? : List < KeyValuePair > ; EnvironmentFiles ? : List < EnvironmentFile > ; Essential ? : Value < boolean > ; ExtraHosts ? : List < HostEntry > ; FirelensConfiguration ? : FirelensConfiguration ; HealthCheck ? : HealthCheck ; Hostname ? : Value < string > ; Image ? : Value < string > ; Links ? : List < Value < string > > ; LinuxParameters ? : LinuxParameters ; LogConfiguration ? : LogConfiguration ; Memory ? : Value < number > ; MemoryReservation ? : Value < number > ; MountPoints ? : List < MountPoint > ; Name ? : Value < string > ; PortMappings ? : List < PortMapping > ; Privileged ? : Value < boolean > ; ReadonlyRootFilesystem ? : Value < boolean > ; RepositoryCredentials ? : RepositoryCredentials ; ResourceRequirements ? : List < ResourceRequirement > ; Secrets ? : List < Secret > ; StartTimeout ? : Value < number > ; StopTimeout ? : Value < number > ; Ulimits ? : List < Ulimit > ; User ? : Value < string > ; VolumesFrom ? : List < VolumeFrom > ; WorkingDirectory ? : Value < string > ; Interactive ? : Value < boolean > ; PseudoTerminal ? : Value < boolean > ; SystemControls ? : List < SystemControl > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class KeyValuePair { Name ? : Value < string > ; Value ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HealthCheck { Command ? : List < Value < string > > ; Interval ? : Value < number > ; Timeout ? : Value < number > ; Retries ? : Value < number > ; StartPeriod ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LinuxParameters { Capabilities ? : KernelCapabilities ; Devices ? : List < Device > ; InitProcessEnabled ? : Value < boolean > ; MaxSwap ? : Value < number > ; SharedMemorySize ? : Value < number > ; Swappiness ? : Value < number > ; Tmpfs ? : List < Tmpfs > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProxyConfiguration { ContainerName ! : Value < string > ; ProxyConfigurationProperties ? : List < KeyValuePair > ; Type ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface TaskDefinitionProperties { Family ? : Value < string > ; ContainerDefinitions ? : List < ContainerDefinition > ; Cpu ? : Value < string > ; ExecutionRoleArn ? : Value < string > ; EphemeralStorage ? : EphemeralStorage ; InferenceAccelerators ? : List < InferenceAccelerator > ; Memory ? : Value < string > ; NetworkMode ? : Value < string > ; PlacementConstraints ? : List < TaskDefinitionPlacementConstraint > ; ProxyConfiguration ? : ProxyConfiguration ; RequiresCompatibilities ? : List < Value < string > > ; TaskRoleArn ? : Value < string > ; Volumes ? : List < Volume > ; PidMode ? : Value < string > ; IpcMode ? : Value < string > ; Tags ? : List < ResourceTag > ; } export default class TaskDefinition extends ResourceBase < TaskDefinitionProperties > { static LogConfiguration = LogConfiguration ; static FirelensConfiguration = FirelensConfiguration ; static Device = Device ; static EFSVolumeConfiguration = EFSVolumeConfiguration ; static SystemControl = SystemControl ; static EphemeralStorage = EphemeralStorage ; static ResourceRequirement = ResourceRequirement ; static DockerVolumeConfiguration = DockerVolumeConfiguration ; static AuthorizationConfig = AuthorizationConfig ; static MountPoint = MountPoint ; static KernelCapabilities = KernelCapabilities ; static PortMapping = PortMapping ; static Ulimit = Ulimit ; static ContainerDependency = ContainerDependency ; static HostVolumeProperties = HostVolumeProperties ; static RepositoryCredentials = RepositoryCredentials ; static InferenceAccelerator = InferenceAccelerator ; static Secret = Secret ; static EnvironmentFile = EnvironmentFile ; static VolumeFrom = VolumeFrom ; static HostEntry = HostEntry ; static TaskDefinitionPlacementConstraint = TaskDefinitionPlacementConstraint ; static Volume = Volume ; static Tmpfs = Tmpfs ; static ContainerDefinition = ContainerDefinition ; static KeyValuePair = KeyValuePair ; static HealthCheck = HealthCheck ; static LinuxParameters = LinuxParameters ; static ProxyConfiguration = ProxyConfiguration ; constructor ( properties ? ) { super ( 'AWS::ECS::TaskDefinition' , properties || { } ) ; } }