Try AWS Native preview for resources not in the classic version.
aws.ecs.TaskDefinition
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
Manages a revision of an ECS task definition to be used in aws.ecs.Service.
Example Usage
Basic Example
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const service = new aws.ecs.TaskDefinition("service", {
    family: "service",
    containerDefinitions: JSON.stringify([
        {
            name: "first",
            image: "service-first",
            cpu: 10,
            memory: 512,
            essential: true,
            portMappings: [{
                containerPort: 80,
                hostPort: 80,
            }],
        },
        {
            name: "second",
            image: "service-second",
            cpu: 10,
            memory: 256,
            essential: true,
            portMappings: [{
                containerPort: 443,
                hostPort: 443,
            }],
        },
    ]),
    volumes: [{
        name: "service-storage",
        hostPath: "/ecs/service-storage",
    }],
    placementConstraints: [{
        type: "memberOf",
        expression: "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]",
    }],
});
import pulumi
import json
import pulumi_aws as aws
service = aws.ecs.TaskDefinition("service",
    family="service",
    container_definitions=json.dumps([
        {
            "name": "first",
            "image": "service-first",
            "cpu": 10,
            "memory": 512,
            "essential": True,
            "portMappings": [{
                "containerPort": 80,
                "hostPort": 80,
            }],
        },
        {
            "name": "second",
            "image": "service-second",
            "cpu": 10,
            "memory": 256,
            "essential": True,
            "portMappings": [{
                "containerPort": 443,
                "hostPort": 443,
            }],
        },
    ]),
    volumes=[{
        "name": "service-storage",
        "hostPath": "/ecs/service-storage",
    }],
    placement_constraints=[{
        "type": "memberOf",
        "expression": "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]",
    }])
