Microsoft Azure Batch · Schema
BatchPool
A Pool in the Azure Batch service.
BatchComputeJob SchedulingHigh Performance ComputingCloudMicrosoftMicrosoft AzureParallel ProcessingSchedulingInfrastructure
Properties
| Name | Type | Description |
|---|---|---|
| id | string | A string that uniquely identifies the Pool within the Account. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characte |
| displayName | string | The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024. |
| url | string | The URL of the Pool. |
| eTag | object | The ETag of the Pool. This is an opaque string. You can use it to detect whether the Pool has changed between requests. In particular, you can be pass the ETag when updating a Pool to specify that you |
| lastModified | string | The last modified time of the Pool. This is the last time at which the Pool level data, such as the targetDedicatedNodes or enableAutoscale settings, changed. It does not factor in node-level changes |
| creationTime | string | The creation time of the Pool. |
| state | object | The current state of the Pool. |
| stateTransitionTime | string | The time at which the Pool entered its current state. |
| allocationState | object | Whether the Pool is resizing. |
| allocationStateTransitionTime | string | The time at which the Pool entered its current allocation state. |
| vmSize | string | The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes i |
| virtualMachineConfiguration | object | The virtual machine configuration for the Pool. This property must be specified. |
| resizeTimeout | string | The timeout for allocation of Compute Nodes to the Pool. This is the timeout for the most recent resize operation. (The initial sizing when the Pool is created counts as a resize.) The default value i |
| resizeErrors | array | A list of errors encountered while performing the last resize on the Pool. This property is set only if one or more errors occurred during the last Pool resize, and only when the Pool allocationState |
| currentDedicatedNodes | integer | The number of dedicated Compute Nodes currently in the Pool. |
| currentLowPriorityNodes | integer | The number of Spot/Low-priority Compute Nodes currently in the Pool. Spot/Low-priority Compute Nodes which have been preempted are included in this count. |
| targetDedicatedNodes | integer | The desired number of dedicated Compute Nodes in the Pool. |
| targetLowPriorityNodes | integer | The desired number of Spot/Low-priority Compute Nodes in the Pool. |
| enableAutoScale | boolean | Whether the Pool size should automatically adjust over time. If false, at least one of targetDedicatedNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is requ |
| autoScaleFormula | string | A formula for the desired number of Compute Nodes in the Pool. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true. |
| autoScaleEvaluationInterval | string | The time interval at which to automatically adjust the Pool size according to the autoscale formula. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true. The time |
| autoScaleRun | object | The results and errors from the last execution of the autoscale formula. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true. |
| enableInterNodeCommunication | boolean | Whether the Pool permits direct communication between Compute Nodes. Enabling inter-node communication limits the maximum size of the Pool due to deployment restrictions on the Compute Nodes of the Po |
| networkConfiguration | object | The network configuration for the Pool. |
| startTask | object | A Task specified to run on each Compute Node as it joins the Pool. |
| applicationPackageReferences | array | The list of Packages to be installed on each Compute Node in the Pool. Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool |
| taskSlotsPerNode | integer | The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the v |
| taskSchedulingPolicy | object | How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread. |
| userAccounts | array | The list of user Accounts to be created on each Compute Node in the Pool. |
| metadata | array | A list of name-value pairs associated with the Pool as metadata. |
| stats | object | Utilization and resource usage statistics for the entire lifetime of the Pool. This property is populated only if the BatchPool was retrieved with an expand clause including the 'stats' attribute; oth |
| mountConfiguration | array | Mount storage using specified file system for the entire lifetime of the pool. Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system. |
| identity | object | The identity of the Batch pool, if configured. The list of user identities associated with the Batch pool. The user identity dictionary key references will be ARM resource ids in the form: '/subscript |
| upgradePolicy | object | The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/microsoft-azure-batch/json-schema/microsoft-azure-batch-batch-pool-schema.json",
"title": "BatchPool",
"description": "A Pool in the Azure Batch service.",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_superseded/microsoft-azure-batch-pools-api-openapi.yml#/components/schemas/BatchPool",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A string that uniquely identifies the Pool within the Account. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case).",
"readOnly": true
},
"displayName": {
"type": "string",
"description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
"readOnly": true
},
"url": {
"type": "string",
"format": "uri",
"description": "The URL of the Pool.",
"readOnly": true
},
"eTag": {
"$ref": "#/$defs/Azure.Core.eTag",
"description": "The ETag of the Pool. This is an opaque string. You can use it to detect whether the Pool has changed between requests. In particular, you can be pass the ETag when updating a Pool to specify that your changes should take effect only if nobody else has modified the Pool in the meantime.",
"readOnly": true
},
"lastModified": {
"type": "string",
"format": "date-time",
"description": "The last modified time of the Pool. This is the last time at which the Pool level data, such as the targetDedicatedNodes or enableAutoscale settings, changed. It does not factor in node-level changes such as a Compute Node changing state.",
"readOnly": true
},
"creationTime": {
"type": "string",
"format": "date-time",
"description": "The creation time of the Pool.",
"readOnly": true
},
"state": {
"$ref": "#/$defs/BatchPoolState",
"description": "The current state of the Pool.",
"readOnly": true
},
"stateTransitionTime": {
"type": "string",
"format": "date-time",
"description": "The time at which the Pool entered its current state.",
"readOnly": true
},
"allocationState": {
"$ref": "#/$defs/AllocationState",
"description": "Whether the Pool is resizing.",
"readOnly": true
},
"allocationStateTransitionTime": {
"type": "string",
"format": "date-time",
"description": "The time at which the Pool entered its current allocation state.",
"readOnly": true
},
"vmSize": {
"type": "string",
"description": "The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. 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
},
"virtualMachineConfiguration": {
"$ref": "#/$defs/VirtualMachineConfiguration",
"description": "The virtual machine configuration for the Pool. This property must be specified.",
"readOnly": true
},
"resizeTimeout": {
"type": "string",
"format": "duration",
"description": "The timeout for allocation of Compute Nodes to the Pool. This is the timeout for the most recent resize operation. (The initial sizing when the Pool is created counts as a resize.) The default value is 15 minutes. The time duration is specified in ISO 8601 format.",
"readOnly": true
},
"resizeErrors": {
"type": "array",
"description": "A list of errors encountered while performing the last resize on the Pool. This property is set only if one or more errors occurred during the last Pool resize, and only when the Pool allocationState is Steady.",
"items": {
"$ref": "#/$defs/ResizeError"
},
"readOnly": true
},
"currentDedicatedNodes": {
"type": "integer",
"format": "int32",
"description": "The number of dedicated Compute Nodes currently in the Pool.",
"readOnly": true
},
"currentLowPriorityNodes": {
"type": "integer",
"format": "int32",
"description": "The number of Spot/Low-priority Compute Nodes currently in the Pool. Spot/Low-priority Compute Nodes which have been preempted are included in this count.",
"readOnly": true
},
"targetDedicatedNodes": {
"type": "integer",
"format": "int32",
"description": "The desired number of dedicated Compute Nodes in the Pool.",
"readOnly": true
},
"targetLowPriorityNodes": {
"type": "integer",
"format": "int32",
"description": "The desired number of Spot/Low-priority Compute Nodes in the Pool.",
"readOnly": true
},
"enableAutoScale": {
"type": "boolean",
"description": "Whether the Pool size should automatically adjust over time. If false, at least one of targetDedicatedNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is required and the Pool automatically resizes according to the formula. The default value is false.",
"readOnly": true
},
"autoScaleFormula": {
"type": "string",
"description": "A formula for the desired number of Compute Nodes in the Pool. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true.",
"readOnly": true
},
"autoScaleEvaluationInterval": {
"type": "string",
"format": "duration",
"description": "The time interval at which to automatically adjust the Pool size according to the autoscale formula. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true. The time duration is specified in ISO 8601 format.",
"readOnly": true
},
"autoScaleRun": {
"$ref": "#/$defs/AutoScaleRun",
"description": "The results and errors from the last execution of the autoscale formula. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true.",
"readOnly": true
},
"enableInterNodeCommunication": {
"type": "boolean",
"description": "Whether the Pool permits direct communication between Compute Nodes. Enabling inter-node communication limits the maximum size of the Pool due to deployment restrictions on the Compute Nodes of the Pool. This may result in the Pool not reaching its desired size. The default value is false.",
"readOnly": true
},
"networkConfiguration": {
"$ref": "#/$defs/NetworkConfiguration",
"description": "The network configuration for the Pool.",
"readOnly": true
},
"startTask": {
"$ref": "#/$defs/BatchStartTask",
"description": "A Task specified to run on each Compute Node as it joins the Pool."
},
"applicationPackageReferences": {
"type": "array",
"description": "The list of Packages to be installed on each Compute Node in the Pool. Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Package references on any given Pool.",
"items": {
"$ref": "#/$defs/BatchApplicationPackageReference"
},
"readOnly": true
},
"taskSlotsPerNode": {
"type": "integer",
"format": "int32",
"description": "The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.",
"readOnly": true
},
"taskSchedulingPolicy": {
"$ref": "#/$defs/BatchTaskSchedulingPolicy",
"description": "How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread.",
"readOnly": true
},
"userAccounts": {
"type": "array",
"description": "The list of user Accounts to be created on each Compute Node in the Pool.",
"items": {
"$ref": "#/$defs/UserAccount"
},
"readOnly": true
},
"metadata": {
"type": "array",
"description": "A list of name-value pairs associated with the Pool as metadata.",
"items": {
"$ref": "#/$defs/BatchMetadataItem"
},
"readOnly": true
},
"stats": {
"$ref": "#/$defs/BatchPoolStatistics",
"description": "Utilization and resource usage statistics for the entire lifetime of the Pool. This property is populated only if the BatchPool was retrieved with an expand clause including the 'stats' attribute; otherwise it is null. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes.",
"readOnly": true,
"x-ms-client-name": "poolStatistics"
},
"mountConfiguration": {
"type": "array",
"description": "Mount storage using specified file system for the entire lifetime of the pool. Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system.",
"items": {
"$ref": "#/$defs/MountConfiguration"
},
"readOnly": true
},
"identity": {
"$ref": "#/$defs/BatchPoolIdentity",
"description": "The identity of the Batch pool, if configured. The list of user identities associated with the Batch pool. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
"readOnly": true
},
"upgradePolicy": {
"$ref": "#/$defs/UpgradePolicy",
"description": "The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling."
}
},
"required": [
"id",
"url",
"eTag",
"lastModified",
"creationTime",
"state",
"stateTransitionTime",
"vmSize",
"currentDedicatedNodes",
"currentLowPriorityNodes"
],
"$defs": {
"AllocationState": {
"type": "string",
"description": "AllocationState enums",
"enum": [
"steady",
"resizing",
"stopping"
],
"x-ms-enum": {
"name": "AllocationState",
"modelAsString": true,
"values": [
{
"name": "Steady",
"value": "steady",
"description": "The Pool is not resizing. There are no changes to the number of Compute Nodes in the Pool in progress. A Pool enters this state when it is created and when no operations are being performed on the Pool to change the number of Compute Nodes."
},
{
"name": "Resizing",
"value": "resizing",
"description": "The Pool is resizing; that is, Compute Nodes are being added to or removed from the Pool."
},
{
"name": "Stopping",
"value": "stopping",
"description": "The Pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed."
}
]
}
},
"AutoScaleRun": {
"type": "object",
"description": "The results and errors from an execution of a Pool autoscale formula.",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The time at which the autoscale formula was last evaluated."
},
"results": {
"type": "string",
"description": "The final values of all variables used in the evaluation of the autoscale formula. Each variable value is returned in the form $variable=value, and variables are separated by semicolons."
},
"error": {
"$ref": "#/$defs/AutoScaleRunError",
"description": "Details of the error encountered evaluating the autoscale formula on the Pool, if the evaluation was unsuccessful."
}
},
"required": [
"timestamp"
]
},
"AutoScaleRunError": {
"type": "object",
"description": "An error that occurred when executing or evaluating a Pool autoscale formula.",
"properties": {
"code": {
"type": "string",
"description": "An identifier for the autoscale error. Codes are invariant and are intended to be consumed programmatically."
},
"message": {
"type": "string",
"description": "A message describing the autoscale error, intended to be suitable for display in a user interface."
},
"values": {
"type": "array",
"description": "A list of additional error details related to the autoscale error.",
"items": {
"$ref": "#/$defs/NameValuePair"
}
}
}
},
"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."
}
}
},
"AutomaticOsUpgradePolicy": {
"type": "object",
"description": "The configuration parameters used for performing automatic OS upgrade.",
"properties": {
"disableAutomaticRollback": {
"type": "boolean",
"description": "Whether OS image rollback feature should be disabled."
},
"enableAutomaticOSUpgrade": {
"type": "boolean",
"description": "Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes available. <br /><br /> If this is set to true for Windows based pools, [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchservice/pools/create-pool#windowsconfiguration) cannot be set to true.",
"x-ms-client-name": "enableAutomaticOsUpgrade"
},
"useRollingUpgradePolicy": {
"type": "boolean",
"description": "Indicates whether rolling upgrade policy should be used during Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no policy is defined on the VMSS."
},
"osRollingUpgradeDeferral": {
"type": "boolean",
"description": "Defer OS upgrades on the TVMs if they are running tasks."
}
}
},
"Azure.Core.eTag": {
"type": "string",
"description": "The ETag (or entity tag) HTTP response header is an identifier for a specific version of a resource.\nIt lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content was not changed.\n\nIt is a string of ASCII characters placed between double quotes, like \"675af34563dc-tr34\"."
},
"AzureBlobFileSystemConfiguration": {
"type": "object",
"description": "Information used to connect to an Azure Storage Container using Blobfuse.",
"properties": {
"accountName": {
"type": "string",
"description": "The Azure Storage Account name."
},
"containerName": {
"type": "string",
"description": "The Azure Blob Storage Container name."
},
"accountKey": {
"type": "string",
"format": "password",
"description": "The Azure Storage Account key. This property is mutually exclusive with both sasKey and identity; exactly one must be specified.",
"x-ms-secret": true
},
"sasKey": {
"type": "string",
"format": "password",
"description": "The Azure Storage SAS token. This property is mutually exclusive with both accountKey and identity; exactly one must be specified.",
"x-ms-secret": true
},
"blobfuseOptions": {
"type": "string",
"description": "Additional command line options to pass to the mount command. These are 'net use' options in Windows and 'mount' options in Linux."
},
"relativeMountPath": {
"type": "string",
"description": "The relative path on the compute node where the file system will be mounted. All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
},
"identityReference": {
"$ref": "#/$defs/BatchNodeIdentityReference",
"description": "The reference to the user assigned identity to use to access containerName. This property is mutually exclusive with both accountKey and sasKey; exactly one must be specified."
}
},
"required": [
"accountName",
"containerName",
"relativeMountPath"
]
},
"AzureFileShareConfiguration": {
"type": "object",
"description": "Information used to connect to an Azure Fileshare.",
"properties": {
"accountName": {
"type": "string",
"description": "The Azure Storage account name."
},
"accountKey": {
"type": "string",
"format": "password",
"description": "The Azure Storage account key.",
"x-ms-secret": true
},
"azureFileUrl": {
"type": "string",
"format": "uri",
"description": "The Azure Files URL. This is of the form 'https://{account}.file.core.windows.net/'."
},
"relativeMountPath": {
"type": "string",
"description": "The relative path on the compute node where the file system will be mounted. All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS_DIR environment variable."
},
"mountOptions": {
"type": "string",
"description": "Additional command line options to pass to the mount command. These are 'net use' options in Windows and 'mount' options in Linux."
}
},
"required": [
"accountName",
"accountKey",
"azureFileUrl",
"relativeMountPath"
]
},
"BatchApplicationPackageReference": {
"type": "object",
"description": "A reference to an Package to be deployed to Compute Nodes.",
"properties": {
"applicationId": {
"type": "string",
"description": "The ID of the application to deploy. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName})."
},
"version": {
"type": "string",
"description": "The version of the application to deploy. If omitted, the default version is deployed. If this is omitted on a Pool, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences and HTTP status code 409. If this is omitted on a Task, and no default version is specified for this application, the Task fails with a pre-processing error."
}
},
"required": [
"applicationId"
]
},
"BatchContainerConfiguration": {
"type": "object",
"description": "The configuration for container-enabled Pools.",
"properties": {
"type": {
"$ref": "#/$defs/ContainerType",
"description": "The container technology to be used."
},
"containerImageNames": {
"type": "array",
"description": "The collection of container Image names. This is the full Image reference, as would be specified to \"docker pull\". An Image will be sourced from the default Docker registry unless the Image is fully qualified with an alternative registry.",
"items": {
"type": "string"
}
},
"containerRegistries": {
"type": "array",
"description": "Additional private registries from which containers can be pulled. If any Images must be downloaded from a private registry which requires credentials, then those credentials must be provided here.",
"items": {
"$ref": "#/$defs/ContainerRegistryReference"
}
}
},
"required": [
"type"
]
},
"BatchDiffDiskSettings": {
"type": "object",
"description": "Specifies the ephemeral Disk Settings for the operating system disk used by the\ncompute node (VM).",
"properties": {
"placement": {
"$ref": "#/$defs/DiffDiskPlacement",
"description": "Specifies the ephemeral disk placement for operating system disk for all VMs in the pool. This property can be used by user in the request to choose the location e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements."
}
}
},
"BatchInboundNatPool": {
"type": "object",
"description": "A inbound NAT Pool that can be used to address specific ports on Compute Nodes\nin a Batch Pool externally.",
"properties": {
"name": {
"type": "string",
"description": "The name of the endpoint. The name must be unique within a Batch Pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400."
},
"protocol": {
"$ref": "#/$defs/InboundEndpointProtocol",
"description": "The protocol of the endpoint."
},
"backendPort": {
"type": "integer",
"format": "int32",
"description": "The port number on the Compute Node. This must be unique within a Batch Pool. Acceptable values are between 1 and 65535 except for 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400."
},
"frontendPortRangeStart": {
"type": "integer",
"format": "int32",
"description": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual Compute Nodes. Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a Pool must be distinct and cannot overlap. Each range must contain at least 40 ports. If any reserved or overlapping values are provided the request fails with HTTP status code 400."
},
"frontendPortRangeEnd": {
"type": "integer",
"format": "int32",
"description": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual Compute Nodes. Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a Pool must be distinct and cannot overlap. Each range must contain at least 40 ports. If any reserved or overlapping values are provided the request fails with HTTP status code 400."
},
"networkSecurityGroupRules": {
"type": "array",
"description": "A list of network security group rules that will be applied to the endpoint. The maximum number of rules that can be specified across all the endpoints on a Batch Pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.",
"items": {
"$ref": "#/$defs/NetworkSecurityGroupRule"
}
}
},
"required": [
"name",
"protocol",
"backendPort",
"frontendPortRangeStart",
"frontendPortRangeEnd"
]
},
"BatchMetadataItem": {
"type": "object",
"description": "The Batch service does not assign any meaning to this metadata; it is solely\nfor the use of user code.",
"properties": {
"name": {
"type": "string",
"description": "The name of the metadata item."
},
"value": {
"type": "string",
"description": "The value of the metadata item."
}
},
"required": [
"name",
"value"
]
},
"BatchNodeFillType": {
"type": "string",
"description": "BatchNodeFillType enums",
"enum": [
"spread",
"pack"
],
"x-ms-enum": {
"name": "BatchNodeFillType",
"modelAsString": true,
"values": [
{
"name": "Spread",
"value": "spread",
"description": "Tasks should be assigned evenly across all Compute Nodes in the Pool."
},
{
"name": "Pack",
"value": "pack",
"description": "As many Tasks as possible (taskSlotsPerNode) should be assigned to each Compute Node in the Pool before any Tasks are assigned to the next Compute Node in the Pool."
}
]
}
},
"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."
}
}
},
"BatchNodePlacementConfiguration": {
"type": "object",
"description": "For regional placement, nodes in the pool will be allocated in the same region.\nFor zonal placement, nodes in the pool will be spread across different zones\nwith best effort balancing.",
"properties": {
"policy": {
"$ref": "#/$defs/BatchNodePlacementPolicyType",
"description": "Node placement Policy type on Batch Pools. Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy."
}
}
},
"BatchNodePlacementPolicyType": {
"type": "string",
"description": "BatchNodePlacementPolicyType enums",
"enum": [
"regional",
"zonal"
],
"x-ms-enum": {
"name": "BatchNodePlacementPolicyType",
"modelAsString": true,
"values": [
{
"name": "Regional",
"value": "regional",
"description": "All nodes in the pool will be allocated in the same region."
},
{
"name": "Zonal",
"value": "zonal",
"description": "Nodes in the pool will be spread across different availability zones with best effort balancing."
}
]
}
},
"BatchOsDisk": {
"type": "object",
"description": "Settings for the operating system disk of the compute node (VM).",
"properties": {
"ephemeralOSDiskSettings": {
"$ref": "#/$defs/BatchDiffDiskSettings",
"description": "Specifies the ephemeral Disk Settings for the operating system disk used by the compute node (VM)."
},
"caching": {
"$ref": "#/$defs/CachingType",
"description": "Specifies the caching requirements. Possible values are: None, ReadOnly, ReadWrite. The default values are: None for Standard storage. ReadOnly for Premium storage."
},
"diskSizeGB": {
"type": "integer",
"format": "int32",
"description": "The initial disk size in GB when creating new OS disk."
},
"managedDisk": {
"$ref": "#/$defs/ManagedDisk",
"description": "The managed disk parameters."
},
"writeAcceleratorEnabled": {
"type": "boolean",
"description": "Specifies whether writeAccelerator should be enabled or disabled on the disk."
}
}
},
"BatchPoolEndpointConfiguration": {
"type": "object",
"description": "The endpoint configuration for a Pool.",
"properties": {
"inboundNATPools": {
"type": "array",
"description": "A list of inbound NAT Pools that can be used to address specific ports on an individual Compute Node externally. The maximum number of inbound NAT Pools per Batch Pool is 5. If the maximum number of inbound NAT Pools is exceeded the request fails with HTTP status code 400. This cannot be specified if the IPAddressProvisioningType is NoPublicIPAddresses.",
"items": {
"$ref": "#/$defs/BatchInboundNatPool"
},
"x-ms-client-name": "inboundNatPools"
}
},
"required": [
"inboundNATPools"
]
},
"BatchPoolIdentity": {
"type": "object",
"description": "The identity of the Batch pool, if configured.",
"properties": {
"type": {
"$ref": "#/$defs/BatchPoolIdentityType",
"description": "The identity of the Batch pool, if configured. The list of user identities associated with the Batch pool. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'."
},
"userAssignedIdentities": {
"type": "array",
"description": "The list of user identities associated with the Batch account. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
"items": {
"$ref": "#/$defs/BatchUserAssignedIdentity"
}
}
},
"required": [
"type"
]
},
"BatchPoolIdentityReference": {
"type": "object",
"description": "The reference of one of the pool identities to encrypt Disk. This identity will be used to access the key vault.",
"properties": {
"resourceId": {
"type": "string",
"format": "arm-id",
"description": "The ARM resource id of the user assigned identity. This reference must be included in the pool identities."
}
}
},
"BatchPoolIdentityType": {
"type": "string",
"description": "BatchPoolIdentityType enums",
"enum": [
"UserAssigned",
"None"
],
"x-ms-enum": {
"name": "BatchPoolIdentityType",
"modelAsString": true,
"values": [
{
"name": "UserAssigned",
# --- truncated at 32 KB (108 KB total) ---
# Full source: https://artifacts.apis.io/microsoft-azure-batch/json-schema/microsoft-azure-batch-batch-pool-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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-azure-batch-batch-pool"
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.