All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.ecs.kotlin.outputs.TaskDefinitionVolume.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.ecs.kotlin.outputs

import kotlin.Boolean
import kotlin.String
import kotlin.Suppress

/**
 * The data volume configuration for tasks launched using this task definition. Specifying a volume configuration in a task definition is optional. The volume configuration may contain multiple volumes but only one volume configured at launch is supported. Each volume defined in the volume configuration may only specify a ``name`` and one of either ``configuredAtLaunch``, ``dockerVolumeConfiguration``, ``efsVolumeConfiguration``, ``fsxWindowsFileServerVolumeConfiguration``, or ``host``. If an empty volume configuration is specified, by default Amazon ECS uses a host volume. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html).
 * @property configuredAtLaunch Indicates whether the volume should be configured at launch time. This is used to create Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each task definition revision may only have one volume configured at launch in the volume configuration.
 *  To configure a volume at launch time, use this task definition revision and specify a ``volumeConfigurations`` object when calling the ``CreateService``, ``UpdateService``, ``RunTask`` or ``StartTask`` APIs.
 * @property dockerVolumeConfiguration This parameter is specified when you use Docker volumes.
 *  Windows containers only support the use of the ``local`` driver. To use bind mounts, specify the ``host`` parameter instead.
 *   Docker volumes aren't supported by tasks run on FARGATElong.
 * @property efsVolumeConfiguration This parameter is specified when you use an Amazon Elastic File System file system for task storage.
 * @property fSxWindowsFileServerVolumeConfiguration This parameter is specified when you use Amazon FSx for Windows File Server file system for task storage.
 * @property host This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.
 *  Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``.
 * @property name The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.
 *  When using a volume configured at launch, the ``name`` is required and must also be specified as the volume name in the ``ServiceVolumeConfiguration`` or ``TaskVolumeConfiguration`` parameter when creating your service or standalone task.
 *  For all other types of volumes, this name is referenced in the ``sourceVolume`` parameter of the ``mountPoints`` object in the container definition.
 *  When a volume is using the ``efsVolumeConfiguration``, the name is required.
 */
public data class TaskDefinitionVolume(
    public val configuredAtLaunch: Boolean? = null,
    public val dockerVolumeConfiguration: TaskDefinitionDockerVolumeConfiguration? = null,
    public val efsVolumeConfiguration: TaskDefinitionEfsVolumeConfiguration? = null,
    public val fSxWindowsFileServerVolumeConfiguration: TaskDefinitionFSxWindowsFileServerVolumeConfiguration? = null,
    public val host: TaskDefinitionHostVolumeProperties? = null,
    public val name: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.ecs.outputs.TaskDefinitionVolume): TaskDefinitionVolume = TaskDefinitionVolume(
            configuredAtLaunch = javaType.configuredAtLaunch().map({ args0 -> args0 }).orElse(null),
            dockerVolumeConfiguration = javaType.dockerVolumeConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.ecs.kotlin.outputs.TaskDefinitionDockerVolumeConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            efsVolumeConfiguration = javaType.efsVolumeConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.ecs.kotlin.outputs.TaskDefinitionEfsVolumeConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            fSxWindowsFileServerVolumeConfiguration = javaType.fSxWindowsFileServerVolumeConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.ecs.kotlin.outputs.TaskDefinitionFSxWindowsFileServerVolumeConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            host = javaType.host().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.ecs.kotlin.outputs.TaskDefinitionHostVolumeProperties.Companion.toKotlin(args0)
                })
            }).orElse(null),
            name = javaType.name().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy