BatchNode

A Compute Node in the Batch service.

BatchComputeJob SchedulingHigh Performance ComputingCloudMicrosoftMicrosoft AzureParallel ProcessingSchedulingInfrastructure

Properties

Name Type Description
id string The ID of the Compute Node. Every Compute Node that is added to a Pool is assigned a unique ID. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the ID is reclai
url string The URL of the Compute Node.
state object The current state of the Compute Node.
schedulingState object Whether the Compute Node is available for Task scheduling.
stateTransitionTime string The time at which the Compute Node entered its current state.
lastBootTime string The last time at which the Compute Node was started. This property may not be present if the Compute Node state is unusable.
allocationTime string The time at which this Compute Node was allocated to the Pool. This is the time when the Compute Node was initially allocated and doesn't change once set. It is not updated when the Compute Node is se
ipAddress object The IP address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Poo
ipv6Address object The IPv6 address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a P
affinityId string An identifier which can be passed when adding a Task to request that the Task be scheduled on this Compute Node. Note that this is just a soft affinity. If the target Compute Node is busy or unavailab
vmSize string The size of the virtual machine hosting the Compute Node. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://lea
totalTasksRun integer The total number of Job Tasks completed on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.
runningTasksCount integer The total number of currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.
runningTaskSlotsCount integer The total number of scheduling slots used by currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.
totalTasksSucceeded integer The total number of Job Tasks which completed successfully (with exitCode 0) on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.
recentTasks array A list of Tasks whose state has recently changed. This property is present only if at least one Task has run on this Compute Node since it was assigned to the Pool.
startTask object The Task specified to run on the Compute Node as it joins the Pool.
startTaskInfo object Runtime information about the execution of the StartTask on the Compute Node.
errors array The list of errors that are currently being encountered by the Compute Node.
isDedicated boolean Whether this Compute Node is a dedicated Compute Node. If false, the Compute Node is a Spot/Low-priority Compute Node.
endpointConfiguration object The endpoint configuration for the Compute Node.
nodeAgentInfo object Information about the Compute Node agent version and the time the Compute Node upgraded to a new version.
virtualMachineInfo object Info about the current state of the virtual machine.
View JSON Schema on GitHub

JSON Schema

