published on Tuesday, Mar 10, 2026 by Pulumi
published on Tuesday, Mar 10, 2026 by Pulumi
Provides a Batch Job Definition resource.
Example Usage
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.Batch.JobDefinition("test", new()
{
Type = "container",
ContainerProperties = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["command"] = new[]
{
"ls",
"-la",
},
["image"] = "busybox",
["resourceRequirements"] = new[]
{
new Dictionary<string, object?>
{
["type"] = "VCPU",
["value"] = "0.25",
},
new Dictionary<string, object?>
{
["type"] = "MEMORY",
["value"] = "512",
},
},
["volumes"] = new[]
{
new Dictionary<string, object?>
{
["host"] = new Dictionary<string, object?>
{
["sourcePath"] = "/tmp",
},
["name"] = "tmp",
},
},
["environment"] = new[]
{
new Dictionary<string, object?>
{
["name"] = "VARNAME",
["value"] = "VARVAL",
},
},
["mountPoints"] = new[]
{
new Dictionary<string, object?>
{
["sourceVolume"] = "tmp",
["containerPath"] = "/tmp",
["readOnly"] = false,
},
},
["ulimits"] = new[]
{
new Dictionary<string, object?>
{
["hardLimit"] = 1024,
["name"] = "nofile",
["softLimit"] = 1024,
},
},
}),
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/batch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal(map[string]interface{}{
"command": []string{
"ls",
"-la",
},
"image": "busybox",
"resourceRequirements": []map[string]interface{}{
map[string]interface{}{
"type": "VCPU",
"value": "0.25",
},
map[string]interface{}{
"type": "MEMORY",
"value": "512",
},
},
"volumes": []map[string]interface{}{
map[string]interface{}{
"host": map[string]interface{}{
"sourcePath": "/tmp",
},
"name": "tmp",
},
},
"environment": []map[string]interface{}{
map[string]interface{}{
"name": "VARNAME",
"value": "VARVAL",
},
},
"mountPoints": []map[string]interface{}{
map[string]interface{}{
"sourceVolume": "tmp",
"containerPath": "/tmp",
"readOnly": false,
},
},
"ulimits": []map[string]interface{}{
map[string]interface{}{
"hardLimit": 1024,
"name": "nofile",
"softLimit": 1024,
},
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = batch.NewJobDefinition(ctx, "test", &batch.JobDefinitionArgs{
Type: pulumi.String("container"),
ContainerProperties: pulumi.String(json0),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.batch.JobDefinition;
import com.pulumi.aws.batch.JobDefinitionArgs;
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 JobDefinition("test", JobDefinitionArgs.builder()
.type("container")
.containerProperties(serializeJson(
jsonObject(
jsonProperty("command", jsonArray(
"ls",
"-la"
)),
jsonProperty("image", "busybox"),
jsonProperty("resourceRequirements", jsonArray(
jsonObject(
jsonProperty("type", "VCPU"),
jsonProperty("value", "0.25")
),
jsonObject(
jsonProperty("type", "MEMORY"),
jsonProperty("value", "512")
)
)),
jsonProperty("volumes", jsonArray(jsonObject(
jsonProperty("host", jsonObject(
jsonProperty("sourcePath", "/tmp")
)),
jsonProperty("name", "tmp")
))),
jsonProperty("environment", jsonArray(jsonObject(
jsonProperty("name", "VARNAME"),
jsonProperty("value", "VARVAL")
))),
jsonProperty("mountPoints", jsonArray(jsonObject(
jsonProperty("sourceVolume", "tmp"),
jsonProperty("containerPath", "/tmp"),
jsonProperty("readOnly", false)
))),
jsonProperty("ulimits", jsonArray(jsonObject(
jsonProperty("hardLimit", 1024),
jsonProperty("name", "nofile"),
jsonProperty("softLimit", 1024)
)))
)))
.build());
}
}
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.batch.JobDefinition("test", {
type: "container",
containerProperties: JSON.stringify({
command: [
"ls",
"-la",
],
image: "busybox",
resourceRequirements: [
{
type: "VCPU",
value: "0.25",
},
{
type: "MEMORY",
value: "512",
},
],
volumes: [{
host: {
sourcePath: "/tmp",
},
name: "tmp",
}],
environment: [{
name: "VARNAME",
value: "VARVAL",
}],
mountPoints: [{
sourceVolume: "tmp",
containerPath: "/tmp",
readOnly: false,
}],
ulimits: [{
hardLimit: 1024,
name: "nofile",
softLimit: 1024,
}],
}),
});
import pulumi
import json
import pulumi_aws as aws
test = aws.batch.JobDefinition("test",
type="container",
container_properties=json.dumps({
"command": [
"ls",
"-la",
],
"image": "busybox",
"resourceRequirements": [
{
"type": "VCPU",
"value": "0.25",
},
{
"type": "MEMORY",
"value": "512",
},
],
"volumes": [{
"host": {
"sourcePath": "/tmp",
},
"name": "tmp",
}],
"environment": [{
"name": "VARNAME",
"value": "VARVAL",
}],
"mountPoints": [{
"sourceVolume": "tmp",
"containerPath": "/tmp",
"readOnly": False,
}],
"ulimits": [{
"hardLimit": 1024,
"name": "nofile",
"softLimit": 1024,
}],
}))
resources:
test:
type: aws:batch:JobDefinition
properties:
type: container
containerProperties:
fn::toJSON:
command:
- ls
- -la
image: busybox
resourceRequirements:
- type: VCPU
value: '0.25'
- type: MEMORY
value: '512'
volumes:
- host:
sourcePath: /tmp
name: tmp
environment:
- name: VARNAME
value: VARVAL
mountPoints:
- sourceVolume: tmp
containerPath: /tmp
readOnly: false
ulimits:
- hardLimit: 1024
name: nofile
softLimit: 1024
Fargate Platform Capability
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var assumeRolePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()
{
Statements = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
{
Actions = new[]
{
"sts:AssumeRole",
},
Principals = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
{
Type = "Service",
Identifiers = new[]
{
"ecs-tasks.amazonaws.com",
},
},
},
},
},
});
var ecsTaskExecutionRole = new Aws.Iam.Role("ecsTaskExecutionRole", new()
{
AssumeRolePolicy = assumeRolePolicy.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
});
var ecsTaskExecutionRolePolicy = new Aws.Iam.RolePolicyAttachment("ecsTaskExecutionRolePolicy", new()
{
Role = ecsTaskExecutionRole.Name,
PolicyArn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy",
});
var test = new Aws.Batch.JobDefinition("test", new()
{
Type = "container",
PlatformCapabilities = new[]
{
"FARGATE",
},
ContainerProperties = ecsTaskExecutionRole.Arn.Apply(arn => JsonSerializer.Serialize(new Dictionary<string, object?>
{
["command"] = new[]
{
"echo",
"test",
},
["image"] = "busybox",
["jobRoleArn"] = "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly",
["fargatePlatformConfiguration"] = new Dictionary<string, object?>
{
["platformVersion"] = "LATEST",
},
["resourceRequirements"] = new[]
{
new Dictionary<string, object?>
{
["type"] = "VCPU",
["value"] = "0.25",
},
new Dictionary<string, object?>
{
["type"] = "MEMORY",
["value"] = "512",
},
},
["executionRoleArn"] = arn,
})),
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/batch"
"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
assumeRolePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
Statements: []iam.GetPolicyDocumentStatement{
{
Actions: []string{
"sts:AssumeRole",
},
Principals: []iam.GetPolicyDocumentStatementPrincipal{
{
Type: "Service",
Identifiers: []string{
"ecs-tasks.amazonaws.com",
},
},
},
},
},
}, nil)
if err != nil {
return err
}
ecsTaskExecutionRole, err := iam.NewRole(ctx, "ecsTaskExecutionRole", &iam.RoleArgs{
AssumeRolePolicy: *pulumi.String(assumeRolePolicy.Json),
})
if err != nil {
return err
}
_, err = iam.NewRolePolicyAttachment(ctx, "ecsTaskExecutionRolePolicy", &iam.RolePolicyAttachmentArgs{
Role: ecsTaskExecutionRole.Name,
PolicyArn: pulumi.String("arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"),
})
if err != nil {
return err
}
_, err = batch.NewJobDefinition(ctx, "test", &batch.JobDefinitionArgs{
Type: pulumi.String("container"),
PlatformCapabilities: pulumi.StringArray{
pulumi.String("FARGATE"),
},
ContainerProperties: ecsTaskExecutionRole.Arn.ApplyT(func(arn string) (pulumi.String, error) {
var _zero pulumi.String
tmpJSON0, err := json.Marshal(map[string]interface{}{
"command": []string{
"echo",
"test",
},
"image": "busybox",
"jobRoleArn": "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly",
"fargatePlatformConfiguration": map[string]interface{}{
"platformVersion": "LATEST",
},
"resourceRequirements": []map[string]interface{}{
map[string]interface{}{
"type": "VCPU",
"value": "0.25",
},
map[string]interface{}{
"type": "MEMORY",
"value": "512",
},
},
"executionRoleArn": arn,
})
if err != nil {
return _zero, err
}
json0 := string(tmpJSON0)
return pulumi.String(json0), nil
}).(pulumi.StringOutput),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicyAttachment;
import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
import com.pulumi.aws.batch.JobDefinition;
import com.pulumi.aws.batch.JobDefinitionArgs;
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) {
final var assumeRolePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.actions("sts:AssumeRole")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("ecs-tasks.amazonaws.com")
.build())
.build())
.build());
var ecsTaskExecutionRole = new Role("ecsTaskExecutionRole", RoleArgs.builder()
.assumeRolePolicy(assumeRolePolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var ecsTaskExecutionRolePolicy = new RolePolicyAttachment("ecsTaskExecutionRolePolicy", RolePolicyAttachmentArgs.builder()
.role(ecsTaskExecutionRole.name())
.policyArn("arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy")
.build());
var test = new JobDefinition("test", JobDefinitionArgs.builder()
.type("container")
.platformCapabilities("FARGATE")
.containerProperties(ecsTaskExecutionRole.arn().applyValue(arn -> serializeJson(
jsonObject(
jsonProperty("command", jsonArray(
"echo",
"test"
)),
jsonProperty("image", "busybox"),
jsonProperty("jobRoleArn", "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly"),
jsonProperty("fargatePlatformConfiguration", jsonObject(
jsonProperty("platformVersion", "LATEST")
)),
jsonProperty("resourceRequirements", jsonArray(
jsonObject(
jsonProperty("type", "VCPU"),
jsonProperty("value", "0.25")
),
jsonObject(
jsonProperty("type", "MEMORY"),
jsonProperty("value", "512")
)
)),
jsonProperty("executionRoleArn", arn)
))))
.build());
}
}
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const assumeRolePolicy = aws.iam.getPolicyDocument({
statements: [{
actions: ["sts:AssumeRole"],
principals: [{
type: "Service",
identifiers: ["ecs-tasks.amazonaws.com"],
}],
}],
});
const ecsTaskExecutionRole = new aws.iam.Role("ecsTaskExecutionRole", {assumeRolePolicy: assumeRolePolicy.then(assumeRolePolicy => assumeRolePolicy.json)});
const ecsTaskExecutionRolePolicy = new aws.iam.RolePolicyAttachment("ecsTaskExecutionRolePolicy", {
role: ecsTaskExecutionRole.name,
policyArn: "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy",
});
const test = new aws.batch.JobDefinition("test", {
type: "container",
platformCapabilities: ["FARGATE"],
containerProperties: ecsTaskExecutionRole.arn.apply(arn => JSON.stringify({
command: [
"echo",
"test",
],
image: "busybox",
jobRoleArn: "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly",
fargatePlatformConfiguration: {
platformVersion: "LATEST",
},
resourceRequirements: [
{
type: "VCPU",
value: "0.25",
},
{
type: "MEMORY",
value: "512",
},
],
executionRoleArn: arn,
})),
});
import pulumi
import json
import pulumi_aws as aws
assume_role_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
actions=["sts:AssumeRole"],
principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
type="Service",
identifiers=["ecs-tasks.amazonaws.com"],
)],
)])
ecs_task_execution_role = aws.iam.Role("ecsTaskExecutionRole", assume_role_policy=assume_role_policy.json)
ecs_task_execution_role_policy = aws.iam.RolePolicyAttachment("ecsTaskExecutionRolePolicy",
role=ecs_task_execution_role.name,
policy_arn="arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy")
test = aws.batch.JobDefinition("test",
type="container",
platform_capabilities=["FARGATE"],
container_properties=ecs_task_execution_role.arn.apply(lambda arn: json.dumps({
"command": [
"echo",
"test",
],
"image": "busybox",
"jobRoleArn": "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly",
"fargatePlatformConfiguration": {
"platformVersion": "LATEST",
},
"resourceRequirements": [
{
"type": "VCPU",
"value": "0.25",
},
{
"type": "MEMORY",
"value": "512",
},
],
"executionRoleArn": arn,
})))
resources:
ecsTaskExecutionRole:
type: aws:iam:Role
properties:
assumeRolePolicy: ${assumeRolePolicy.json}
ecsTaskExecutionRolePolicy:
type: aws:iam:RolePolicyAttachment
properties:
role: ${ecsTaskExecutionRole.name}
policyArn: arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
test:
type: aws:batch:JobDefinition
properties:
type: container
platformCapabilities:
- FARGATE
containerProperties:
fn::toJSON:
command:
- echo
- test
image: busybox
jobRoleArn: arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly
fargatePlatformConfiguration:
platformVersion: LATEST
resourceRequirements:
- type: VCPU
value: '0.25'
- type: MEMORY
value: '512'
executionRoleArn: ${ecsTaskExecutionRole.arn}
variables:
assumeRolePolicy:
fn::invoke:
Function: aws:iam:getPolicyDocument
Arguments:
statements:
- actions:
- sts:AssumeRole
principals:
- type: Service
identifiers:
- ecs-tasks.amazonaws.com
Create JobDefinition Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new JobDefinition(name: string, args: JobDefinitionArgs, opts?: CustomResourceOptions);@overload
def JobDefinition(resource_name: str,
args: JobDefinitionArgs,
opts: Optional[ResourceOptions] = None)
@overload
def JobDefinition(resource_name: str,
opts: Optional[ResourceOptions] = None,
type: Optional[str] = None,
container_properties: Optional[str] = None,
name: Optional[str] = None,
parameters: Optional[Mapping[str, str]] = None,
platform_capabilities: Optional[Sequence[str]] = None,
propagate_tags: Optional[bool] = None,
retry_strategy: Optional[JobDefinitionRetryStrategyArgs] = None,
tags: Optional[Mapping[str, str]] = None,
timeout: Optional[JobDefinitionTimeoutArgs] = None)func NewJobDefinition(ctx *Context, name string, args JobDefinitionArgs, opts ...ResourceOption) (*JobDefinition, error)public JobDefinition(string name, JobDefinitionArgs args, CustomResourceOptions? opts = null)
public JobDefinition(String name, JobDefinitionArgs args)
public JobDefinition(String name, JobDefinitionArgs args, CustomResourceOptions options)
type: aws:batch:JobDefinition
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 JobDefinitionArgs
- 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 JobDefinitionArgs
- 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 JobDefinitionArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args JobDefinitionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args JobDefinitionArgs
- 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 jobDefinitionResource = new Aws.Batch.JobDefinition("jobDefinitionResource", new()
{
Type = "string",
ContainerProperties = "string",
Name = "string",
Parameters =
{
{ "string", "string" },
},
PlatformCapabilities = new[]
{
"string",
},
PropagateTags = false,
RetryStrategy = new Aws.Batch.Inputs.JobDefinitionRetryStrategyArgs
{
Attempts = 0,
EvaluateOnExits = new[]
{
new Aws.Batch.Inputs.JobDefinitionRetryStrategyEvaluateOnExitArgs
{
Action = "string",
OnExitCode = "string",
OnReason = "string",
OnStatusReason = "string",
},
},
},
Tags =
{
{ "string", "string" },
},
Timeout = new Aws.Batch.Inputs.JobDefinitionTimeoutArgs
{
AttemptDurationSeconds = 0,
},
});
example, err := batch.NewJobDefinition(ctx, "jobDefinitionResource", &batch.JobDefinitionArgs{
Type: pulumi.String("string"),
ContainerProperties: pulumi.String("string"),
Name: pulumi.String("string"),
Parameters: pulumi.StringMap{
"string": pulumi.String("string"),
},
PlatformCapabilities: pulumi.StringArray{
pulumi.String("string"),
},
PropagateTags: pulumi.Bool(false),
RetryStrategy: &batch.JobDefinitionRetryStrategyArgs{
Attempts: pulumi.Int(0),
EvaluateOnExits: batch.JobDefinitionRetryStrategyEvaluateOnExitArray{
&batch.JobDefinitionRetryStrategyEvaluateOnExitArgs{
Action: pulumi.String("string"),
OnExitCode: pulumi.String("string"),
OnReason: pulumi.String("string"),
OnStatusReason: pulumi.String("string"),
},
},
},
Tags: pulumi.StringMap{
"string": pulumi.String("string"),
},
Timeout: &batch.JobDefinitionTimeoutArgs{
AttemptDurationSeconds: pulumi.Int(0),
},
})
var jobDefinitionResource = new JobDefinition("jobDefinitionResource", JobDefinitionArgs.builder()
.type("string")
.containerProperties("string")
.name("string")
.parameters(Map.of("string", "string"))
.platformCapabilities("string")
.propagateTags(false)
.retryStrategy(JobDefinitionRetryStrategyArgs.builder()
.attempts(0)
.evaluateOnExits(JobDefinitionRetryStrategyEvaluateOnExitArgs.builder()
.action("string")
.onExitCode("string")
.onReason("string")
.onStatusReason("string")
.build())
.build())
.tags(Map.of("string", "string"))
.timeout(JobDefinitionTimeoutArgs.builder()
.attemptDurationSeconds(0)
.build())
.build());
job_definition_resource = aws.batch.JobDefinition("jobDefinitionResource",
type="string",
container_properties="string",
name="string",
parameters={
"string": "string",
},
platform_capabilities=["string"],
propagate_tags=False,
retry_strategy={
"attempts": 0,
"evaluate_on_exits": [{
"action": "string",
"on_exit_code": "string",
"on_reason": "string",
"on_status_reason": "string",
}],
},
tags={
"string": "string",
},
timeout={
"attempt_duration_seconds": 0,
})
const jobDefinitionResource = new aws.batch.JobDefinition("jobDefinitionResource", {
type: "string",
containerProperties: "string",
name: "string",
parameters: {
string: "string",
},
platformCapabilities: ["string"],
propagateTags: false,
retryStrategy: {
attempts: 0,
evaluateOnExits: [{
action: "string",
onExitCode: "string",
onReason: "string",
onStatusReason: "string",
}],
},
tags: {
string: "string",
},
timeout: {
attemptDurationSeconds: 0,
},
});
type: aws:batch:JobDefinition
properties:
containerProperties: string
name: string
parameters:
string: string
platformCapabilities:
- string
propagateTags: false
retryStrategy:
attempts: 0
evaluateOnExits:
- action: string
onExitCode: string
onReason: string
onStatusReason: string
tags:
string: string
timeout:
attemptDurationSeconds: 0
type: string
JobDefinition Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The JobDefinition resource accepts the following input properties:
- Type string
The type of job definition. Must be
container.The following arguments are optional:
- Container
Properties string - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - Name string
- Specifies the name of the job definition.
- Parameters Dictionary<string, string>
- Specifies the parameter substitution placeholders to set in the job definition.
- Platform
Capabilities List<string> - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - bool
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - Retry
Strategy JobDefinition Retry Strategy - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - 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. - Timeout
Job
Definition Timeout - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below.
- Type string
The type of job definition. Must be
container.The following arguments are optional:
- Container
Properties string - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - Name string
- Specifies the name of the job definition.
- Parameters map[string]string
- Specifies the parameter substitution placeholders to set in the job definition.
- Platform
Capabilities []string - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - bool
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - Retry
Strategy JobDefinition Retry Strategy Args - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - 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. - Timeout
Job
Definition Timeout Args - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below.
- type String
The type of job definition. Must be
container.The following arguments are optional:
- container
Properties String - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name String
- Specifies the name of the job definition.
- parameters Map<String,String>
- Specifies the parameter substitution placeholders to set in the job definition.
- platform
Capabilities List<String> - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - Boolean
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry
Strategy JobDefinition Retry Strategy - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - 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. - timeout
Job
Definition Timeout - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below.
- type string
The type of job definition. Must be
container.The following arguments are optional:
- container
Properties string - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name string
- Specifies the name of the job definition.
- parameters {[key: string]: string}
- Specifies the parameter substitution placeholders to set in the job definition.
- platform
Capabilities string[] - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - boolean
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry
Strategy JobDefinition Retry Strategy - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - {[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. - timeout
Job
Definition Timeout - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below.
- type str
The type of job definition. Must be
container.The following arguments are optional:
- container_
properties str - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name str
- Specifies the name of the job definition.
- parameters Mapping[str, str]
- Specifies the parameter substitution placeholders to set in the job definition.
- platform_
capabilities Sequence[str] - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - bool
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry_
strategy JobDefinition Retry Strategy Args - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - 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. - timeout
Job
Definition Timeout Args - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below.
- type String
The type of job definition. Must be
container.The following arguments are optional:
- container
Properties String - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name String
- Specifies the name of the job definition.
- parameters Map<String>
- Specifies the parameter substitution placeholders to set in the job definition.
- platform
Capabilities List<String> - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - Boolean
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry
Strategy Property Map - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - 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. - timeout Property Map
- Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below.
Outputs
All input properties are implicitly available as output properties. Additionally, the JobDefinition resource produces the following output properties:
- Arn string
- The Amazon Resource Name of the job definition.
- Id string
- The provider-assigned unique ID for this managed resource.
- Revision int
- The revision of the job definition.
- Dictionary<string, string>
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block.
- Arn string
- The Amazon Resource Name of the job definition.
- Id string
- The provider-assigned unique ID for this managed resource.
- Revision int
- The revision of the job definition.
- map[string]string
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block.
- arn String
- The Amazon Resource Name of the job definition.
- id String
- The provider-assigned unique ID for this managed resource.
- revision Integer
- The revision of the job definition.
- Map<String,String>
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block.
- arn string
- The Amazon Resource Name of the job definition.
- id string
- The provider-assigned unique ID for this managed resource.
- revision number
- The revision of the job definition.
- {[key: string]: string}
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block.
- arn str
- The Amazon Resource Name of the job definition.
- id str
- The provider-assigned unique ID for this managed resource.
- revision int
- The revision of the job definition.
- Mapping[str, str]
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block.
- arn String
- The Amazon Resource Name of the job definition.
- id String
- The provider-assigned unique ID for this managed resource.
- revision Number
- The revision of the job definition.
- Map<String>
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block.
Look up Existing JobDefinition Resource
Get an existing JobDefinition 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?: JobDefinitionState, opts?: CustomResourceOptions): JobDefinition@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
arn: Optional[str] = None,
container_properties: Optional[str] = None,
name: Optional[str] = None,
parameters: Optional[Mapping[str, str]] = None,
platform_capabilities: Optional[Sequence[str]] = None,
propagate_tags: Optional[bool] = None,
retry_strategy: Optional[JobDefinitionRetryStrategyArgs] = None,
revision: Optional[int] = None,
tags: Optional[Mapping[str, str]] = None,
tags_all: Optional[Mapping[str, str]] = None,
timeout: Optional[JobDefinitionTimeoutArgs] = None,
type: Optional[str] = None) -> JobDefinitionfunc GetJobDefinition(ctx *Context, name string, id IDInput, state *JobDefinitionState, opts ...ResourceOption) (*JobDefinition, error)public static JobDefinition Get(string name, Input<string> id, JobDefinitionState? state, CustomResourceOptions? opts = null)public static JobDefinition get(String name, Output<String> id, JobDefinitionState state, CustomResourceOptions options)resources: _: type: aws:batch:JobDefinition get: id: ${id}- 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
- The Amazon Resource Name of the job definition.
- Container
Properties string - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - Name string
- Specifies the name of the job definition.
- Parameters Dictionary<string, string>
- Specifies the parameter substitution placeholders to set in the job definition.
- Platform
Capabilities List<string> - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - bool
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - Retry
Strategy JobDefinition Retry Strategy - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - Revision int
- The revision of the job definition.
- 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>
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block. - Timeout
Job
Definition Timeout - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below. - Type string
The type of job definition. Must be
container.The following arguments are optional:
- Arn string
- The Amazon Resource Name of the job definition.
- Container
Properties string - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - Name string
- Specifies the name of the job definition.
- Parameters map[string]string
- Specifies the parameter substitution placeholders to set in the job definition.
- Platform
Capabilities []string - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - bool
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - Retry
Strategy JobDefinition Retry Strategy Args - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - Revision int
- The revision of the job definition.
- 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
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block. - Timeout
Job
Definition Timeout Args - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below. - Type string
The type of job definition. Must be
container.The following arguments are optional:
- arn String
- The Amazon Resource Name of the job definition.
- container
Properties String - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name String
- Specifies the name of the job definition.
- parameters Map<String,String>
- Specifies the parameter substitution placeholders to set in the job definition.
- platform
Capabilities List<String> - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - Boolean
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry
Strategy JobDefinition Retry Strategy - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - revision Integer
- The revision of the job definition.
- 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>
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block. - timeout
Job
Definition Timeout - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below. - type String
The type of job definition. Must be
container.The following arguments are optional:
- arn string
- The Amazon Resource Name of the job definition.
- container
Properties string - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name string
- Specifies the name of the job definition.
- parameters {[key: string]: string}
- Specifies the parameter substitution placeholders to set in the job definition.
- platform
Capabilities string[] - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - boolean
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry
Strategy JobDefinition Retry Strategy - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - revision number
- The revision of the job definition.
- {[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}
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block. - timeout
Job
Definition Timeout - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below. - type string
The type of job definition. Must be
container.The following arguments are optional:
- arn str
- The Amazon Resource Name of the job definition.
- container_
properties str - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name str
- Specifies the name of the job definition.
- parameters Mapping[str, str]
- Specifies the parameter substitution placeholders to set in the job definition.
- platform_
capabilities Sequence[str] - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - bool
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry_
strategy JobDefinition Retry Strategy Args - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - revision int
- The revision of the job definition.
- 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]
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block. - timeout
Job
Definition Timeout Args - Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below. - type str
The type of job definition. Must be
container.The following arguments are optional:
- arn String
- The Amazon Resource Name of the job definition.
- container
Properties String - A valid container properties
provided as a single valid JSON document. This parameter is required if the
typeparameter iscontainer. - name String
- Specifies the name of the job definition.
- parameters Map<String>
- Specifies the parameter substitution placeholders to set in the job definition.
- platform
Capabilities List<String> - The platform capabilities required by the job definition. If no value is specified, it defaults to
EC2. To run the job on Fargate resources, specifyFARGATE. - Boolean
- Specifies whether to propagate the tags from the job definition to the corresponding Amazon ECS task. Default is
false. - retry
Strategy Property Map - Specifies the retry strategy to use for failed jobs that are submitted with this job definition.
Maximum number of
retry_strategyis1. Defined below. - revision Number
- The revision of the job definition.
- 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>
- A map of tags assigned to the resource, including those inherited from the provider
default_tagsconfiguration block. - timeout Property Map
- Specifies the timeout for jobs so that if a job runs longer, AWS Batch terminates the job. Maximum number of
timeoutis1. Defined below. - type String
The type of job definition. Must be
container.The following arguments are optional:
Supporting Types
JobDefinitionRetryStrategy, JobDefinitionRetryStrategyArgs
- Attempts int
- The number of times to move a job to the
RUNNABLEstatus. You may specify between1and10attempts. - Evaluate
On List<JobExits Definition Retry Strategy Evaluate On Exit> - The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the
attemptsparameter must also be specified. You may specify up to 5 configuration blocks.
- Attempts int
- The number of times to move a job to the
RUNNABLEstatus. You may specify between1and10attempts. - Evaluate
On []JobExits Definition Retry Strategy Evaluate On Exit - The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the
attemptsparameter must also be specified. You may specify up to 5 configuration blocks.
- attempts Integer
- The number of times to move a job to the
RUNNABLEstatus. You may specify between1and10attempts. - evaluate
On List<JobExits Definition Retry Strategy Evaluate On Exit> - The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the
attemptsparameter must also be specified. You may specify up to 5 configuration blocks.
- attempts number
- The number of times to move a job to the
RUNNABLEstatus. You may specify between1and10attempts. - evaluate
On JobExits Definition Retry Strategy Evaluate On Exit[] - The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the
attemptsparameter must also be specified. You may specify up to 5 configuration blocks.
- attempts int
- The number of times to move a job to the
RUNNABLEstatus. You may specify between1and10attempts. - evaluate_
on_ Sequence[Jobexits Definition Retry Strategy Evaluate On Exit] - The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the
attemptsparameter must also be specified. You may specify up to 5 configuration blocks.
- attempts Number
- The number of times to move a job to the
RUNNABLEstatus. You may specify between1and10attempts. - evaluate
On List<Property Map>Exits - The evaluate on exit conditions under which the job should be retried or failed. If this parameter is specified, then the
attemptsparameter must also be specified. You may specify up to 5 configuration blocks.
JobDefinitionRetryStrategyEvaluateOnExit, JobDefinitionRetryStrategyEvaluateOnExitArgs
- Action string
- Specifies the action to take if all of the specified conditions are met. The values are not case sensitive. Valid values:
RETRY,EXIT. - On
Exit stringCode - A glob pattern to match against the decimal representation of the exit code returned for a job.
- On
Reason string - A glob pattern to match against the reason returned for a job.
- On
Status stringReason - A glob pattern to match against the status reason returned for a job.
- Action string
- Specifies the action to take if all of the specified conditions are met. The values are not case sensitive. Valid values:
RETRY,EXIT. - On
Exit stringCode - A glob pattern to match against the decimal representation of the exit code returned for a job.
- On
Reason string - A glob pattern to match against the reason returned for a job.
- On
Status stringReason - A glob pattern to match against the status reason returned for a job.
- action String
- Specifies the action to take if all of the specified conditions are met. The values are not case sensitive. Valid values:
RETRY,EXIT. - on
Exit StringCode - A glob pattern to match against the decimal representation of the exit code returned for a job.
- on
Reason String - A glob pattern to match against the reason returned for a job.
- on
Status StringReason - A glob pattern to match against the status reason returned for a job.
- action string
- Specifies the action to take if all of the specified conditions are met. The values are not case sensitive. Valid values:
RETRY,EXIT. - on
Exit stringCode - A glob pattern to match against the decimal representation of the exit code returned for a job.
- on
Reason string - A glob pattern to match against the reason returned for a job.
- on
Status stringReason - A glob pattern to match against the status reason returned for a job.
- action str
- Specifies the action to take if all of the specified conditions are met. The values are not case sensitive. Valid values:
RETRY,EXIT. - on_
exit_ strcode - A glob pattern to match against the decimal representation of the exit code returned for a job.
- on_
reason str - A glob pattern to match against the reason returned for a job.
- on_
status_ strreason - A glob pattern to match against the status reason returned for a job.
- action String
- Specifies the action to take if all of the specified conditions are met. The values are not case sensitive. Valid values:
RETRY,EXIT. - on
Exit StringCode - A glob pattern to match against the decimal representation of the exit code returned for a job.
- on
Reason String - A glob pattern to match against the reason returned for a job.
- on
Status StringReason - A glob pattern to match against the status reason returned for a job.
JobDefinitionTimeout, JobDefinitionTimeoutArgs
- Attempt
Duration intSeconds - The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is
60seconds.
- Attempt
Duration intSeconds - The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is
60seconds.
- attempt
Duration IntegerSeconds - The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is
60seconds.
- attempt
Duration numberSeconds - The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is
60seconds.
- attempt_
duration_ intseconds - The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is
60seconds.
- attempt
Duration NumberSeconds - The time duration in seconds after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is
60seconds.
Import
Batch Job Definition can be imported using the arn, e.g.,
$ pulumi import aws:batch/jobDefinition:JobDefinition test arn:aws:batch:us-east-1:123456789012:job-definition/sample
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.
published on Tuesday, Mar 10, 2026 by Pulumi