package main
import (
	"encoding/json"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		tmpJSON0, err := json.Marshal([]interface{}{
			map[string]interface{}{
				"name":      "first",
				"image":     "service-first",
				"cpu":       10,
				"memory":    512,
				"essential": true,
				"portMappings": []map[string]interface{}{
					map[string]interface{}{
						"containerPort": 80,
						"hostPort":      80,
					},
				},
			},
			map[string]interface{}{
				"name":      "second",
				"image":     "service-second",
				"cpu":       10,
				"memory":    256,
				"essential": true,
				"portMappings": []map[string]interface{}{
					map[string]interface{}{
						"containerPort": 443,
						"hostPort":      443,
					},
				},
			},
		})
		if err != nil {
			return err
		}
		json0 := string(tmpJSON0)
		_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
			Family:               pulumi.String("service"),
			ContainerDefinitions: pulumi.String(json0),
			Volumes: ecs.TaskDefinitionVolumeArray{
				&ecs.TaskDefinitionVolumeArgs{
					Name:     pulumi.String("service-storage"),
					HostPath: pulumi.String("/ecs/service-storage"),
				},
			},
			PlacementConstraints: ecs.TaskDefinitionPlacementConstraintArray{
				&ecs.TaskDefinitionPlacementConstraintArgs{
					Type:       pulumi.String("memberOf"),
					Expression: pulumi.String("attribute:ecs.availability-zone in [us-west-2a, us-west-2b]"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() => 
{
    var service = new Aws.Ecs.TaskDefinition("service", new()
    {
        Family = "service",
        ContainerDefinitions = JsonSerializer.Serialize(new[]
        {
            new Dictionary<string, object?>
            {
                ["name"] = "first",
                ["image"] = "service-first",
                ["cpu"] = 10,
                ["memory"] = 512,
                ["essential"] = true,
                ["portMappings"] = new[]
                {
                    new Dictionary<string, object?>
                    {
                        ["containerPort"] = 80,
                        ["hostPort"] = 80,
                    },
                },
            },
            new Dictionary<string, object?>
            {
                ["name"] = "second",
                ["image"] = "service-second",
                ["cpu"] = 10,
                ["memory"] = 256,
                ["essential"] = true,
                ["portMappings"] = new[]
                {
                    new Dictionary<string, object?>
                    {
                        ["containerPort"] = 443,
                        ["hostPort"] = 443,
                    },
                },
            },
        }),
        Volumes = new[]
        {
            new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
            {
                Name = "service-storage",
                HostPath = "/ecs/service-storage",
            },
        },
        PlacementConstraints = new[]
        {
            new Aws.Ecs.Inputs.TaskDefinitionPlacementConstraintArgs
            {
                Type = "memberOf",
                Expression = "attribute:ecs.availability-zone in [us-west-2a, us-west-2b]",
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionPlacementConstraintArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
            .family("service")
            .containerDefinitions(serializeJson(
                jsonArray(
                    jsonObject(
                        jsonProperty("name", "first"),
                        jsonProperty("image", "service-first"),
                        jsonProperty("cpu", 10),
                        jsonProperty("memory", 512),
                        jsonProperty("essential", true),
                        jsonProperty("portMappings", jsonArray(jsonObject(
                            jsonProperty("containerPort", 80),
                            jsonProperty("hostPort", 80)
                        )))
                    ), 
                    jsonObject(
                        jsonProperty("name", "second"),
                        jsonProperty("image", "service-second"),
                        jsonProperty("cpu", 10),
                        jsonProperty("memory", 256),
                        jsonProperty("essential", true),
                        jsonProperty("portMappings", jsonArray(jsonObject(
                            jsonProperty("containerPort", 443),
                            jsonProperty("hostPort", 443)
                        )))
                    )
                )))
            .volumes(TaskDefinitionVolumeArgs.builder()
                .name("service-storage")
                .hostPath("/ecs/service-storage")
                .build())
            .placementConstraints(TaskDefinitionPlacementConstraintArgs.builder()
                .type("memberOf")
                .expression("attribute:ecs.availability-zone in [us-west-2a, us-west-2b]")
                .build())
            .build());
    }
}
resources:
  service:
    type: aws:ecs:TaskDefinition
    properties:
      family: service
      containerDefinitions:
        fn::toJSON:
          - name: first
            image: service-first
            cpu: 10
            memory: 512
            essential: true
            portMappings:
              - containerPort: 80
                hostPort: 80
          - name: second
            image: service-second
            cpu: 10
            memory: 256
            essential: true
            portMappings:
              - containerPort: 443
                hostPort: 443
      volumes:
        - name: service-storage
          hostPath: /ecs/service-storage
      placementConstraints:
        - type: memberOf
          expression: attribute:ecs.availability-zone in [us-west-2a, us-west-2b]
With AppMesh Proxy
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const service = new aws.ecs.TaskDefinition("service", {
    family: "service",
    containerDefinitions: std.file({
        input: "task-definitions/service.json",
    }).then(invoke => invoke.result),
    proxyConfiguration: {
        type: "APPMESH",
        containerName: "applicationContainerName",
        properties: {
            AppPorts: "8080",
            EgressIgnoredIPs: "169.254.170.2,169.254.169.254",
            IgnoredUID: "1337",
            ProxyEgressPort: "15001",
            ProxyIngressPort: "15000",
        },
    },
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
service = aws.ecs.TaskDefinition("service",
    family="service",
    container_definitions=std.file(input="task-definitions/service.json").result,
    proxy_configuration={
        "type": "APPMESH",
        "containerName": "applicationContainerName",
        "properties": {
            "AppPorts": "8080",
            "EgressIgnoredIPs": "169.254.170.2,169.254.169.254",
            "IgnoredUID": "1337",
            "ProxyEgressPort": "15001",
            "ProxyIngressPort": "15000",
        },
    })
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "task-definitions/service.json",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
			Family:               pulumi.String("service"),
			ContainerDefinitions: invokeFile.Result,
			ProxyConfiguration: &ecs.TaskDefinitionProxyConfigurationArgs{
				Type:          pulumi.String("APPMESH"),
				ContainerName: pulumi.String("applicationContainerName"),
				Properties: pulumi.StringMap{
					"AppPorts":         pulumi.String("8080"),
					"EgressIgnoredIPs": pulumi.String("169.254.170.2,169.254.169.254"),
					"IgnoredUID":       pulumi.String("1337"),
					"ProxyEgressPort":  pulumi.String("15001"),
					"ProxyIngressPort": pulumi.String("15000"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var service = new Aws.Ecs.TaskDefinition("service", new()
    {
        Family = "service",
        ContainerDefinitions = Std.File.Invoke(new()
        {
            Input = "task-definitions/service.json",
        }).Apply(invoke => invoke.Result),
        ProxyConfiguration = new Aws.Ecs.Inputs.TaskDefinitionProxyConfigurationArgs
        {
            Type = "APPMESH",
            ContainerName = "applicationContainerName",
            Properties = 
            {
                { "AppPorts", "8080" },
                { "EgressIgnoredIPs", "169.254.170.2,169.254.169.254" },
                { "IgnoredUID", "1337" },
                { "ProxyEgressPort", "15001" },
                { "ProxyIngressPort", "15000" },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionProxyConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
            .family("service")
            .containerDefinitions(StdFunctions.file(FileArgs.builder()
                .input("task-definitions/service.json")
                .build()).result())
            .proxyConfiguration(TaskDefinitionProxyConfigurationArgs.builder()
                .type("APPMESH")
                .containerName("applicationContainerName")
                .properties(Map.ofEntries(
                    Map.entry("AppPorts", "8080"),
                    Map.entry("EgressIgnoredIPs", "169.254.170.2,169.254.169.254"),
                    Map.entry("IgnoredUID", "1337"),
                    Map.entry("ProxyEgressPort", 15001),
                    Map.entry("ProxyIngressPort", 15000)
                ))
                .build())
            .build());
    }
}
resources:
  service:
    type: aws:ecs:TaskDefinition
    properties:
      family: service
      containerDefinitions:
        fn::invoke:
          Function: std:file
          Arguments:
            input: task-definitions/service.json
          Return: result
      proxyConfiguration:
        type: APPMESH
        containerName: applicationContainerName
        properties:
          AppPorts: '8080'
          EgressIgnoredIPs: 169.254.170.2,169.254.169.254
          IgnoredUID: '1337'
          ProxyEgressPort: 15001
          ProxyIngressPort: 15000
Example Using docker_volume_configuration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const service = new aws.ecs.TaskDefinition("service", {
    family: "service",
    containerDefinitions: std.file({
        input: "task-definitions/service.json",
    }).then(invoke => invoke.result),
    volumes: [{
        name: "service-storage",
        dockerVolumeConfiguration: {
            scope: "shared",
            autoprovision: true,
            driver: "local",
            driverOpts: {
                type: "nfs",
                device: `${fs.dnsName}:/`,
                o: `addr=${fs.dnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport`,
            },
        },
    }],
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
service = aws.ecs.TaskDefinition("service",
    family="service",
    container_definitions=std.file(input="task-definitions/service.json").result,
    volumes=[{
        "name": "service-storage",
        "dockerVolumeConfiguration": {
            "scope": "shared",
            "autoprovision": True,
            "driver": "local",
            "driverOpts": {
                "type": "nfs",
                "device": f"{fs['dnsName']}:/",
                "o": f"addr={fs['dnsName']},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport",
            },
        },
    }])
package main
import (
	"fmt"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "task-definitions/service.json",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
			Family:               pulumi.String("service"),
			ContainerDefinitions: invokeFile.Result,
			Volumes: ecs.TaskDefinitionVolumeArray{
				&ecs.TaskDefinitionVolumeArgs{
					Name: pulumi.String("service-storage"),
					DockerVolumeConfiguration: &ecs.TaskDefinitionVolumeDockerVolumeConfigurationArgs{
						Scope:         pulumi.String("shared"),
						Autoprovision: pulumi.Bool(true),
						Driver:        pulumi.String("local"),
						DriverOpts: pulumi.StringMap{
							"type":   pulumi.String("nfs"),
							"device": pulumi.String(fmt.Sprintf("%v:/", fs.DnsName)),
							"o":      pulumi.String(fmt.Sprintf("addr=%v,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport", fs.DnsName)),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var service = new Aws.Ecs.TaskDefinition("service", new()
    {
        Family = "service",
        ContainerDefinitions = Std.File.Invoke(new()
        {
            Input = "task-definitions/service.json",
        }).Apply(invoke => invoke.Result),
        Volumes = new[]
        {
            new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
            {
                Name = "service-storage",
                DockerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeDockerVolumeConfigurationArgs
                {
                    Scope = "shared",
                    Autoprovision = true,
                    Driver = "local",
                    DriverOpts = 
                    {
                        { "type", "nfs" },
                        { "device", $"{fs.DnsName}:/" },
                        { "o", $"addr={fs.DnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport" },
                    },
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeDockerVolumeConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
            .family("service")
            .containerDefinitions(StdFunctions.file(FileArgs.builder()
                .input("task-definitions/service.json")
                .build()).result())
            .volumes(TaskDefinitionVolumeArgs.builder()
                .name("service-storage")
                .dockerVolumeConfiguration(TaskDefinitionVolumeDockerVolumeConfigurationArgs.builder()
                    .scope("shared")
                    .autoprovision(true)
                    .driver("local")
                    .driverOpts(Map.ofEntries(
                        Map.entry("type", "nfs"),
                        Map.entry("device", String.format("%s:/", fs.dnsName())),
                        Map.entry("o", String.format("addr=%s,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport", fs.dnsName()))
                    ))
                    .build())
                .build())
            .build());
    }
}
resources:
  service:
    type: aws:ecs:TaskDefinition
    properties:
      family: service
      containerDefinitions:
        fn::invoke:
          Function: std:file
          Arguments:
            input: task-definitions/service.json
          Return: result
      volumes:
        - name: service-storage
          dockerVolumeConfiguration:
            scope: shared
            autoprovision: true
            driver: local
            driverOpts:
              type: nfs
              device: ${fs.dnsName}:/
              o: addr=${fs.dnsName},rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
Example Using efs_volume_configuration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const service = new aws.ecs.TaskDefinition("service", {
    family: "service",
    containerDefinitions: std.file({
        input: "task-definitions/service.json",
    }).then(invoke => invoke.result),
    volumes: [{
        name: "service-storage",
        efsVolumeConfiguration: {
            fileSystemId: fs.id,
            rootDirectory: "/opt/data",
            transitEncryption: "ENABLED",
            transitEncryptionPort: 2999,
            authorizationConfig: {
                accessPointId: test.id,
                iam: "ENABLED",
            },
        },
    }],
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
service = aws.ecs.TaskDefinition("service",
    family="service",
    container_definitions=std.file(input="task-definitions/service.json").result,
    volumes=[{
        "name": "service-storage",
        "efsVolumeConfiguration": {
            "fileSystemId": fs["id"],
            "rootDirectory": "/opt/data",
            "transitEncryption": "ENABLED",
            "transitEncryptionPort": 2999,
            "authorizationConfig": {
                "accessPointId": test["id"],
                "iam": "ENABLED",
            },
        },
    }])
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "task-definitions/service.json",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
			Family:               pulumi.String("service"),
			ContainerDefinitions: invokeFile.Result,
			Volumes: ecs.TaskDefinitionVolumeArray{
				&ecs.TaskDefinitionVolumeArgs{
					Name: pulumi.String("service-storage"),
					EfsVolumeConfiguration: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationArgs{
						FileSystemId:          pulumi.Any(fs.Id),
						RootDirectory:         pulumi.String("/opt/data"),
						TransitEncryption:     pulumi.String("ENABLED"),
						TransitEncryptionPort: pulumi.Int(2999),
						AuthorizationConfig: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{
							AccessPointId: pulumi.Any(test.Id),
							Iam:           pulumi.String("ENABLED"),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var service = new Aws.Ecs.TaskDefinition("service", new()
    {
        Family = "service",
        ContainerDefinitions = Std.File.Invoke(new()
        {
            Input = "task-definitions/service.json",
        }).Apply(invoke => invoke.Result),
        Volumes = new[]
        {
            new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
            {
                Name = "service-storage",
                EfsVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs
                {
                    FileSystemId = fs.Id,
                    RootDirectory = "/opt/data",
                    TransitEncryption = "ENABLED",
                    TransitEncryptionPort = 2999,
                    AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs
                    {
                        AccessPointId = test.Id,
                        Iam = "ENABLED",
                    },
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
            .family("service")
            .containerDefinitions(StdFunctions.file(FileArgs.builder()
                .input("task-definitions/service.json")
                .build()).result())
            .volumes(TaskDefinitionVolumeArgs.builder()
                .name("service-storage")
                .efsVolumeConfiguration(TaskDefinitionVolumeEfsVolumeConfigurationArgs.builder()
                    .fileSystemId(fs.id())
                    .rootDirectory("/opt/data")
                    .transitEncryption("ENABLED")
                    .transitEncryptionPort(2999)
                    .authorizationConfig(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs.builder()
                        .accessPointId(test.id())
                        .iam("ENABLED")
                        .build())
                    .build())
                .build())
            .build());
    }
}
resources:
  service:
    type: aws:ecs:TaskDefinition
    properties:
      family: service
      containerDefinitions:
        fn::invoke:
          Function: std:file
          Arguments:
            input: task-definitions/service.json
          Return: result
      volumes:
        - name: service-storage
          efsVolumeConfiguration:
            fileSystemId: ${fs.id}
            rootDirectory: /opt/data
            transitEncryption: ENABLED
            transitEncryptionPort: 2999
            authorizationConfig:
              accessPointId: ${test.id}
              iam: ENABLED
Example Using fsx_windows_file_server_volume_configuration
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const test = new aws.secretsmanager.SecretVersion("test", {
    secretId: testAwsSecretsmanagerSecret.id,
    secretString: JSON.stringify({
        username: "admin",
        password: testAwsDirectoryServiceDirectory.password,
    }),
});
const service = new aws.ecs.TaskDefinition("service", {
    family: "service",
    containerDefinitions: std.file({
        input: "task-definitions/service.json",
    }).then(invoke => invoke.result),
    volumes: [{
        name: "service-storage",
        fsxWindowsFileServerVolumeConfiguration: {
            fileSystemId: testAwsFsxWindowsFileSystem.id,
            rootDirectory: "\\data",
            authorizationConfig: {
                credentialsParameter: test.arn,
                domain: testAwsDirectoryServiceDirectory.name,
            },
        },
    }],
});
import pulumi
import json
import pulumi_aws as aws
import pulumi_std as std
test = aws.secretsmanager.SecretVersion("test",
    secret_id=test_aws_secretsmanager_secret["id"],
    secret_string=json.dumps({
        "username": "admin",
        "password": test_aws_directory_service_directory["password"],
    }))
service = aws.ecs.TaskDefinition("service",
    family="service",
    container_definitions=std.file(input="task-definitions/service.json").result,
    volumes=[{
        "name": "service-storage",
        "fsxWindowsFileServerVolumeConfiguration": {
            "fileSystemId": test_aws_fsx_windows_file_system["id"],
            "rootDirectory": "\\data",
            "authorizationConfig": {
                "credentialsParameter": test.arn,
                "domain": test_aws_directory_service_directory["name"],
            },
        },
    }])
package main
import (
	"encoding/json"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/secretsmanager"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		tmpJSON0, err := json.Marshal(map[string]interface{}{
			"username": "admin",
			"password": testAwsDirectoryServiceDirectory.Password,
		})
		if err != nil {
			return err
		}
		json0 := string(tmpJSON0)
		test, err := secretsmanager.NewSecretVersion(ctx, "test", &secretsmanager.SecretVersionArgs{
			SecretId:     pulumi.Any(testAwsSecretsmanagerSecret.Id),
			SecretString: pulumi.String(json0),
		})
		if err != nil {
			return err
		}
		invokeFile, err := std.File(ctx, &std.FileArgs{
			Input: "task-definitions/service.json",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ecs.NewTaskDefinition(ctx, "service", &ecs.TaskDefinitionArgs{
			Family:               pulumi.String("service"),
			ContainerDefinitions: invokeFile.Result,
			Volumes: ecs.TaskDefinitionVolumeArray{
				&ecs.TaskDefinitionVolumeArgs{
					Name: pulumi.String("service-storage"),
					FsxWindowsFileServerVolumeConfiguration: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{
						FileSystemId:  pulumi.Any(testAwsFsxWindowsFileSystem.Id),
						RootDirectory: pulumi.String("\\data"),
						AuthorizationConfig: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{
							CredentialsParameter: test.Arn,
							Domain:               pulumi.Any(testAwsDirectoryServiceDirectory.Name),
						},
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var test = new Aws.SecretsManager.SecretVersion("test", new()
    {
        SecretId = testAwsSecretsmanagerSecret.Id,
        SecretString = JsonSerializer.Serialize(new Dictionary<string, object?>
        {
            ["username"] = "admin",
            ["password"] = testAwsDirectoryServiceDirectory.Password,
        }),
    });
    var service = new Aws.Ecs.TaskDefinition("service", new()
    {
        Family = "service",
        ContainerDefinitions = Std.File.Invoke(new()
        {
            Input = "task-definitions/service.json",
        }).Apply(invoke => invoke.Result),
        Volumes = new[]
        {
            new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
            {
                Name = "service-storage",
                FsxWindowsFileServerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs
                {
                    FileSystemId = testAwsFsxWindowsFileSystem.Id,
                    RootDirectory = "\\data",
                    AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs
                    {
                        CredentialsParameter = test.Arn,
                        Domain = testAwsDirectoryServiceDirectory.Name,
                    },
                },
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.secretsmanager.SecretVersion;
import com.pulumi.aws.secretsmanager.SecretVersionArgs;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var test = new SecretVersion("test", SecretVersionArgs.builder()
            .secretId(testAwsSecretsmanagerSecret.id())
            .secretString(serializeJson(
                jsonObject(
                    jsonProperty("username", "admin"),
                    jsonProperty("password", testAwsDirectoryServiceDirectory.password())
                )))
            .build());
        var service = new TaskDefinition("service", TaskDefinitionArgs.builder()
            .family("service")
            .containerDefinitions(StdFunctions.file(FileArgs.builder()
                .input("task-definitions/service.json")
                .build()).result())
            .volumes(TaskDefinitionVolumeArgs.builder()
                .name("service-storage")
                .fsxWindowsFileServerVolumeConfiguration(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs.builder()
                    .fileSystemId(testAwsFsxWindowsFileSystem.id())
                    .rootDirectory("\\data")
                    .authorizationConfig(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs.builder()
                        .credentialsParameter(test.arn())
                        .domain(testAwsDirectoryServiceDirectory.name())
                        .build())
                    .build())
                .build())
            .build());
    }
}
resources:
  service:
    type: aws:ecs:TaskDefinition
    properties:
      family: service
      containerDefinitions:
        fn::invoke:
          Function: std:file
          Arguments:
            input: task-definitions/service.json
          Return: result
      volumes:
        - name: service-storage
          fsxWindowsFileServerVolumeConfiguration:
            fileSystemId: ${testAwsFsxWindowsFileSystem.id}
            rootDirectory: \data
            authorizationConfig:
              credentialsParameter: ${test.arn}
              domain: ${testAwsDirectoryServiceDirectory.name}
  test:
    type: aws:secretsmanager:SecretVersion
    properties:
      secretId: ${testAwsSecretsmanagerSecret.id}
      secretString:
        fn::toJSON:
          username: admin
          password: ${testAwsDirectoryServiceDirectory.password}
Example Using container_definitions and inference_accelerator
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.ecs.TaskDefinition("test", {
    family: "test",
    containerDefinitions: `[
  {
    "cpu": 10,
    "command": ["sleep", "10"],
    "entryPoint": ["/"],
    "environment": [
      {"name": "VARNAME", "value": "VARVAL"}
    ],
    "essential": true,
    "image": "jenkins",
    "memory": 128,
    "name": "jenkins",
    "portMappings": [
      {
        "containerPort": 80,
        "hostPort": 8080
      }
    ],
        "resourceRequirements":[
            {
                "type":"InferenceAccelerator",
                "value":"device_1"
            }
        ]
  }
]
`,
    inferenceAccelerators: [{
        deviceName: "device_1",
        deviceType: "eia1.medium",
    }],
});
import pulumi
import pulumi_aws as aws
test = aws.ecs.TaskDefinition("test",
    family="test",
    container_definitions="""[
  {
    "cpu": 10,
    "command": ["sleep", "10"],
    "entryPoint": ["/"],
    "environment": [
      {"name": "VARNAME", "value": "VARVAL"}
    ],
    "essential": true,
    "image": "jenkins",
    "memory": 128,
    "name": "jenkins",
    "portMappings": [
      {
        "containerPort": 80,
        "hostPort": 8080
      }
    ],
        "resourceRequirements":[
            {
                "type":"InferenceAccelerator",
                "value":"device_1"
            }
        ]
  }
]
""",
    inference_accelerators=[{
        "deviceName": "device_1",
        "deviceType": "eia1.medium",
    }])
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ecs.NewTaskDefinition(ctx, "test", &ecs.TaskDefinitionArgs{
			Family: pulumi.String("test"),
			ContainerDefinitions: pulumi.String(`[
  {
    "cpu": 10,
    "command": ["sleep", "10"],
    "entryPoint": ["/"],
    "environment": [
      {"name": "VARNAME", "value": "VARVAL"}
    ],
    "essential": true,
    "image": "jenkins",
    "memory": 128,
    "name": "jenkins",
    "portMappings": [
      {
        "containerPort": 80,
        "hostPort": 8080
      }
    ],
        "resourceRequirements":[
            {
                "type":"InferenceAccelerator",
                "value":"device_1"
            }
        ]
  }
]
`),
			InferenceAccelerators: ecs.TaskDefinitionInferenceAcceleratorArray{
				&ecs.TaskDefinitionInferenceAcceleratorArgs{
					DeviceName: pulumi.String("device_1"),
					DeviceType: pulumi.String("eia1.medium"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() => 
{
    var test = new Aws.Ecs.TaskDefinition("test", new()
    {
        Family = "test",
        ContainerDefinitions = @"[
  {
    ""cpu"": 10,
    ""command"": [""sleep"", ""10""],
    ""entryPoint"": [""/""],
    ""environment"": [
      {""name"": ""VARNAME"", ""value"": ""VARVAL""}
    ],
    ""essential"": true,
    ""image"": ""jenkins"",
    ""memory"": 128,
    ""name"": ""jenkins"",
    ""portMappings"": [
      {
        ""containerPort"": 80,
        ""hostPort"": 8080
      }
    ],
        ""resourceRequirements"":[
            {
                ""type"":""InferenceAccelerator"",
                ""value"":""device_1""
            }
        ]
  }
]
",
        InferenceAccelerators = new[]
        {
            new Aws.Ecs.Inputs.TaskDefinitionInferenceAcceleratorArgs
            {
                DeviceName = "device_1",
                DeviceType = "eia1.medium",
            },
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionInferenceAcceleratorArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var test = new TaskDefinition("test", TaskDefinitionArgs.builder()
            .family("test")
            .containerDefinitions("""
[
  {
    "cpu": 10,
    "command": ["sleep", "10"],
    "entryPoint": ["/"],
    "environment": [
      {"name": "VARNAME", "value": "VARVAL"}
    ],
    "essential": true,
    "image": "jenkins",
    "memory": 128,
    "name": "jenkins",
    "portMappings": [
      {
        "containerPort": 80,
        "hostPort": 8080
      }
    ],
        "resourceRequirements":[
            {
                "type":"InferenceAccelerator",
                "value":"device_1"
            }
        ]
  }
]
            """)
            .inferenceAccelerators(TaskDefinitionInferenceAcceleratorArgs.builder()
                .deviceName("device_1")
                .deviceType("eia1.medium")
                .build())
            .build());
    }
}
resources:
  test:
    type: aws:ecs:TaskDefinition
    properties:
      family: test
      containerDefinitions: |
        [
          {
            "cpu": 10,
            "command": ["sleep", "10"],
            "entryPoint": ["/"],
            "environment": [
              {"name": "VARNAME", "value": "VARVAL"}
            ],
            "essential": true,
            "image": "jenkins",
            "memory": 128,
            "name": "jenkins",
            "portMappings": [
              {
                "containerPort": 80,
                "hostPort": 8080
              }
            ],
                "resourceRequirements":[
                    {
                        "type":"InferenceAccelerator",
                        "value":"device_1"
                    }
                ]
          }
        ]        
      inferenceAccelerators:
        - deviceName: device_1
          deviceType: eia1.medium
Example Using runtime_platform and fargate
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.ecs.TaskDefinition("test", {
    family: "test",
    requiresCompatibilities: ["FARGATE"],
    networkMode: "awsvpc",
    cpu: "1024",
    memory: "2048",
    containerDefinitions: `[
  {
    "name": "iis",
    "image": "mcr.microsoft.com/windows/servercore/iis",
    "cpu": 1024,
    "memory": 2048,
    "essential": true
  }
]
`,
    runtimePlatform: {
        operatingSystemFamily: "WINDOWS_SERVER_2019_CORE",
        cpuArchitecture: "X86_64",
    },
});
import pulumi
import pulumi_aws as aws
test = aws.ecs.TaskDefinition("test",
    family="test",
    requires_compatibilities=["FARGATE"],
    network_mode="awsvpc",
    cpu="1024",
    memory="2048",
    container_definitions="""[
  {
    "name": "iis",
    "image": "mcr.microsoft.com/windows/servercore/iis",
    "cpu": 1024,
    "memory": 2048,
    "essential": true
  }
]
""",
    runtime_platform={
        "operatingSystemFamily": "WINDOWS_SERVER_2019_CORE",
        "cpuArchitecture": "X86_64",
    })
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ecs.NewTaskDefinition(ctx, "test", &ecs.TaskDefinitionArgs{
			Family: pulumi.String("test"),
			RequiresCompatibilities: pulumi.StringArray{
				pulumi.String("FARGATE"),
			},
			NetworkMode: pulumi.String("awsvpc"),
			Cpu:         pulumi.String("1024"),
			Memory:      pulumi.String("2048"),
			ContainerDefinitions: pulumi.String(`[
  {
    "name": "iis",
    "image": "mcr.microsoft.com/windows/servercore/iis",
    "cpu": 1024,
    "memory": 2048,
    "essential": true
  }
]
`),
			RuntimePlatform: &ecs.TaskDefinitionRuntimePlatformArgs{
				OperatingSystemFamily: pulumi.String("WINDOWS_SERVER_2019_CORE"),
				CpuArchitecture:       pulumi.String("X86_64"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() => 
{
    var test = new Aws.Ecs.TaskDefinition("test", new()
    {
        Family = "test",
        RequiresCompatibilities = new[]
        {
            "FARGATE",
        },
        NetworkMode = "awsvpc",
        Cpu = "1024",
        Memory = "2048",
        ContainerDefinitions = @"[
  {
    ""name"": ""iis"",
    ""image"": ""mcr.microsoft.com/windows/servercore/iis"",
    ""cpu"": 1024,
    ""memory"": 2048,
    ""essential"": true
  }
]
",
        RuntimePlatform = new Aws.Ecs.Inputs.TaskDefinitionRuntimePlatformArgs
        {
            OperatingSystemFamily = "WINDOWS_SERVER_2019_CORE",
            CpuArchitecture = "X86_64",
        },
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.TaskDefinition;
import com.pulumi.aws.ecs.TaskDefinitionArgs;
import com.pulumi.aws.ecs.inputs.TaskDefinitionRuntimePlatformArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        var test = new TaskDefinition("test", TaskDefinitionArgs.builder()
            .family("test")
            .requiresCompatibilities("FARGATE")
            .networkMode("awsvpc")
            .cpu(1024)
            .memory(2048)
            .containerDefinitions("""
[
  {
    "name": "iis",
    "image": "mcr.microsoft.com/windows/servercore/iis",
    "cpu": 1024,
    "memory": 2048,
    "essential": true
  }
]
            """)
            .runtimePlatform(TaskDefinitionRuntimePlatformArgs.builder()
                .operatingSystemFamily("WINDOWS_SERVER_2019_CORE")
                .cpuArchitecture("X86_64")
                .build())
            .build());
    }
}
resources:
  test:
    type: aws:ecs:TaskDefinition
    properties:
      family: test
      requiresCompatibilities:
        - FARGATE
      networkMode: awsvpc
      cpu: 1024
      memory: 2048
      containerDefinitions: |
        [
          {
            "name": "iis",
            "image": "mcr.microsoft.com/windows/servercore/iis",
            "cpu": 1024,
            "memory": 2048,
            "essential": true
          }
        ]        
      runtimePlatform:
        operatingSystemFamily: WINDOWS_SERVER_2019_CORE
        cpuArchitecture: X86_64
Create TaskDefinition Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new TaskDefinition(name: string, args: TaskDefinitionArgs, opts?: CustomResourceOptions);@overload
def TaskDefinition(resource_name: str,
                   args: TaskDefinitionArgs,
                   opts: Optional[ResourceOptions] = None)
@overload
def TaskDefinition(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   family: Optional[str] = None,
                   container_definitions: Optional[str] = None,
                   network_mode: Optional[str] = None,
                   proxy_configuration: Optional[TaskDefinitionProxyConfigurationArgs] = None,
                   ephemeral_storage: Optional[TaskDefinitionEphemeralStorageArgs] = None,
                   inference_accelerators: Optional[Sequence[TaskDefinitionInferenceAcceleratorArgs]] = None,
                   ipc_mode: Optional[str] = None,
                   memory: Optional[str] = None,
                   cpu: Optional[str] = None,
                   pid_mode: Optional[str] = None,
                   placement_constraints: Optional[Sequence[TaskDefinitionPlacementConstraintArgs]] = None,
                   execution_role_arn: Optional[str] = None,
                   requires_compatibilities: Optional[Sequence[str]] = None,
                   runtime_platform: Optional[TaskDefinitionRuntimePlatformArgs] = None,
                   skip_destroy: Optional[bool] = None,
                   tags: Optional[Mapping[str, str]] = None,
                   task_role_arn: Optional[str] = None,
                   track_latest: Optional[bool] = None,
                   volumes: Optional[Sequence[TaskDefinitionVolumeArgs]] = None)func NewTaskDefinition(ctx *Context, name string, args TaskDefinitionArgs, opts ...ResourceOption) (*TaskDefinition, error)public TaskDefinition(string name, TaskDefinitionArgs args, CustomResourceOptions? opts = null)
public TaskDefinition(String name, TaskDefinitionArgs args)
public TaskDefinition(String name, TaskDefinitionArgs args, CustomResourceOptions options)
type: aws:ecs:TaskDefinition
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
 - The unique name of the resource.
 - args TaskDefinitionArgs
 - The arguments to resource properties.
 - opts CustomResourceOptions
 - Bag of options to control resource's behavior.
 
- resource_name str
 - The unique name of the resource.
 - args TaskDefinitionArgs
 - The arguments to resource properties.
 - opts ResourceOptions
 - Bag of options to control resource's behavior.
 
- ctx Context
 - Context object for the current deployment.
 - name string
 - The unique name of the resource.
 - args TaskDefinitionArgs
 - The arguments to resource properties.
 - opts ResourceOption
 - Bag of options to control resource's behavior.
 
- name string
 - The unique name of the resource.
 - args TaskDefinitionArgs
 - The arguments to resource properties.
 - opts CustomResourceOptions
 - Bag of options to control resource's behavior.
 
- name String
 - The unique name of the resource.
 - args TaskDefinitionArgs
 - The arguments to resource properties.
 - options CustomResourceOptions
 - Bag of options to control resource's behavior.
 
Constructor example
The following reference example uses placeholder values for all input properties.
var taskDefinitionResource = new Aws.Ecs.TaskDefinition("taskDefinitionResource", new()
{
    Family = "string",
    ContainerDefinitions = "string",
    NetworkMode = "string",
    ProxyConfiguration = new Aws.Ecs.Inputs.TaskDefinitionProxyConfigurationArgs
    {
        ContainerName = "string",
        Properties = 
        {
            { "string", "string" },
        },
        Type = "string",
    },
    EphemeralStorage = new Aws.Ecs.Inputs.TaskDefinitionEphemeralStorageArgs
    {
        SizeInGib = 0,
    },
    InferenceAccelerators = new[]
    {
        new Aws.Ecs.Inputs.TaskDefinitionInferenceAcceleratorArgs
        {
            DeviceName = "string",
            DeviceType = "string",
        },
    },
    IpcMode = "string",
    Memory = "string",
    Cpu = "string",
    PidMode = "string",
    PlacementConstraints = new[]
    {
        new Aws.Ecs.Inputs.TaskDefinitionPlacementConstraintArgs
        {
            Type = "string",
            Expression = "string",
        },
    },
    ExecutionRoleArn = "string",
    RequiresCompatibilities = new[]
    {
        "string",
    },
    RuntimePlatform = new Aws.Ecs.Inputs.TaskDefinitionRuntimePlatformArgs
    {
        CpuArchitecture = "string",
        OperatingSystemFamily = "string",
    },
    SkipDestroy = false,
    Tags = 
    {
        { "string", "string" },
    },
    TaskRoleArn = "string",
    TrackLatest = false,
    Volumes = new[]
    {
        new Aws.Ecs.Inputs.TaskDefinitionVolumeArgs
        {
            Name = "string",
            ConfigureAtLaunch = false,
            DockerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeDockerVolumeConfigurationArgs
            {
                Autoprovision = false,
                Driver = "string",
                DriverOpts = 
                {
                    { "string", "string" },
                },
                Labels = 
                {
                    { "string", "string" },
                },
                Scope = "string",
            },
            EfsVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationArgs
            {
                FileSystemId = "string",
                AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs
                {
                    AccessPointId = "string",
                    Iam = "string",
                },
                RootDirectory = "string",
                TransitEncryption = "string",
                TransitEncryptionPort = 0,
            },
            FsxWindowsFileServerVolumeConfiguration = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs
            {
                AuthorizationConfig = new Aws.Ecs.Inputs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs
                {
                    CredentialsParameter = "string",
                    Domain = "string",
                },
                FileSystemId = "string",
                RootDirectory = "string",
            },
            HostPath = "string",
        },
    },
});
example, err := ecs.NewTaskDefinition(ctx, "taskDefinitionResource", &ecs.TaskDefinitionArgs{
	Family:               pulumi.String("string"),
	ContainerDefinitions: pulumi.String("string"),
	NetworkMode:          pulumi.String("string"),
	ProxyConfiguration: &ecs.TaskDefinitionProxyConfigurationArgs{
		ContainerName: pulumi.String("string"),
		Properties: pulumi.StringMap{
			"string": pulumi.String("string"),
		},
		Type: pulumi.String("string"),
	},
	EphemeralStorage: &ecs.TaskDefinitionEphemeralStorageArgs{
		SizeInGib: pulumi.Int(0),
	},
	InferenceAccelerators: ecs.TaskDefinitionInferenceAcceleratorArray{
		&ecs.TaskDefinitionInferenceAcceleratorArgs{
			DeviceName: pulumi.String("string"),
			DeviceType: pulumi.String("string"),
		},
	},
	IpcMode: pulumi.String("string"),
	Memory:  pulumi.String("string"),
	Cpu:     pulumi.String("string"),
	PidMode: pulumi.String("string"),
	PlacementConstraints: ecs.TaskDefinitionPlacementConstraintArray{
		&ecs.TaskDefinitionPlacementConstraintArgs{
			Type:       pulumi.String("string"),
			Expression: pulumi.String("string"),
		},
	},
	ExecutionRoleArn: pulumi.String("string"),
	RequiresCompatibilities: pulumi.StringArray{
		pulumi.String("string"),
	},
	RuntimePlatform: &ecs.TaskDefinitionRuntimePlatformArgs{
		CpuArchitecture:       pulumi.String("string"),
		OperatingSystemFamily: pulumi.String("string"),
	},
	SkipDestroy: pulumi.Bool(false),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	TaskRoleArn: pulumi.String("string"),
	TrackLatest: pulumi.Bool(false),
	Volumes: ecs.TaskDefinitionVolumeArray{
		&ecs.TaskDefinitionVolumeArgs{
			Name:              pulumi.String("string"),
			ConfigureAtLaunch: pulumi.Bool(false),
			DockerVolumeConfiguration: &ecs.TaskDefinitionVolumeDockerVolumeConfigurationArgs{
				Autoprovision: pulumi.Bool(false),
				Driver:        pulumi.String("string"),
				DriverOpts: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
				Labels: pulumi.StringMap{
					"string": pulumi.String("string"),
				},
				Scope: pulumi.String("string"),
			},
			EfsVolumeConfiguration: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationArgs{
				FileSystemId: pulumi.String("string"),
				AuthorizationConfig: &ecs.TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs{
					AccessPointId: pulumi.String("string"),
					Iam:           pulumi.String("string"),
				},
				RootDirectory:         pulumi.String("string"),
				TransitEncryption:     pulumi.String("string"),
				TransitEncryptionPort: pulumi.Int(0),
			},
			FsxWindowsFileServerVolumeConfiguration: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs{
				AuthorizationConfig: &ecs.TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs{
					CredentialsParameter: pulumi.String("string"),
					Domain:               pulumi.String("string"),
				},
				FileSystemId:  pulumi.String("string"),
				RootDirectory: pulumi.String("string"),
			},
			HostPath: pulumi.String("string"),
		},
	},
})
var taskDefinitionResource = new TaskDefinition("taskDefinitionResource", TaskDefinitionArgs.builder()
    .family("string")
    .containerDefinitions("string")
    .networkMode("string")
    .proxyConfiguration(TaskDefinitionProxyConfigurationArgs.builder()
        .containerName("string")
        .properties(Map.of("string", "string"))
        .type("string")
        .build())
    .ephemeralStorage(TaskDefinitionEphemeralStorageArgs.builder()
        .sizeInGib(0)
        .build())
    .inferenceAccelerators(TaskDefinitionInferenceAcceleratorArgs.builder()
        .deviceName("string")
        .deviceType("string")
        .build())
    .ipcMode("string")
    .memory("string")
    .cpu("string")
    .pidMode("string")
    .placementConstraints(TaskDefinitionPlacementConstraintArgs.builder()
        .type("string")
        .expression("string")
        .build())
    .executionRoleArn("string")
    .requiresCompatibilities("string")
    .runtimePlatform(TaskDefinitionRuntimePlatformArgs.builder()
        .cpuArchitecture("string")
        .operatingSystemFamily("string")
        .build())
    .skipDestroy(false)
    .tags(Map.of("string", "string"))
    .taskRoleArn("string")
    .trackLatest(false)
    .volumes(TaskDefinitionVolumeArgs.builder()
        .name("string")
        .configureAtLaunch(false)
        .dockerVolumeConfiguration(TaskDefinitionVolumeDockerVolumeConfigurationArgs.builder()
            .autoprovision(false)
            .driver("string")
            .driverOpts(Map.of("string", "string"))
            .labels(Map.of("string", "string"))
            .scope("string")
            .build())
        .efsVolumeConfiguration(TaskDefinitionVolumeEfsVolumeConfigurationArgs.builder()
            .fileSystemId("string")
            .authorizationConfig(TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs.builder()
                .accessPointId("string")
                .iam("string")
                .build())
            .rootDirectory("string")
            .transitEncryption("string")
            .transitEncryptionPort(0)
            .build())
        .fsxWindowsFileServerVolumeConfiguration(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs.builder()
            .authorizationConfig(TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs.builder()
                .credentialsParameter("string")
                .domain("string")
                .build())
            .fileSystemId("string")
            .rootDirectory("string")
            .build())
        .hostPath("string")
        .build())
    .build());
task_definition_resource = aws.ecs.TaskDefinition("taskDefinitionResource",
    family="string",
    container_definitions="string",
    network_mode="string",
    proxy_configuration={
        "containerName": "string",
        "properties": {
            "string": "string",
        },
        "type": "string",
    },
    ephemeral_storage={
        "sizeInGib": 0,
    },
    inference_accelerators=[{
        "deviceName": "string",
        "deviceType": "string",
    }],
    ipc_mode="string",
    memory="string",
    cpu="string",
    pid_mode="string",
    placement_constraints=[{
        "type": "string",
        "expression": "string",
    }],
    execution_role_arn="string",
    requires_compatibilities=["string"],
    runtime_platform={
        "cpuArchitecture": "string",
        "operatingSystemFamily": "string",
    },
    skip_destroy=False,
    tags={
        "string": "string",
    },
    task_role_arn="string",
    track_latest=False,
    volumes=[{
        "name": "string",
        "configureAtLaunch": False,
        "dockerVolumeConfiguration": {
            "autoprovision": False,
            "driver": "string",
            "driverOpts": {
                "string": "string",
            },
            "labels": {
                "string": "string",
            },
            "scope": "string",
        },
        "efsVolumeConfiguration": {
            "fileSystemId": "string",
            "authorizationConfig": {
                "accessPointId": "string",
                "iam": "string",
            },
            "rootDirectory": "string",
            "transitEncryption": "string",
            "transitEncryptionPort": 0,
        },
        "fsxWindowsFileServerVolumeConfiguration": {
            "authorizationConfig": {
                "credentialsParameter": "string",
                "domain": "string",
            },
            "fileSystemId": "string",
            "rootDirectory": "string",
        },
        "hostPath": "string",
    }])
const taskDefinitionResource = new aws.ecs.TaskDefinition("taskDefinitionResource", {
    family: "string",
    containerDefinitions: "string",
    networkMode: "string",
    proxyConfiguration: {
        containerName: "string",
        properties: {
            string: "string",
        },
        type: "string",
    },
    ephemeralStorage: {
        sizeInGib: 0,
    },
    inferenceAccelerators: [{
        deviceName: "string",
        deviceType: "string",
    }],
    ipcMode: "string",
    memory: "string",
    cpu: "string",
    pidMode: "string",
    placementConstraints: [{
        type: "string",
        expression: "string",
    }],
    executionRoleArn: "string",
    requiresCompatibilities: ["string"],
    runtimePlatform: {
        cpuArchitecture: "string",
        operatingSystemFamily: "string",
    },
    skipDestroy: false,
    tags: {
        string: "string",
    },
    taskRoleArn: "string",
    trackLatest: false,
    volumes: [{
        name: "string",
        configureAtLaunch: false,
        dockerVolumeConfiguration: {
            autoprovision: false,
            driver: "string",
            driverOpts: {
                string: "string",
            },
            labels: {
                string: "string",
            },
            scope: "string",
        },
        efsVolumeConfiguration: {
            fileSystemId: "string",
            authorizationConfig: {
                accessPointId: "string",
                iam: "string",
            },
            rootDirectory: "string",
            transitEncryption: "string",
            transitEncryptionPort: 0,
        },
        fsxWindowsFileServerVolumeConfiguration: {
            authorizationConfig: {
                credentialsParameter: "string",
                domain: "string",
            },
            fileSystemId: "string",
            rootDirectory: "string",
        },
        hostPath: "string",
    }],
});
type: aws:ecs:TaskDefinition
properties:
    containerDefinitions: string
    cpu: string
    ephemeralStorage:
        sizeInGib: 0
    executionRoleArn: string
    family: string
    inferenceAccelerators:
        - deviceName: string
          deviceType: string
    ipcMode: string
    memory: string
    networkMode: string
    pidMode: string
    placementConstraints:
        - expression: string
          type: string
    proxyConfiguration:
        containerName: string
        properties:
            string: string
        type: string
    requiresCompatibilities:
        - string
    runtimePlatform:
        cpuArchitecture: string
        operatingSystemFamily: string
    skipDestroy: false
    tags:
        string: string
    taskRoleArn: string
    trackLatest: false
    volumes:
        - configureAtLaunch: false
          dockerVolumeConfiguration:
            autoprovision: false
            driver: string
            driverOpts:
                string: string
            labels:
                string: string
            scope: string
          efsVolumeConfiguration:
            authorizationConfig:
                accessPointId: string
                iam: string
            fileSystemId: string
            rootDirectory: string
            transitEncryption: string
            transitEncryptionPort: 0
          fsxWindowsFileServerVolumeConfiguration:
            authorizationConfig:
                credentialsParameter: string
                domain: string
            fileSystemId: string
            rootDirectory: string
          hostPath: string
          name: string
TaskDefinition Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The TaskDefinition resource accepts the following input properties:
- Container
Definitions string - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - Family string
 A unique name for your task definition.
The following arguments are optional:
- Cpu string
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Ephemeral
Storage TaskDefinition Ephemeral Storage  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - Execution
Role stringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - Inference
Accelerators List<TaskDefinition Inference Accelerator>  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - Ipc
Mode string - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - Memory string
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Network
Mode string - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - Pid
Mode string - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - Placement
Constraints List<TaskDefinition Placement Constraint>  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - Proxy
Configuration TaskDefinition Proxy Configuration  - Configuration block for the App Mesh proxy. Detailed below.
 - Requires
Compatibilities List<string> - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - Runtime
Platform TaskDefinition Runtime Platform  - Configuration block for runtime_platform that containers in your task may use.
 - Skip
Destroy bool - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Dictionary<string, string>
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Task
Role stringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - Track
Latest bool - Whether should track latest task definition or the one created with the resource. Default is 
false. - Volumes
List<Task
Definition Volume>  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- Container
Definitions string - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - Family string
 A unique name for your task definition.
The following arguments are optional:
- Cpu string
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Ephemeral
Storage TaskDefinition Ephemeral Storage Args  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - Execution
Role stringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - Inference
Accelerators []TaskDefinition Inference Accelerator Args  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - Ipc
Mode string - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - Memory string
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Network
Mode string - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - Pid
Mode string - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - Placement
Constraints []TaskDefinition Placement Constraint Args  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - Proxy
Configuration TaskDefinition Proxy Configuration Args  - Configuration block for the App Mesh proxy. Detailed below.
 - Requires
Compatibilities []string - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - Runtime
Platform TaskDefinition Runtime Platform Args  - Configuration block for runtime_platform that containers in your task may use.
 - Skip
Destroy bool - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - map[string]string
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Task
Role stringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - Track
Latest bool - Whether should track latest task definition or the one created with the resource. Default is 
false. - Volumes
[]Task
Definition Volume Args  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- container
Definitions String - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - family String
 A unique name for your task definition.
The following arguments are optional:
- cpu String
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral
Storage TaskDefinition Ephemeral Storage  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution
Role StringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - inference
Accelerators List<TaskDefinition Inference Accelerator>  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc
Mode String - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory String
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network
Mode String - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid
Mode String - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement
Constraints List<TaskDefinition Placement Constraint>  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy
Configuration TaskDefinition Proxy Configuration  - Configuration block for the App Mesh proxy. Detailed below.
 - requires
Compatibilities List<String> - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - runtime
Platform TaskDefinition Runtime Platform  - Configuration block for runtime_platform that containers in your task may use.
 - skip
Destroy Boolean - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Map<String,String>
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task
Role StringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track
Latest Boolean - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes
List<Task
Definition Volume>  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- container
Definitions string - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - family string
 A unique name for your task definition.
The following arguments are optional:
- cpu string
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral
Storage TaskDefinition Ephemeral Storage  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution
Role stringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - inference
Accelerators TaskDefinition Inference Accelerator[]  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc
Mode string - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory string
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network
Mode string - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid
Mode string - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement
Constraints TaskDefinition Placement Constraint[]  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy
Configuration TaskDefinition Proxy Configuration  - Configuration block for the App Mesh proxy. Detailed below.
 - requires
Compatibilities string[] - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - runtime
Platform TaskDefinition Runtime Platform  - Configuration block for runtime_platform that containers in your task may use.
 - skip
Destroy boolean - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - {[key: string]: string}
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task
Role stringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track
Latest boolean - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes
Task
Definition Volume[]  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- container_
definitions str - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - family str
 A unique name for your task definition.
The following arguments are optional:
- cpu str
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral_
storage TaskDefinition Ephemeral Storage Args  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution_
role_ strarn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - inference_
accelerators Sequence[TaskDefinition Inference Accelerator Args]  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc_
mode str - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory str
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network_
mode str - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid_
mode str - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement_
constraints Sequence[TaskDefinition Placement Constraint Args]  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy_
configuration TaskDefinition Proxy Configuration Args  - Configuration block for the App Mesh proxy. Detailed below.
 - requires_
compatibilities Sequence[str] - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - runtime_
platform TaskDefinition Runtime Platform Args  - Configuration block for runtime_platform that containers in your task may use.
 - skip_
destroy bool - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Mapping[str, str]
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task_
role_ strarn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track_
latest bool - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes
Sequence[Task
Definition Volume Args]  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- container
Definitions String - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - family String
 A unique name for your task definition.
The following arguments are optional:
- cpu String
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral
Storage Property Map - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution
Role StringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - inference
Accelerators List<Property Map> - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc
Mode String - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory String
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network
Mode String - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid
Mode String - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement
Constraints List<Property Map> - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy
Configuration Property Map - Configuration block for the App Mesh proxy. Detailed below.
 - requires
Compatibilities List<String> - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - runtime
Platform Property Map - Configuration block for runtime_platform that containers in your task may use.
 - skip
Destroy Boolean - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Map<String>
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - task
Role StringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track
Latest Boolean - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes List<Property Map>
 - Configuration block for volumes that containers in your task may use. Detailed below.
 
Outputs
All input properties are implicitly available as output properties. Additionally, the TaskDefinition resource produces the following output properties:
- Arn string
 - Full ARN of the Task Definition (including both 
familyandrevision). - Arn
Without stringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Id string
 - The provider-assigned unique ID for this managed resource.
 - Revision int
 - Revision of the task in a particular family.
 - Dictionary<string, string>
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. 
- Arn string
 - Full ARN of the Task Definition (including both 
familyandrevision). - Arn
Without stringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Id string
 - The provider-assigned unique ID for this managed resource.
 - Revision int
 - Revision of the task in a particular family.
 - map[string]string
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. 
- arn String
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn
Without StringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id String
 - The provider-assigned unique ID for this managed resource.
 - revision Integer
 - Revision of the task in a particular family.
 - Map<String,String>
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. 
- arn string
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn
Without stringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id string
 - The provider-assigned unique ID for this managed resource.
 - revision number
 - Revision of the task in a particular family.
 - {[key: string]: string}
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. 
- arn str
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn_
without_ strrevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id str
 - The provider-assigned unique ID for this managed resource.
 - revision int
 - Revision of the task in a particular family.
 - Mapping[str, str]
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. 
- arn String
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn
Without StringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - id String
 - The provider-assigned unique ID for this managed resource.
 - revision Number
 - Revision of the task in a particular family.
 - Map<String>
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. 
Look up Existing TaskDefinition Resource
Get an existing TaskDefinition resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: TaskDefinitionState, opts?: CustomResourceOptions): TaskDefinition@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        arn: Optional[str] = None,
        arn_without_revision: Optional[str] = None,
        container_definitions: Optional[str] = None,
        cpu: Optional[str] = None,
        ephemeral_storage: Optional[TaskDefinitionEphemeralStorageArgs] = None,
        execution_role_arn: Optional[str] = None,
        family: Optional[str] = None,
        inference_accelerators: Optional[Sequence[TaskDefinitionInferenceAcceleratorArgs]] = None,
        ipc_mode: Optional[str] = None,
        memory: Optional[str] = None,
        network_mode: Optional[str] = None,
        pid_mode: Optional[str] = None,
        placement_constraints: Optional[Sequence[TaskDefinitionPlacementConstraintArgs]] = None,
        proxy_configuration: Optional[TaskDefinitionProxyConfigurationArgs] = None,
        requires_compatibilities: Optional[Sequence[str]] = None,
        revision: Optional[int] = None,
        runtime_platform: Optional[TaskDefinitionRuntimePlatformArgs] = None,
        skip_destroy: Optional[bool] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        task_role_arn: Optional[str] = None,
        track_latest: Optional[bool] = None,
        volumes: Optional[Sequence[TaskDefinitionVolumeArgs]] = None) -> TaskDefinitionfunc GetTaskDefinition(ctx *Context, name string, id IDInput, state *TaskDefinitionState, opts ...ResourceOption) (*TaskDefinition, error)public static TaskDefinition Get(string name, Input<string> id, TaskDefinitionState? state, CustomResourceOptions? opts = null)public static TaskDefinition get(String name, Output<String> id, TaskDefinitionState state, CustomResourceOptions options)Resource lookup is not supported in YAML- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- resource_name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- name
 - The unique name of the resulting resource.
 - id
 - The unique provider ID of the resource to lookup.
 - state
 - Any extra arguments used during the lookup.
 - opts
 - A bag of options that control this resource's behavior.
 
- Arn string
 - Full ARN of the Task Definition (including both 
familyandrevision). - Arn
Without stringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Container
Definitions string - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - Cpu string
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Ephemeral
Storage TaskDefinition Ephemeral Storage  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - Execution
Role stringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - Family string
 A unique name for your task definition.
The following arguments are optional:
- Inference
Accelerators List<TaskDefinition Inference Accelerator>  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - Ipc
Mode string - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - Memory string
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Network
Mode string - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - Pid
Mode string - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - Placement
Constraints List<TaskDefinition Placement Constraint>  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - Proxy
Configuration TaskDefinition Proxy Configuration  - Configuration block for the App Mesh proxy. Detailed below.
 - Requires
Compatibilities List<string> - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - Revision int
 - Revision of the task in a particular family.
 - Runtime
Platform TaskDefinition Runtime Platform  - Configuration block for runtime_platform that containers in your task may use.
 - Skip
Destroy bool - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Dictionary<string, string>
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Dictionary<string, string>
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. - Task
Role stringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - Track
Latest bool - Whether should track latest task definition or the one created with the resource. Default is 
false. - Volumes
List<Task
Definition Volume>  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- Arn string
 - Full ARN of the Task Definition (including both 
familyandrevision). - Arn
Without stringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - Container
Definitions string - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - Cpu string
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Ephemeral
Storage TaskDefinition Ephemeral Storage Args  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - Execution
Role stringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - Family string
 A unique name for your task definition.
The following arguments are optional:
- Inference
Accelerators []TaskDefinition Inference Accelerator Args  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - Ipc
Mode string - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - Memory string
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - Network
Mode string - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - Pid
Mode string - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - Placement
Constraints []TaskDefinition Placement Constraint Args  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - Proxy
Configuration TaskDefinition Proxy Configuration Args  - Configuration block for the App Mesh proxy. Detailed below.
 - Requires
Compatibilities []string - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - Revision int
 - Revision of the task in a particular family.
 - Runtime
Platform TaskDefinition Runtime Platform Args  - Configuration block for runtime_platform that containers in your task may use.
 - Skip
Destroy bool - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - map[string]string
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - map[string]string
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. - Task
Role stringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - Track
Latest bool - Whether should track latest task definition or the one created with the resource. Default is 
false. - Volumes
[]Task
Definition Volume Args  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- arn String
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn
Without StringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - container
Definitions String - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - cpu String
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral
Storage TaskDefinition Ephemeral Storage  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution
Role StringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - family String
 A unique name for your task definition.
The following arguments are optional:
- inference
Accelerators List<TaskDefinition Inference Accelerator>  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc
Mode String - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory String
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network
Mode String - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid
Mode String - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement
Constraints List<TaskDefinition Placement Constraint>  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy
Configuration TaskDefinition Proxy Configuration  - Configuration block for the App Mesh proxy. Detailed below.
 - requires
Compatibilities List<String> - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - revision Integer
 - Revision of the task in a particular family.
 - runtime
Platform TaskDefinition Runtime Platform  - Configuration block for runtime_platform that containers in your task may use.
 - skip
Destroy Boolean - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Map<String,String>
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Map<String,String>
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. - task
Role StringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track
Latest Boolean - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes
List<Task
Definition Volume>  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- arn string
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn
Without stringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - container
Definitions string - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - cpu string
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral
Storage TaskDefinition Ephemeral Storage  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution
Role stringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - family string
 A unique name for your task definition.
The following arguments are optional:
- inference
Accelerators TaskDefinition Inference Accelerator[]  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc
Mode string - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory string
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network
Mode string - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid
Mode string - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement
Constraints TaskDefinition Placement Constraint[]  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy
Configuration TaskDefinition Proxy Configuration  - Configuration block for the App Mesh proxy. Detailed below.
 - requires
Compatibilities string[] - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - revision number
 - Revision of the task in a particular family.
 - runtime
Platform TaskDefinition Runtime Platform  - Configuration block for runtime_platform that containers in your task may use.
 - skip
Destroy boolean - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - {[key: string]: string}
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - {[key: string]: string}
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. - task
Role stringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track
Latest boolean - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes
Task
Definition Volume[]  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- arn str
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn_
without_ strrevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - container_
definitions str - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - cpu str
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral_
storage TaskDefinition Ephemeral Storage Args  - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution_
role_ strarn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - family str
 A unique name for your task definition.
The following arguments are optional:
- inference_
accelerators Sequence[TaskDefinition Inference Accelerator Args]  - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc_
mode str - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory str
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network_
mode str - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid_
mode str - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement_
constraints Sequence[TaskDefinition Placement Constraint Args]  - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy_
configuration TaskDefinition Proxy Configuration Args  - Configuration block for the App Mesh proxy. Detailed below.
 - requires_
compatibilities Sequence[str] - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - revision int
 - Revision of the task in a particular family.
 - runtime_
platform TaskDefinition Runtime Platform Args  - Configuration block for runtime_platform that containers in your task may use.
 - skip_
destroy bool - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Mapping[str, str]
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Mapping[str, str]
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. - task_
role_ strarn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track_
latest bool - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes
Sequence[Task
Definition Volume Args]  - Configuration block for volumes that containers in your task may use. Detailed below.
 
- arn String
 - Full ARN of the Task Definition (including both 
familyandrevision). - arn
Without StringRevision  - ARN of the Task Definition with the trailing 
revisionremoved. This may be useful for situations where the latest task definition is always desired. If a revision isn't specified, the latest ACTIVE revision is used. See the AWS documentation for details. - container
Definitions String - A list of valid container definitions provided as a single valid JSON document. Please note that you should only provide values that are part of the container definition document. For a detailed description of what parameters are available, see the Task Definition Parameters section from the official Developer Guide.
 - cpu String
 - Number of cpu units used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - ephemeral
Storage Property Map - The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.
 - execution
Role StringArn  - ARN of the task execution role that the Amazon ECS container agent and the Docker daemon can assume.
 - family String
 A unique name for your task definition.
The following arguments are optional:
- inference
Accelerators List<Property Map> - Configuration block(s) with Inference Accelerators settings. Detailed below.
 - ipc
Mode String - IPC resource namespace to be used for the containers in the task The valid values are 
host,task, andnone. - memory String
 - Amount (in MiB) of memory used by the task. If the 
requires_compatibilitiesisFARGATEthis field is required. - network
Mode String - Docker networking mode to use for the containers in the task. Valid values are 
none,bridge,awsvpc, andhost. - pid
Mode String - Process namespace to use for the containers in the task. The valid values are 
hostandtask. - placement
Constraints List<Property Map> - Configuration block for rules that are taken into consideration during task placement. Maximum number of 
placement_constraintsis10. Detailed below. - proxy
Configuration Property Map - Configuration block for the App Mesh proxy. Detailed below.
 - requires
Compatibilities List<String> - Set of launch types required by the task. The valid values are 
EC2andFARGATE. - revision Number
 - Revision of the task in a particular family.
 - runtime
Platform Property Map - Configuration block for runtime_platform that containers in your task may use.
 - skip
Destroy Boolean - Whether to retain the old revision when the resource is destroyed or replacement is necessary. Default is 
false. - Map<String>
 - Key-value map of resource tags. If configured with a provider 
default_tagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level. - Map<String>
 - Map of tags assigned to the resource, including those inherited from the provider 
default_tagsconfiguration block. - task
Role StringArn  - ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services.
 - track
Latest Boolean - Whether should track latest task definition or the one created with the resource. Default is 
false. - volumes List<Property Map>
 - Configuration block for volumes that containers in your task may use. Detailed below.
 
Supporting Types
TaskDefinitionEphemeralStorage, TaskDefinitionEphemeralStorageArgs        
- Size
In intGib  - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 
21GiB and the maximum supported value is200GiB. 
- Size
In intGib  - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 
21GiB and the maximum supported value is200GiB. 
- size
In IntegerGib  - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 
21GiB and the maximum supported value is200GiB. 
- size
In numberGib  - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 
21GiB and the maximum supported value is200GiB. 
- size_
in_ intgib  - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 
21GiB and the maximum supported value is200GiB. 
- size
In NumberGib  - The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 
21GiB and the maximum supported value is200GiB. 
TaskDefinitionInferenceAccelerator, TaskDefinitionInferenceAcceleratorArgs        
- Device
Name string - Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
 - Device
Type string - Elastic Inference accelerator type to use.
 
- Device
Name string - Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
 - Device
Type string - Elastic Inference accelerator type to use.
 
- device
Name String - Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
 - device
Type String - Elastic Inference accelerator type to use.
 
- device
Name string - Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
 - device
Type string - Elastic Inference accelerator type to use.
 
- device_
name str - Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
 - device_
type str - Elastic Inference accelerator type to use.
 
- device
Name String - Elastic Inference accelerator device name. The deviceName must also be referenced in a container definition as a ResourceRequirement.
 - device
Type String - Elastic Inference accelerator type to use.
 
TaskDefinitionPlacementConstraint, TaskDefinitionPlacementConstraintArgs        
- Type string
 - Type of constraint. Use 
memberOfto restrict selection to a group of valid candidates. Note thatdistinctInstanceis not supported in task definitions. - Expression string
 - Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
 
- Type string
 - Type of constraint. Use 
memberOfto restrict selection to a group of valid candidates. Note thatdistinctInstanceis not supported in task definitions. - Expression string
 - Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
 
- type String
 - Type of constraint. Use 
memberOfto restrict selection to a group of valid candidates. Note thatdistinctInstanceis not supported in task definitions. - expression String
 - Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
 
- type string
 - Type of constraint. Use 
memberOfto restrict selection to a group of valid candidates. Note thatdistinctInstanceis not supported in task definitions. - expression string
 - Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
 
- type str
 - Type of constraint. Use 
memberOfto restrict selection to a group of valid candidates. Note thatdistinctInstanceis not supported in task definitions. - expression str
 - Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
 
- type String
 - Type of constraint. Use 
memberOfto restrict selection to a group of valid candidates. Note thatdistinctInstanceis not supported in task definitions. - expression String
 - Cluster Query Language expression to apply to the constraint. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.
 
TaskDefinitionProxyConfiguration, TaskDefinitionProxyConfigurationArgs        
- Container
Name string - Name of the container that will serve as the App Mesh proxy.
 - Properties Dictionary<string, string>
 - Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
 - Type string
 - Proxy type. The default value is 
APPMESH. The only supported value isAPPMESH. 
- Container
Name string - Name of the container that will serve as the App Mesh proxy.
 - Properties map[string]string
 - Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
 - Type string
 - Proxy type. The default value is 
APPMESH. The only supported value isAPPMESH. 
- container
Name String - Name of the container that will serve as the App Mesh proxy.
 - properties Map<String,String>
 - Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
 - type String
 - Proxy type. The default value is 
APPMESH. The only supported value isAPPMESH. 
- container
Name string - Name of the container that will serve as the App Mesh proxy.
 - properties {[key: string]: string}
 - Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
 - type string
 - Proxy type. The default value is 
APPMESH. The only supported value isAPPMESH. 
- container_
name str - Name of the container that will serve as the App Mesh proxy.
 - properties Mapping[str, str]
 - Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
 - type str
 - Proxy type. The default value is 
APPMESH. The only supported value isAPPMESH. 
- container
Name String - Name of the container that will serve as the App Mesh proxy.
 - properties Map<String>
 - Set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified a key-value mapping.
 - type String
 - Proxy type. The default value is 
APPMESH. The only supported value isAPPMESH. 
TaskDefinitionRuntimePlatform, TaskDefinitionRuntimePlatformArgs        
- Cpu
Architecture string - Must be set to either 
X86_64orARM64; see cpu architecture - Operating
System stringFamily  - If the 
requires_compatibilitiesisFARGATEthis field is required; must be set to a valid option from the operating system family in the runtime platform setting 
- Cpu
Architecture string - Must be set to either 
X86_64orARM64; see cpu architecture - Operating
System stringFamily  - If the 
requires_compatibilitiesisFARGATEthis field is required; must be set to a valid option from the operating system family in the runtime platform setting 
- cpu
Architecture String - Must be set to either 
X86_64orARM64; see cpu architecture - operating
System StringFamily  - If the 
requires_compatibilitiesisFARGATEthis field is required; must be set to a valid option from the operating system family in the runtime platform setting 
- cpu
Architecture string - Must be set to either 
X86_64orARM64; see cpu architecture - operating
System stringFamily  - If the 
requires_compatibilitiesisFARGATEthis field is required; must be set to a valid option from the operating system family in the runtime platform setting 
- cpu_
architecture str - Must be set to either 
X86_64orARM64; see cpu architecture - operating_
system_ strfamily  - If the 
requires_compatibilitiesisFARGATEthis field is required; must be set to a valid option from the operating system family in the runtime platform setting 
- cpu
Architecture String - Must be set to either 
X86_64orARM64; see cpu architecture - operating
System StringFamily  - If the 
requires_compatibilitiesisFARGATEthis field is required; must be set to a valid option from the operating system family in the runtime platform setting 
TaskDefinitionVolume, TaskDefinitionVolumeArgs      
- Name string
 - Name of the volume. This name is referenced in the 
sourceVolumeparameter of container definition in themountPointssection. - Configure
At boolLaunch  - 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.
 - Docker
Volume TaskConfiguration Definition Volume Docker Volume Configuration  - Configuration block to configure a docker volume. Detailed below.
 - Efs
Volume TaskConfiguration Definition Volume Efs Volume Configuration  - Configuration block for an EFS volume. Detailed below.
 - Fsx
Windows TaskFile Server Volume Configuration Definition Volume Fsx Windows File Server Volume Configuration  - Configuration block for an FSX Windows File Server volume. Detailed below.
 - Host
Path string - Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
 
- Name string
 - Name of the volume. This name is referenced in the 
sourceVolumeparameter of container definition in themountPointssection. - Configure
At boolLaunch  - 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.
 - Docker
Volume TaskConfiguration Definition Volume Docker Volume Configuration  - Configuration block to configure a docker volume. Detailed below.
 - Efs
Volume TaskConfiguration Definition Volume Efs Volume Configuration  - Configuration block for an EFS volume. Detailed below.
 - Fsx
Windows TaskFile Server Volume Configuration Definition Volume Fsx Windows File Server Volume Configuration  - Configuration block for an FSX Windows File Server volume. Detailed below.
 - Host
Path string - Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
 
- name String
 - Name of the volume. This name is referenced in the 
sourceVolumeparameter of container definition in themountPointssection. - configure
At BooleanLaunch  - 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.
 - docker
Volume TaskConfiguration Definition Volume Docker Volume Configuration  - Configuration block to configure a docker volume. Detailed below.
 - efs
Volume TaskConfiguration Definition Volume Efs Volume Configuration  - Configuration block for an EFS volume. Detailed below.
 - fsx
Windows TaskFile Server Volume Configuration Definition Volume Fsx Windows File Server Volume Configuration  - Configuration block for an FSX Windows File Server volume. Detailed below.
 - host
Path String - Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
 
- name string
 - Name of the volume. This name is referenced in the 
sourceVolumeparameter of container definition in themountPointssection. - configure
At booleanLaunch  - 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.
 - docker
Volume TaskConfiguration Definition Volume Docker Volume Configuration  - Configuration block to configure a docker volume. Detailed below.
 - efs
Volume TaskConfiguration Definition Volume Efs Volume Configuration  - Configuration block for an EFS volume. Detailed below.
 - fsx
Windows TaskFile Server Volume Configuration Definition Volume Fsx Windows File Server Volume Configuration  - Configuration block for an FSX Windows File Server volume. Detailed below.
 - host
Path string - Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
 
- name str
 - Name of the volume. This name is referenced in the 
sourceVolumeparameter of container definition in themountPointssection. - configure_
at_ boollaunch  - 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.
 - docker_
volume_ Taskconfiguration Definition Volume Docker Volume Configuration  - Configuration block to configure a docker volume. Detailed below.
 - efs_
volume_ Taskconfiguration Definition Volume Efs Volume Configuration  - Configuration block for an EFS volume. Detailed below.
 - fsx_
windows_ Taskfile_ server_ volume_ configuration Definition Volume Fsx Windows File Server Volume Configuration  - Configuration block for an FSX Windows File Server volume. Detailed below.
 - host_
path str - Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
 
- name String
 - Name of the volume. This name is referenced in the 
sourceVolumeparameter of container definition in themountPointssection. - configure
At BooleanLaunch  - 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.
 - docker
Volume Property MapConfiguration  - Configuration block to configure a docker volume. Detailed below.
 - efs
Volume Property MapConfiguration  - Configuration block for an EFS volume. Detailed below.
 - fsx
Windows Property MapFile Server Volume Configuration  - Configuration block for an FSX Windows File Server volume. Detailed below.
 - host
Path String - Path on the host container instance that is presented to the container. If not set, ECS will create a nonpersistent data volume that starts empty and is deleted after the task has finished.
 
TaskDefinitionVolumeDockerVolumeConfiguration, TaskDefinitionVolumeDockerVolumeConfigurationArgs            
- Autoprovision bool
 - If this value is 
true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope isshared. - Driver string
 - Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
 - Driver
Opts Dictionary<string, string> - Map of Docker driver specific options.
 - Labels Dictionary<string, string>
 - Map of custom metadata to add to your Docker volume.
 - Scope string
 - Scope for the Docker volume, which determines its lifecycle, either 
taskorshared. Docker volumes that are scoped to ataskare automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped assharedpersist after the task stops. 
- Autoprovision bool
 - If this value is 
true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope isshared. - Driver string
 - Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
 - Driver
Opts map[string]string - Map of Docker driver specific options.
 - Labels map[string]string
 - Map of custom metadata to add to your Docker volume.
 - Scope string
 - Scope for the Docker volume, which determines its lifecycle, either 
taskorshared. Docker volumes that are scoped to ataskare automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped assharedpersist after the task stops. 
- autoprovision Boolean
 - If this value is 
true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope isshared. - driver String
 - Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
 - driver
Opts Map<String,String> - Map of Docker driver specific options.
 - labels Map<String,String>
 - Map of custom metadata to add to your Docker volume.
 - scope String
 - Scope for the Docker volume, which determines its lifecycle, either 
taskorshared. Docker volumes that are scoped to ataskare automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped assharedpersist after the task stops. 
- autoprovision boolean
 - If this value is 
true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope isshared. - driver string
 - Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
 - driver
Opts {[key: string]: string} - Map of Docker driver specific options.
 - labels {[key: string]: string}
 - Map of custom metadata to add to your Docker volume.
 - scope string
 - Scope for the Docker volume, which determines its lifecycle, either 
taskorshared. Docker volumes that are scoped to ataskare automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped assharedpersist after the task stops. 
- autoprovision bool
 - If this value is 
true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope isshared. - driver str
 - Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
 - driver_
opts Mapping[str, str] - Map of Docker driver specific options.
 - labels Mapping[str, str]
 - Map of custom metadata to add to your Docker volume.
 - scope str
 - Scope for the Docker volume, which determines its lifecycle, either 
taskorshared. Docker volumes that are scoped to ataskare automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped assharedpersist after the task stops. 
- autoprovision Boolean
 - If this value is 
true, the Docker volume is created if it does not already exist. Note: This field is only used if the scope isshared. - driver String
 - Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement.
 - driver
Opts Map<String> - Map of Docker driver specific options.
 - labels Map<String>
 - Map of custom metadata to add to your Docker volume.
 - scope String
 - Scope for the Docker volume, which determines its lifecycle, either 
taskorshared. Docker volumes that are scoped to ataskare automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped assharedpersist after the task stops. 
TaskDefinitionVolumeEfsVolumeConfiguration, TaskDefinitionVolumeEfsVolumeConfigurationArgs            
- File
System stringId  - ID of the EFS File System.
 - 
Task
Definition Volume Efs Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon EFS file system. Detailed below.
 - Root
Directory string - Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using 
authorization_config. - Transit
Encryption string - Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. - Transit
Encryption intPort  - Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 
- File
System stringId  - ID of the EFS File System.
 - 
Task
Definition Volume Efs Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon EFS file system. Detailed below.
 - Root
Directory string - Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using 
authorization_config. - Transit
Encryption string - Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. - Transit
Encryption intPort  - Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 
- file
System StringId  - ID of the EFS File System.
 - 
Task
Definition Volume Efs Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon EFS file system. Detailed below.
 - root
Directory String - Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using 
authorization_config. - transit
Encryption String - Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. - transit
Encryption IntegerPort  - Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 
- file
System stringId  - ID of the EFS File System.
 - 
Task
Definition Volume Efs Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon EFS file system. Detailed below.
 - root
Directory string - Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using 
authorization_config. - transit
Encryption string - Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. - transit
Encryption numberPort  - Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 
- file_
system_ strid  - ID of the EFS File System.
 - 
Task
Definition Volume Efs Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon EFS file system. Detailed below.
 - root_
directory str - Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using 
authorization_config. - transit_
encryption str - Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. - transit_
encryption_ intport  - Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 
- file
System StringId  - ID of the EFS File System.
 - Property Map
 - Configuration block for authorization for the Amazon EFS file system. Detailed below.
 - root
Directory String - Directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. This argument is ignored when using 
authorization_config. - transit
Encryption String - Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. - transit
Encryption NumberPort  - Port to use for transit encryption. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses.
 
TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfig, TaskDefinitionVolumeEfsVolumeConfigurationAuthorizationConfigArgs                
- Access
Point stringId  - Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
 - Iam string
 - Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. 
- Access
Point stringId  - Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
 - Iam string
 - Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. 
- access
Point StringId  - Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
 - iam String
 - Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. 
- access
Point stringId  - Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
 - iam string
 - Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. 
- access_
point_ strid  - Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
 - iam str
 - Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. 
- access
Point StringId  - Access point ID to use. If an access point is specified, the root directory value will be relative to the directory set for the access point. If specified, transit encryption must be enabled in the EFSVolumeConfiguration.
 - iam String
 - Whether or not to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. Valid values: 
ENABLED,DISABLED. If this parameter is omitted, the default value ofDISABLEDis used. 
TaskDefinitionVolumeFsxWindowsFileServerVolumeConfiguration, TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationArgs                  
- 
Task
Definition Volume Fsx Windows File Server Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
 - File
System stringId  - The Amazon FSx for Windows File Server file system ID to use.
 - Root
Directory string - The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
 
- 
Task
Definition Volume Fsx Windows File Server Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
 - File
System stringId  - The Amazon FSx for Windows File Server file system ID to use.
 - Root
Directory string - The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
 
- 
Task
Definition Volume Fsx Windows File Server Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
 - file
System StringId  - The Amazon FSx for Windows File Server file system ID to use.
 - root
Directory String - The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
 
- 
Task
Definition Volume Fsx Windows File Server Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
 - file
System stringId  - The Amazon FSx for Windows File Server file system ID to use.
 - root
Directory string - The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
 
- 
Task
Definition Volume Fsx Windows File Server Volume Configuration Authorization Config  - Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
 - file_
system_ strid  - The Amazon FSx for Windows File Server file system ID to use.
 - root_
directory str - The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
 
- Property Map
 - Configuration block for authorization for the Amazon FSx for Windows File Server file system detailed below.
 - file
System StringId  - The Amazon FSx for Windows File Server file system ID to use.
 - root
Directory String - The directory within the Amazon FSx for Windows File Server file system to mount as the root directory inside the host.
 
TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfig, TaskDefinitionVolumeFsxWindowsFileServerVolumeConfigurationAuthorizationConfigArgs                      
- Credentials
Parameter string - The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
 - Domain string
 - A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 
- Credentials
Parameter string - The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
 - Domain string
 - A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 
- credentials
Parameter String - The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
 - domain String
 - A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 
- credentials
Parameter string - The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
 - domain string
 - A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 
- credentials_
parameter str - The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
 - domain str
 - A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 
- credentials
Parameter String - The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an AWS Secrets Manager secret or AWS Systems Manager Parameter Store parameter. The ARNs refer to the stored credentials.
 - domain String
 - A fully qualified domain name hosted by an AWS Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.
 
Import
Using pulumi import, import ECS Task Definitions using their ARNs. For example:
$ pulumi import aws:ecs/taskDefinition:TaskDefinition example arn:aws:ecs:us-east-1:012345678910:task-definition/mytaskfamily:123
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
 - AWS Classic pulumi/pulumi-aws
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
awsTerraform Provider. 
Try AWS Native preview for resources not in the classic version.