{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aws-batch/json-schema/aws-batch-create-job-queue-request-schema.json",
  "title": "CreateJobQueueRequest",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aws-batch-job-queues-api-openapi.yml#/components/schemas/CreateJobQueueRequest",
  "type": "object",
  "properties": {
    "jobQueueName": {
      "type": "string",
      "description": "The name of the job queue. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_)."
    },
    "state": {
      "type": "string",
      "enum": [
        "ENABLED",
        "DISABLED"
      ],
      "description": "The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can finish."
    },
    "schedulingPolicyArn": {
      "type": "string",
      "description": "The Amazon Resource Name (ARN) of the fair-share scheduling policy. Job queues that don't have a fair-share scheduling policy are scheduled in a first-in, first-out (FIFO) model. After a job queue has a fair-share scheduling policy, it can be replaced but can't be removed. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . An example is aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy. A job queue without a fair-share scheduling policy is scheduled as a FIFO job queue and can't have a fair-share scheduling policy added. Jobs queues with a fair-sh"
    },
    "priority": {
      "type": "integer",
      "description": "The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed."
    },
    "computeEnvironmentOrder": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ComputeEnvironmentOrder"
      },
      "description": "The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment runs a specific job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed. All compute environments that are associated with a job queue must share the same archi"
    },
    "serviceEnvironmentOrder": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ServiceEnvironmentOrder"
      },
      "description": "A list of service environments that this job queue can use to allocate jobs. All serviceEnvironments must have the same type. A job queue can't have both a serviceEnvironmentOrder and a computeEnvironmentOrder field."
    },
    "jobQueueType": {
      "type": "string",
      "enum": [
        "EKS",
        "ECS",
        "ECS_FARGATE",
        "SAGEMAKER_TRAINING",
        "ECS_MANAGED_INSTANCES"
      ],
      "description": "The type of job queue. For service jobs that run on SageMaker Training, this value is SAGEMAKER_TRAINING. For regular container jobs, this value is EKS, ECS, or ECS_FARGATE depending on the compute environment."
    },
    "tags": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "The tags that you apply to the job queue to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging your Batch resources in Batch User Guide."
    },
    "jobStateTimeLimitActions": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/JobStateTimeLimitAction"
      },
      "description": "The set of actions that Batch performs on jobs that remain at the head of the job queue in the specified state longer than specified times. Batch will perform each action after maxTimeSeconds has passed. (Note: The minimum value for maxTimeSeconds is 600 (10 minutes) and its maximum value is 86,400 (24 hours).)"
    }
  },
  "required": [
    "jobQueueName",
    "priority"
  ],
  "$defs": {
    "ComputeEnvironmentOrder": {
      "type": "object",
      "properties": {
        "order": {
          "type": "integer",
          "description": "The order of the compute environment. Compute environments are tried in ascending order. For example, if two compute environments are associated with a job queue, the compute environment with a lower order integer value is tried for job placement first."
        },
        "computeEnvironment": {
          "type": "string",
          "description": "The Amazon Resource Name (ARN) of the compute environment."
        }
      },
      "required": [
        "order",
        "computeEnvironment"
      ]
    },
    "JobStateTimeLimitAction": {
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "description": "The reason to log for the action being taken."
        },
        "state": {
          "type": "string",
          "enum": [
            "RUNNABLE"
          ],
          "description": "The state of the job needed to trigger the action. The only supported value is RUNNABLE."
        },
        "maxTimeSeconds": {
          "type": "integer",
          "description": "The approximate amount of time, in seconds, that must pass with the job in the specified state before the action is taken. The minimum value is 600 (10 minutes) and the maximum value is 86,400 (24 hours)."
        },
        "action": {
          "type": "string",
          "enum": [
            "CANCEL",
            "TERMINATE"
          ],
          "description": "The action to take when a job is at the head of the job queue in the specified state for the specified period of time. For job queues connected to a ECS, FARGATE or EKS compute environment, the only supported value is CANCEL, which will cancel the job. For job queues connected to a SAGEMAKER_TRAINING service environment, the only supported value is TERMINATE, which will terminate the job."
        }
      },
      "required": [
        "reason",
        "state",
        "maxTimeSeconds",
        "action"
      ]
    },
    "ServiceEnvironmentOrder": {
      "type": "object",
      "properties": {
        "order": {
          "type": "integer",
          "description": "The order of the service environment. Job queues with a higher priority are evaluated first when associated with the same service environment."
        },
        "serviceEnvironment": {
          "type": "string",
          "description": "The name or ARN of the service environment."
        }
      },
      "required": [
        "order",
        "serviceEnvironment"
      ]
    }
  }
}