microsoft-azure-batch-batch-node-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-batch/json-schema/microsoft-azure-batch-batch-node-schema.json",
  "title": "BatchNode",
  "description": "A Compute Node in the Batch service.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_superseded/microsoft-azure-batch-nodes-api-openapi.yml#/components/schemas/BatchNode",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The ID of the Compute Node. Every Compute Node that is added to a Pool is assigned a unique ID. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the ID is reclaimed and could be reused for new Compute Nodes.",
      "readOnly": true
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The URL of the Compute Node.",
      "readOnly": true
    },
    "state": {
      "$ref": "#/$defs/BatchNodeState",
      "description": "The current state of the Compute Node.",
      "readOnly": true
    },
    "schedulingState": {
      "$ref": "#/$defs/SchedulingState",
      "description": "Whether the Compute Node is available for Task scheduling.",
      "readOnly": true
    },
    "stateTransitionTime": {
      "type": "string",
      "format": "date-time",
      "description": "The time at which the Compute Node entered its current state.",
      "readOnly": true
    },
    "lastBootTime": {
      "type": "string",
      "format": "date-time",
      "description": "The last time at which the Compute Node was started. This property may not be present if the Compute Node state is unusable.",
      "readOnly": true
    },
    "allocationTime": {
      "type": "string",
      "format": "date-time",
      "description": "The time at which this Compute Node was allocated to the Pool. This is the time when the Compute Node was initially allocated and doesn't change once set. It is not updated when the Compute Node is service healed or preempted.",
      "readOnly": true
    },
    "ipAddress": {
      "$ref": "#/$defs/Azure.Core.ipV4Address",
      "description": "The IP address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes.",
      "readOnly": true
    },
    "ipv6Address": {
      "$ref": "#/$defs/Azure.Core.ipV6Address",
      "description": "The IPv6 address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes. This property will not be present if the Pool is not configured for IPv6.",
      "readOnly": true
    },
    "affinityId": {
      "type": "string",
      "description": "An identifier which can be passed when adding a Task to request that the Task be scheduled on this Compute Node. Note that this is just a soft affinity. If the target Compute Node is busy or unavailable at the time the Task is scheduled, then the Task will be scheduled elsewhere.",
      "readOnly": true
    },
    "vmSize": {
      "type": "string",
      "description": "The size of the virtual machine hosting the Compute Node. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes).",
      "readOnly": true
    },
    "totalTasksRun": {
      "type": "integer",
      "format": "int32",
      "description": "The total number of Job Tasks completed on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.",
      "readOnly": true
    },
    "runningTasksCount": {
      "type": "integer",
      "format": "int32",
      "description": "The total number of currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.",
      "readOnly": true
    },
    "runningTaskSlotsCount": {
      "type": "integer",
      "format": "int32",
      "description": "The total number of scheduling slots used by currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.",
      "readOnly": true
    },
    "totalTasksSucceeded": {
      "type": "integer",
      "format": "int32",
      "description": "The total number of Job Tasks which completed successfully (with exitCode 0) on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks.",
      "readOnly": true
    },
    "recentTasks": {
      "type": "array",
      "description": "A list of Tasks whose state has recently changed. This property is present only if at least one Task has run on this Compute Node since it was assigned to the Pool.",
      "items": {
        "$ref": "#/$defs/BatchTaskInfo"
      },
      "readOnly": true
    },
    "startTask": {
      "$ref": "#/$defs/BatchStartTask",
      "description": "The Task specified to run on the Compute Node as it joins the Pool.",
      "readOnly": true
    },
    "startTaskInfo": {
      "$ref": "#/$defs/BatchStartTaskInfo",
      "description": "Runtime information about the execution of the StartTask on the Compute Node.",
      "readOnly": true
    },
    "errors": {
      "type": "array",
      "description": "The list of errors that are currently being encountered by the Compute Node.",
      "items": {
        "$ref": "#/$defs/BatchNodeError"
      },
      "readOnly": true
    },
    "isDedicated": {
      "type": "boolean",
      "description": "Whether this Compute Node is a dedicated Compute Node. If false, the Compute Node is a Spot/Low-priority Compute Node.",
      "readOnly": true
    },
    "endpointConfiguration": {
      "$ref": "#/$defs/BatchNodeEndpointConfiguration",
      "description": "The endpoint configuration for the Compute Node.",
      "readOnly": true
    },
    "nodeAgentInfo": {
      "$ref": "#/$defs/BatchNodeAgentInfo",
      "description": "Information about the Compute Node agent version and the time the Compute Node upgraded to a new version.",
      "readOnly": true
    },
    "virtualMachineInfo": {
      "$ref": "#/$defs/VirtualMachineInfo",
      "description": "Info about the current state of the virtual machine.",
      "readOnly": true
    }
  },
  "required": [
    "id",
    "url",
    "state",
    "stateTransitionTime",
    "lastBootTime",
    "allocationTime",
    "ipAddress",
    "ipv6Address",
    "affinityId",
    "vmSize",
    "totalTasksRun",
    "virtualMachineInfo"
  ],
  "$defs": {
    "AutoUserScope": {
      "type": "string",
      "description": "AutoUserScope enums",
      "enum": [
        "task",
        "pool"
      ],
      "x-ms-enum": {
        "name": "AutoUserScope",
        "modelAsString": true,
        "values": [
          {
            "name": "Task",
            "value": "task",
            "description": "Specifies that the service should create a new user for the Task."
          },
          {
            "name": "Pool",
            "value": "pool",
            "description": "Specifies that the Task runs as the common auto user Account which is created on every Compute Node in a Pool."
          }
        ]
      }
    },
    "AutoUserSpecification": {
      "type": "object",
      "description": "Specifies the options for the auto user that runs an Azure Batch Task.",
      "properties": {
        "scope": {
          "$ref": "#/$defs/AutoUserScope",
          "description": "The scope for the auto user. The default value is pool. If the pool is running Windows a value of Task should be specified if stricter isolation between tasks is required. For example, if the task mutates the registry in a way which could impact other tasks."
        },
        "elevationLevel": {
          "$ref": "#/$defs/ElevationLevel",
          "description": "The elevation level of the auto user. The default value is nonAdmin."
        }
      }
    },
    "Azure.Core.ipV4Address": {
      "type": "string",
      "description": "Represent an IP V4 address serialized as a string.\n\nIt is formatted as four 8-bit fields separated by periods."
    },
    "Azure.Core.ipV6Address": {
      "type": "string",
      "description": "Represent an IP V6 address serialized as a string.\n\nIt is formatted as eight hex decimal values(16-bit) between 0 and FFFF separated by colon. (i.e. `y:y:y:y:y:y:y:y`)"
    },
    "BatchErrorSourceCategory": {
      "type": "string",
      "description": "BatchErrorSourceCategory enums",
      "enum": [
        "usererror",
        "servererror"
      ],
      "x-ms-enum": {
        "name": "BatchErrorSourceCategory",
        "modelAsString": true,
        "values": [
          {
            "name": "UserError",
            "value": "usererror",
            "description": "The error is due to a user issue, such as misconfiguration."
          },
          {
            "name": "ServerError",
            "value": "servererror",
            "description": "The error is due to an internal server issue."
          }
        ]
      }
    },
    "BatchNodeAgentInfo": {
      "type": "object",
      "description": "The Batch Compute Node agent is a program that runs on each Compute Node in the\nPool and provides Batch capability on the Compute Node.",
      "properties": {
        "version": {
          "type": "string",
          "description": "The version of the Batch Compute Node agent running on the Compute Node. This version number can be checked against the Compute Node agent release notes located at https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md."
        },
        "lastUpdateTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time when the Compute Node agent was updated on the Compute Node. This is the most recent time that the Compute Node agent was updated to a new version."
        }
      },
      "required": [
        "version",
        "lastUpdateTime"
      ]
    },
    "BatchNodeEndpointConfiguration": {
      "type": "object",
      "description": "The endpoint configuration for the Compute Node.",
      "properties": {
        "inboundEndpoints": {
          "type": "array",
          "description": "The list of inbound endpoints that are accessible on the Compute Node.",
          "items": {
            "$ref": "#/$defs/InboundEndpoint"
          }
        }
      },
      "required": [
        "inboundEndpoints"
      ]
    },
    "BatchNodeError": {
      "type": "object",
      "description": "An error encountered by a Compute Node.",
      "properties": {
        "code": {
          "type": "string",
          "description": "An identifier for the Compute Node error. Codes are invariant and are intended to be consumed programmatically."
        },
        "message": {
          "type": "string",
          "description": "A message describing the Compute Node error, intended to be suitable for display in a user interface."
        },
        "errorDetails": {
          "type": "array",
          "description": "The list of additional error details related to the Compute Node error.",
          "items": {
            "$ref": "#/$defs/NameValuePair"
          }
        }
      }
    },
    "BatchNodeIdentityReference": {
      "type": "object",
      "description": "The reference to a user assigned identity associated with the Batch pool which\na compute node will use.",
      "properties": {
        "resourceId": {
          "type": "string",
          "format": "arm-id",
          "description": "The ARM resource id of the user assigned identity."
        }
      }
    },
    "BatchNodeState": {
      "type": "string",
      "description": "BatchNodeState enums",
      "enum": [
        "idle",
        "rebooting",
        "reimaging",
        "running",
        "unusable",
        "creating",
        "starting",
        "waitingforstarttask",
        "starttaskfailed",
        "unknown",
        "leavingpool",
        "offline",
        "preempted",
        "upgradingos",
        "deallocated",
        "deallocating"
      ],
      "x-ms-enum": {
        "name": "BatchNodeState",
        "modelAsString": true,
        "values": [
          {
            "name": "Idle",
            "value": "idle",
            "description": "The Compute Node is not currently running a Task."
          },
          {
            "name": "Rebooting",
            "value": "rebooting",
            "description": "The Compute Node is rebooting."
          },
          {
            "name": "Reimaging",
            "value": "reimaging",
            "description": "The Compute Node is reimaging."
          },
          {
            "name": "Running",
            "value": "running",
            "description": "The Compute Node is running one or more Tasks (other than a StartTask)."
          },
          {
            "name": "Unusable",
            "value": "unusable",
            "description": "The Compute Node cannot be used for Task execution due to errors."
          },
          {
            "name": "Creating",
            "value": "creating",
            "description": "The Batch service has obtained the underlying virtual machine from Azure Compute, but it has not yet started to join the Pool."
          },
          {
            "name": "Starting",
            "value": "starting",
            "description": "The Batch service is starting on the underlying virtual machine."
          },
          {
            "name": "WaitingForStartTask",
            "value": "waitingforstarttask",
            "description": "The StartTask has started running on the Compute Node, but waitForSuccess is set and the StartTask has not yet completed."
          },
          {
            "name": "StartTaskFailed",
            "value": "starttaskfailed",
            "description": "The StartTask has failed on the Compute Node (and exhausted all retries), and waitForSuccess is set. The Compute Node is not usable for running Tasks."
          },
          {
            "name": "Unknown",
            "value": "unknown",
            "description": "The Batch service has lost contact with the Compute Node, and does not know its true state."
          },
          {
            "name": "LeavingPool",
            "value": "leavingpool",
            "description": "The Compute Node is leaving the Pool, either because the user explicitly removed it or because the Pool is resizing or autoscaling down."
          },
          {
            "name": "Offline",
            "value": "offline",
            "description": "The Compute Node is not currently running a Task, and scheduling of new Tasks to the Compute Node is disabled."
          },
          {
            "name": "Preempted",
            "value": "preempted",
            "description": "The Spot/Low-priority Compute Node has been preempted. Tasks which were running on the Compute Node when it was preempted will be rescheduled when another Compute Node becomes available."
          },
          {
            "name": "UpgradingOS",
            "value": "upgradingos",
            "description": "The Compute Node is undergoing an OS upgrade operation."
          },
          {
            "name": "Deallocated",
            "value": "deallocated",
            "description": "The Compute Node is deallocated."
          },
          {
            "name": "Deallocating",
            "value": "deallocating",
            "description": "The Compute Node is deallocating."
          }
        ]
      }
    },
    "BatchStartTask": {
      "type": "object",
      "description": "Batch will retry Tasks when a recovery operation is triggered on a Node.\nExamples of recovery operations include (but are not limited to) when an\nunhealthy Node is rebooted or a Compute Node disappeared due to host failure.\nRetries due to recovery operations are independent of and are not counted\nagainst the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal\nretry due to a recovery operation may occur. Because of this, all Tasks should\nbe idempotent. This means Tasks need to tolerate being interrupted and\nrestarted without causing any corruption or duplicate data. The best practice\nfor long running Tasks is to use some form of checkpointing. In some cases the\nStartTask may be re-run even though the Compute Node was not rebooted. Special\ncare should be taken to avoid StartTasks which create breakaway process or\ninstall/launch services from the StartTask working directory, as this will\nblock Batch from being able to re-run the StartTask.",
      "properties": {
        "commandLine": {
          "type": "string",
          "description": "The command line of the StartTask. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables)."
        },
        "containerSettings": {
          "$ref": "#/$defs/BatchTaskContainerSettings",
          "description": "The settings for the container under which the StartTask runs. When this is specified, all directories recursively below the AZ_BATCH_NODE_ROOT_DIR (the root of Azure Batch directories on the node) are mapped into the container, all Task environment variables are mapped into the container, and the Task command line is executed in the container. Files produced in the container outside of AZ_BATCH_NODE_ROOT_DIR might not be reflected to the host disk, meaning that Batch file APIs will not be able to access those files."
        },
        "resourceFiles": {
          "type": "array",
          "description": "A list of files that the Batch service will download to the Compute Node before running the command line.  There is a maximum size for the list of resource files. When the max size is exceeded, the request will fail and the response error code will be RequestEntityTooLarge. If this occurs, the collection of ResourceFiles must be reduced in size. This can be achieved using .zip files, Application Packages, or Docker Containers. Files listed under this element are located in the Task's working directory.",
          "items": {
            "$ref": "#/$defs/ResourceFile"
          }
        },
        "environmentSettings": {
          "type": "array",
          "description": "A list of environment variable settings for the StartTask.",
          "items": {
            "$ref": "#/$defs/EnvironmentSetting"
          }
        },
        "userIdentity": {
          "$ref": "#/$defs/UserIdentity",
          "description": "The user identity under which the StartTask runs. If omitted, the Task runs as a non-administrative user unique to the Task."
        },
        "maxTaskRetryCount": {
          "type": "integer",
          "format": "int32",
          "description": "The maximum number of times the Task may be retried. The Batch service retries a Task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the Task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the Task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the Task. If the maximum retry count is -1, the Batch service retries the Task without limit, however this is not recommended for a start task or any task. The default value is 0 (no retries)."
        },
        "waitForSuccess": {
          "type": "boolean",
          "description": "Whether the Batch service should wait for the StartTask to complete successfully (that is, to exit with exit code 0) before scheduling any Tasks on the Compute Node. If true and the StartTask fails on a Node, the Batch service retries the StartTask up to its maximum retry count (maxTaskRetryCount). If the Task has still not completed successfully after all retries, then the Batch service marks the Node unusable, and will not schedule Tasks to it. This condition can be detected via the Compute Node state and failure info details. If false, the Batch service will not wait for the StartTask to complete. In this case, other Tasks can start executing on the Compute Node while the StartTask is still running; and even if the StartTask fails, new Tasks will continue to be scheduled on the Compute Node. The default is true."
        }
      },
      "required": [
        "commandLine"
      ]
    },
    "BatchStartTaskInfo": {
      "type": "object",
      "description": "Information about a StartTask running on a Compute Node.",
      "properties": {
        "state": {
          "$ref": "#/$defs/BatchStartTaskState",
          "description": "The state of the StartTask on the Compute Node."
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the StartTask started running. This value is reset every time the Task is restarted or retried (that is, this is the most recent time at which the StartTask started running)."
        },
        "endTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the StartTask stopped running. This is the end time of the most recent run of the StartTask, if that run has completed (even if that run failed and a retry is pending). This element is not present if the StartTask is currently running."
        },
        "exitCode": {
          "type": "integer",
          "format": "int32",
          "description": "The exit code of the program specified on the StartTask command line. This property is set only if the StartTask is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the StartTask (due to timeout, or user termination via the API) you may see an operating system-defined exit code."
        },
        "containerInfo": {
          "$ref": "#/$defs/BatchTaskContainerExecutionInfo",
          "description": "Information about the container under which the Task is executing. This property is set only if the Task runs in a container context."
        },
        "failureInfo": {
          "$ref": "#/$defs/BatchTaskFailureInfo",
          "description": "Information describing the Task failure, if any. This property is set only if the Task is in the completed state and encountered a failure."
        },
        "retryCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of times the Task has been retried by the Batch service. Task application failures (non-zero exit code) are retried, pre-processing errors (the Task could not be run) and file upload errors are not retried. The Batch service will retry the Task up to the limit specified by the constraints."
        },
        "lastRetryTime": {
          "type": "string",
          "format": "date-time",
          "description": "The most recent time at which a retry of the Task started running. This element is present only if the Task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the Task has been restarted for reasons other than retry; for example, if the Compute Node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not."
        },
        "result": {
          "$ref": "#/$defs/BatchTaskExecutionResult",
          "description": "The result of the Task execution. If the value is 'failed', then the details of the failure can be found in the failureInfo property."
        }
      },
      "required": [
        "state",
        "startTime",
        "retryCount"
      ]
    },
    "BatchStartTaskState": {
      "type": "string",
      "description": "BatchStartTaskState enums",
      "enum": [
        "running",
        "completed"
      ],
      "x-ms-enum": {
        "name": "BatchStartTaskState",
        "modelAsString": true,
        "values": [
          {
            "name": "Running",
            "value": "running",
            "description": "The StartTask is currently running."
          },
          {
            "name": "Completed",
            "value": "completed",
            "description": "The StartTask has exited with exit code 0, or the StartTask has failed and the retry limit has reached, or the StartTask process did not run due to Task preparation errors (such as resource file download failures)."
          }
        ]
      }
    },
    "BatchTaskContainerExecutionInfo": {
      "type": "object",
      "description": "Contains information about the container which a Task is executing.",
      "properties": {
        "containerId": {
          "type": "string",
          "description": "The ID of the container."
        },
        "state": {
          "type": "string",
          "description": "The state of the container. This is the state of the container according to the Docker service. It is equivalent to the status field returned by \"docker inspect\"."
        },
        "error": {
          "type": "string",
          "description": "Detailed error information about the container. This is the detailed error string from the Docker service, if available. It is equivalent to the error field returned by \"docker inspect\"."
        }
      }
    },
    "BatchTaskContainerSettings": {
      "type": "object",
      "description": "The container settings for a Task.",
      "properties": {
        "containerRunOptions": {
          "type": "string",
          "description": "Additional options to the container create command. These additional options are supplied as arguments to the \"docker create\" command, in addition to those controlled by the Batch Service."
        },
        "imageName": {
          "type": "string",
          "description": "The Image to use to create the container in which the Task will run. This is the full Image reference, as would be specified to \"docker pull\". If no tag is provided as part of the Image name, the tag \":latest\" is used as a default."
        },
        "registry": {
          "$ref": "#/$defs/ContainerRegistryReference",
          "description": "The private registry which contains the container Image. This setting can be omitted if was already provided at Pool creation."
        },
        "workingDirectory": {
          "$ref": "#/$defs/ContainerWorkingDirectory",
          "description": "The location of the container Task working directory. The default is 'taskWorkingDirectory'."
        },
        "containerHostBatchBindMounts": {
          "type": "array",
          "description": "The paths you want to mounted to container task. If this array is null or be not present, container task will mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It won't' mount any data paths into container if this array is set as empty.",
          "items": {
            "$ref": "#/$defs/ContainerHostBatchBindMountEntry"
          }
        }
      },
      "required": [
        "imageName"
      ]
    },
    "BatchTaskExecutionInfo": {
      "type": "object",
      "description": "Information about the execution of a Task.",
      "properties": {
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the Task started running. 'Running' corresponds to the running state, so if the Task specifies resource files or Packages, then the start time reflects the time at which the Task started downloading or deploying these. If the Task has been restarted or retried, this is the most recent time at which the Task started running. This property is present only for Tasks that are in the running or completed state."
        },
        "endTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the Task completed. This property is set only if the Task is in the Completed state."
        },
        "exitCode": {
          "type": "integer",
          "format": "int32",
          "description": "The exit code of the program specified on the Task command line. This property is set only if the Task is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the Task (due to timeout, or user termination via the API) you may see an operating system-defined exit code."
        },
        "containerInfo": {
          "$ref": "#/$defs/BatchTaskContainerExecutionInfo",
          "description": "Information about the container under which the Task is executing. This property is set only if the Task runs in a container context."
        },
        "failureInfo": {
          "$ref": "#/$defs/BatchTaskFailureInfo",
          "description": "Information describing the Task failure, if any. This property is set only if the Task is in the completed state and encountered a failure."
        },
        "retryCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of times the Task has been retried by the Batch service. Task application failures (non-zero exit code) are retried, pre-processing errors (the Task could not be run) and file upload errors are not retried. The Batch service will retry the Task up to the limit specified by the constraints."
        },
        "lastRetryTime": {
          "type": "string",
          "format": "date-time",
          "description": "The most recent time at which a retry of the Task started running. This element is present only if the Task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the Task has been restarted for reasons other than retry; for example, if the Compute Node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not."
        },
        "requeueCount": {
          "type": "integer",
          "format": "int32",
          "description": "The number of times the Task has been requeued by the Batch service as the result of a user request. When the user removes Compute Nodes from a Pool (by resizing/shrinking the pool) or when the Job is being disabled, the user can specify that running Tasks on the Compute Nodes be requeued for execution. This count tracks how many times the Task has been requeued for these reasons."
        },
        "lastRequeueTime": {
          "type": "string",
          "format": "date-time",
          "description": "The most recent time at which the Task has been requeued by the Batch service as the result of a user request. This property is set only if the requeueCount is nonzero."
        },
        "result": {
          "$ref": "#/$defs/BatchTaskExecutionResult",
          "description": "The result of the Task execution. If the value is 'failed', then the details of the failure can be found in the failureInfo property."
        }
      },
      "required": [
        "retryCount",
        "requeueCount"
      ]
    },
    "BatchTaskExecutionResult": {
      "type": "string",
      "description": "BatchTaskExecutionResult enums",
      "enum": [
        "success",
        "failure"
      ],
      "x-ms-enum": {
        "name": "BatchTaskExecutionResult",
        "modelAsString": true,
        "value

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://artifacts.apis.io/microsoft-azure-batch/json-schema/microsoft-azure-batch-batch-node-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-azure-batch-batch-node"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.