/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is * regenerated. */ import { ServiceClientOptions, RequestOptions, ServiceCallback, HttpOperationResponse } from 'ms-rest'; import * as moment from 'moment'; import * as stream from 'stream'; import * as models from '../models'; /** * @class * Application * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface Application { /** * @summary Lists all of the applications available in the specified Account. * * This operation returns only Applications and versions that are available for * use on Compute Nodes; that is, that can be used in an Package reference. For * administrator information about applications and versions that are not yet * available to Compute Nodes, use the Azure portal or the Azure Resource * Manager API. * * @param {object} [options] Optional Parameters. * * @param {object} [options.applicationListOptions] Additional parameters for * the operation * * @param {number} [options.applicationListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 applications * can be returned. * * @param {number} [options.applicationListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.applicationListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.applicationListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.applicationListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(options?: { applicationListOptions? : models.ApplicationListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the applications available in the specified Account. * * This operation returns only Applications and versions that are available for * use on Compute Nodes; that is, that can be used in an Package reference. For * administrator information about applications and versions that are not yet * available to Compute Nodes, use the Azure portal or the Azure Resource * Manager API. * * @param {object} [options] Optional Parameters. * * @param {object} [options.applicationListOptions] Additional parameters for * the operation * * @param {number} [options.applicationListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 applications * can be returned. * * @param {number} [options.applicationListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.applicationListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.applicationListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.applicationListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ApplicationListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ApplicationListResult} [result] - The deserialized result object if an error did not occur. * See {@link ApplicationListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(options?: { applicationListOptions? : models.ApplicationListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(callback: ServiceCallback): void; list(options: { applicationListOptions? : models.ApplicationListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets information about the specified Application. * * This operation returns only Applications and versions that are available for * use on Compute Nodes; that is, that can be used in an Package reference. For * administrator information about Applications and versions that are not yet * available to Compute Nodes, use the Azure portal or the Azure Resource * Manager API. * * @param {string} applicationId The ID of the Application. * * @param {object} [options] Optional Parameters. * * @param {object} [options.applicationGetOptions] Additional parameters for * the operation * * @param {number} [options.applicationGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.applicationGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.applicationGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.applicationGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(applicationId: string, options?: { applicationGetOptions? : models.ApplicationGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets information about the specified Application. * * This operation returns only Applications and versions that are available for * use on Compute Nodes; that is, that can be used in an Package reference. For * administrator information about Applications and versions that are not yet * available to Compute Nodes, use the Azure portal or the Azure Resource * Manager API. * * @param {string} applicationId The ID of the Application. * * @param {object} [options] Optional Parameters. * * @param {object} [options.applicationGetOptions] Additional parameters for * the operation * * @param {number} [options.applicationGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.applicationGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.applicationGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.applicationGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ApplicationSummary} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ApplicationSummary} [result] - The deserialized result object if an error did not occur. * See {@link ApplicationSummary} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(applicationId: string, options?: { applicationGetOptions? : models.ApplicationGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(applicationId: string, callback: ServiceCallback): void; get(applicationId: string, options: { applicationGetOptions? : models.ApplicationGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the applications available in the specified Account. * * This operation returns only Applications and versions that are available for * use on Compute Nodes; that is, that can be used in an Package reference. For * administrator information about applications and versions that are not yet * available to Compute Nodes, use the Azure portal or the Azure Resource * Manager API. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.applicationListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.applicationListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.applicationListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.applicationListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { applicationListNextOptions? : models.ApplicationListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the applications available in the specified Account. * * This operation returns only Applications and versions that are available for * use on Compute Nodes; that is, that can be used in an Package reference. For * administrator information about applications and versions that are not yet * available to Compute Nodes, use the Azure portal or the Azure Resource * Manager API. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.applicationListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.applicationListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.applicationListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.applicationListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ApplicationListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ApplicationListResult} [result] - The deserialized result object if an error did not occur. * See {@link ApplicationListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { applicationListNextOptions? : models.ApplicationListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { applicationListNextOptions? : models.ApplicationListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * Pool * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface Pool { /** * @summary Lists the usage metrics, aggregated by Pool across individual time * intervals, for the specified Account. * * If you do not specify a $filter clause including a poolId, the response * includes all Pools that existed in the Account in the time range of the * returned aggregation intervals. If you do not specify a $filter clause * including a startTime or endTime these filters default to the start and end * times of the last aggregation interval currently available; that is, only * the last aggregation interval is returned. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListUsageMetricsOptions] Additional parameters * for the operation * * @param {date} [options.poolListUsageMetricsOptions.startTime] The earliest * time from which to include metrics. This must be at least two and a half * hours before the current time. If not specified this defaults to the start * time of the last aggregation interval currently available. * * @param {date} [options.poolListUsageMetricsOptions.endTime] The latest time * from which to include metrics. This must be at least two hours before the * current time. If not specified this defaults to the end time of the last * aggregation interval currently available. * * @param {string} [options.poolListUsageMetricsOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. * * @param {number} [options.poolListUsageMetricsOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 results will be * returned. * * @param {number} [options.poolListUsageMetricsOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolListUsageMetricsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolListUsageMetricsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolListUsageMetricsOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listUsageMetricsWithHttpOperationResponse(options?: { poolListUsageMetricsOptions? : models.PoolListUsageMetricsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the usage metrics, aggregated by Pool across individual time * intervals, for the specified Account. * * If you do not specify a $filter clause including a poolId, the response * includes all Pools that existed in the Account in the time range of the * returned aggregation intervals. If you do not specify a $filter clause * including a startTime or endTime these filters default to the start and end * times of the last aggregation interval currently available; that is, only * the last aggregation interval is returned. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListUsageMetricsOptions] Additional parameters * for the operation * * @param {date} [options.poolListUsageMetricsOptions.startTime] The earliest * time from which to include metrics. This must be at least two and a half * hours before the current time. If not specified this defaults to the start * time of the last aggregation interval currently available. * * @param {date} [options.poolListUsageMetricsOptions.endTime] The latest time * from which to include metrics. This must be at least two hours before the * current time. If not specified this defaults to the end time of the last * aggregation interval currently available. * * @param {string} [options.poolListUsageMetricsOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. * * @param {number} [options.poolListUsageMetricsOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 results will be * returned. * * @param {number} [options.poolListUsageMetricsOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolListUsageMetricsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolListUsageMetricsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolListUsageMetricsOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {PoolListUsageMetricsResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {PoolListUsageMetricsResult} [result] - The deserialized result object if an error did not occur. * See {@link PoolListUsageMetricsResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listUsageMetrics(options?: { poolListUsageMetricsOptions? : models.PoolListUsageMetricsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listUsageMetrics(callback: ServiceCallback): void; listUsageMetrics(options: { poolListUsageMetricsOptions? : models.PoolListUsageMetricsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets lifetime summary statistics for all of the Pools in the * specified Account. * * Statistics are aggregated across all Pools that have ever existed in the * Account, from Account creation to the last update time of the statistics. * The statistics may not be immediately available. The Batch service performs * periodic roll-up of statistics. The typical delay is about 30 minutes. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolGetAllLifetimeStatisticsOptions] Additional * parameters for the operation * * @param {number} [options.poolGetAllLifetimeStatisticsOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.poolGetAllLifetimeStatisticsOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.poolGetAllLifetimeStatisticsOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolGetAllLifetimeStatisticsOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getAllLifetimeStatisticsWithHttpOperationResponse(options?: { poolGetAllLifetimeStatisticsOptions? : models.PoolGetAllLifetimeStatisticsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets lifetime summary statistics for all of the Pools in the * specified Account. * * Statistics are aggregated across all Pools that have ever existed in the * Account, from Account creation to the last update time of the statistics. * The statistics may not be immediately available. The Batch service performs * periodic roll-up of statistics. The typical delay is about 30 minutes. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolGetAllLifetimeStatisticsOptions] Additional * parameters for the operation * * @param {number} [options.poolGetAllLifetimeStatisticsOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.poolGetAllLifetimeStatisticsOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.poolGetAllLifetimeStatisticsOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolGetAllLifetimeStatisticsOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {PoolStatistics} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {PoolStatistics} [result] - The deserialized result object if an error did not occur. * See {@link PoolStatistics} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getAllLifetimeStatistics(options?: { poolGetAllLifetimeStatisticsOptions? : models.PoolGetAllLifetimeStatisticsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getAllLifetimeStatistics(callback: ServiceCallback): void; getAllLifetimeStatistics(options: { poolGetAllLifetimeStatisticsOptions? : models.PoolGetAllLifetimeStatisticsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Adds a Pool to the specified Account. * * When naming Pools, avoid including sensitive information such as user names * or secret project names. This information may appear in telemetry logs * accessible to Microsoft Support engineers. * * @param {object} pool The Pool to be added. * * @param {string} pool.id 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 Pool IDs within an Account that differ only by case). * * @param {string} [pool.displayName] The display name for the Pool. The * display name need not be unique and can contain any Unicode characters up to * a maximum length of 1024. * * @param {string} pool.vmSize 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 for Cloud Services Pools (pools created * with cloudServiceConfiguration), see Sizes for Cloud Services * (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). * Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. * For information about available VM sizes for Pools using Images from the * Virtual Machines Marketplace (pools created with * virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) * (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) * or Sizes for Virtual Machines (Windows) * (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). * Batch supports all Azure VM sizes except STANDARD_A0 and those with premium * storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). * * @param {object} [pool.cloudServiceConfiguration] The cloud service * configuration for the Pool. This property and virtualMachineConfiguration * are mutually exclusive and one of the properties must be specified. This * property cannot be specified if the Batch Account was created with its * poolAllocationMode property set to 'UserSubscription'. * * @param {string} pool.cloudServiceConfiguration.osFamily The Azure Guest OS * family to be installed on the virtual machines in the Pool. Possible values * are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} [pool.cloudServiceConfiguration.osVersion] The Azure Guest * OS version to be installed on the virtual machines in the Pool. The default * value is * which specifies the latest operating system version for the * specified OS family. * * @param {object} [pool.virtualMachineConfiguration] The virtual machine * configuration for the Pool. This property and cloudServiceConfiguration are * mutually exclusive and one of the properties must be specified. * * @param {object} pool.virtualMachineConfiguration.imageReference A reference * to the Azure Virtual Machines Marketplace Image or the custom Virtual * Machine Image to use. * * @param {string} [pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} [pool.virtualMachineConfiguration.imageReference.offer] The * offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} [pool.virtualMachineConfiguration.imageReference.sku] The * SKU of the Azure Virtual Machines Marketplace Image. For example, 18.04-LTS * or 2019-Datacenter. * * @param {string} [pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] The * ARM resource identifier of the Shared Image Gallery Image. Compute Nodes in * the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} pool.virtualMachineConfiguration.nodeAgentSKUId The SKU of * the Batch Compute Node agent to be provisioned on Compute Nodes in the Pool. * The Batch Compute Node agent is a program that runs on each Compute Node in * the Pool, and provides the command-and-control interface between the Compute * Node and the Batch service. There are different implementations of the * Compute Node agent, known as SKUs, for different operating systems. You must * specify a Compute Node agent SKU which matches the selected Image reference. * To get the list of supported Compute Node agent SKUs along with their list * of verified Image references, see the 'List supported Compute Node agent * SKUs' operation. * * @param {object} [pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} [pool.virtualMachineConfiguration.dataDisks] The * configuration for data disks attached to the Compute Nodes in the Pool. This * property must be specified if the Compute Nodes in the Pool need to have * empty data disks attached to them. This cannot be updated. Each Compute Node * gets its own disk (the disk is not a file share). Existing disks cannot be * attached, each attached disk is empty. When the Compute Node is removed from * the Pool, the disk and all data associated with it is also deleted. The disk * is not formatted after being attached, it must be formatted before use - for * more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} [pool.virtualMachineConfiguration.licenseType] The type of * on-premises license to be used when deploying the operating system. This * only applies to Images that contain the Windows operating system, and should * only be used when you hold valid on-premises licenses for the Compute Nodes * which will be deployed. If omitted, no on-premises licensing discount is * applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} [pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [pool.virtualMachineConfiguration.diskEncryptionConfiguration] The disk * encryption configuration for the pool. If specified, encryption is performed * on each node in the pool during node provisioning. * * @param {array} * [pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] The * list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {moment.duration} [pool.resizeTimeout] The timeout for allocation of * Compute Nodes to the Pool. This timeout applies only to manual scaling; it * has no effect when enableAutoScale is set to true. The default value is 15 * minutes. The minimum value is 5 minutes. If you specify a value less than 5 * minutes, the Batch service returns an error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). * * @param {number} [pool.targetDedicatedNodes] The desired number of dedicated * Compute Nodes in the Pool. This property must not be specified if * enableAutoScale is set to true. If enableAutoScale is set to false, then you * must set either targetDedicatedNodes, targetLowPriorityNodes, or both. * * @param {number} [pool.targetLowPriorityNodes] The desired number of * low-priority Compute Nodes in the Pool. This property must not be specified * if enableAutoScale is set to true. If enableAutoScale is set to false, then * you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. * * @param {boolean} [pool.enableAutoScale] Whether the Pool size should * automatically adjust over time. If false, at least one of * targetDedicateNodes 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. * * @param {string} [pool.autoScaleFormula] A formula for the desired number of * Compute Nodes in the Pool. This property must not be specified if * enableAutoScale is set to false. It is required if enableAutoScale is set to * true. The formula is checked for validity before the Pool is created. If the * formula is not valid, the Batch service rejects the request with detailed * error information. For more information about specifying this formula, see * 'Automatically scale Compute Nodes in an Azure Batch Pool' * (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). * * @param {moment.duration} [pool.autoScaleEvaluationInterval] The time * interval at which to automatically adjust the Pool size according to the * autoscale formula. The default value is 15 minutes. The minimum and maximum * value are 5 minutes and 168 hours respectively. If you specify a value less * than 5 minutes or greater than 168 hours, the Batch service returns an * error; if you are calling the REST API directly, the HTTP status code is 400 * (Bad Request). * * @param {boolean} [pool.enableInterNodeCommunication] 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. * * @param {object} [pool.networkConfiguration] The network configuration for * the Pool. * * @param {string} [pool.networkConfiguration.subnetId] The ARM resource * identifier of the virtual network subnet which the Compute Nodes of the Pool * will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} [pool.networkConfiguration.dynamicVNetAssignmentScope] The * scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} [pool.networkConfiguration.endpointConfiguration] The * configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * pool.networkConfiguration.endpointConfiguration.inboundNATPools 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. * * @param {object} [pool.networkConfiguration.publicIPAddressConfiguration] The * Public IPAddress configuration for Compute Nodes in the Batch Pool. Public * IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [pool.networkConfiguration.publicIPAddressConfiguration.provision] The * provisioning type for Public IP Addresses for the Pool. The default value is * BatchManaged. Possible values include: 'batchManaged', 'userManaged', * 'noPublicIPAddresses' * * @param {array} * [pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] The * list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} [pool.startTask] A Task specified to run on each Compute * Node as it joins the Pool. The Task runs when the Compute Node is added to * the Pool or when the Compute Node is restarted. * * @param {string} pool.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [pool.startTask.containerSettings] 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. * * @param {string} [pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} pool.startTask.containerSettings.imageName 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. * * @param {object} [pool.startTask.containerSettings.registry] The private * registry which contains the container Image. This setting can be omitted if * was already provided at Pool creation. * * @param {string} [pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} pool.startTask.containerSettings.registry.userName The user * name to log into the registry server. * * @param {string} pool.startTask.containerSettings.registry.password The * password to log into the registry server. * * @param {string} [pool.startTask.containerSettings.workingDirectory] The * location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} [pool.startTask.resourceFiles] 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. * * @param {array} [pool.startTask.environmentSettings] A list of environment * variable settings for the StartTask. * * @param {object} [pool.startTask.userIdentity] The user identity under which * the StartTask runs. If omitted, the Task runs as a non-administrative user * unique to the Task. * * @param {string} [pool.startTask.userIdentity.userName] The name of the user * identity under which the Task is run. The userName and autoUser properties * are mutually exclusive; you must specify one but not both. * * @param {object} [pool.startTask.userIdentity.autoUser] The auto user under * which the Task is run. The userName and autoUser properties are mutually * exclusive; you must specify one but not both. * * @param {string} [pool.startTask.userIdentity.autoUser.scope] 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, or if certificates have been specified on the pool which * should not be accessible by normal tasks but should be accessible by * StartTasks. Possible values include: 'task', 'pool' * * @param {string} [pool.startTask.userIdentity.autoUser.elevationLevel] The * elevation level of the auto user. The default value is nonAdmin. Possible * values include: 'nonAdmin', 'admin' * * @param {number} [pool.startTask.maxTaskRetryCount] 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. * * @param {boolean} [pool.startTask.waitForSuccess] 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. * * @param {array} [pool.certificateReferences] The list of Certificates to be * installed on each Compute Node in the Pool. For Windows Nodes, the Batch * service installs the Certificates to the specified Certificate store and * location. For Linux Compute Nodes, the Certificates are stored in a * directory inside the Task working directory and an environment variable * AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this * location. For Certificates with visibility of 'remoteUser', a 'certs' * directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} [pool.applicationPackageReferences] 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. * * @param {array} [pool.applicationLicenses] The list of application licenses * the Batch service will make available on each Compute Node in the Pool. The * list of application licenses must be a subset of available Batch service * application licenses. If a license is requested which is not supported, Pool * creation will fail. * * @param {number} [pool.maxTasksPerNode] The maximum number of Tasks that can * run concurrently 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. * * @param {object} [pool.taskSchedulingPolicy] How Tasks are distributed across * Compute Nodes in a Pool. If not specified, the default is spread. * * @param {string} pool.taskSchedulingPolicy.nodeFillType How Tasks are * distributed across Compute Nodes in a Pool. If not specified, the default is * spread. Possible values include: 'spread', 'pack' * * @param {array} [pool.userAccounts] The list of user Accounts to be created * on each Compute Node in the Pool. * * @param {array} [pool.metadata] A list of name-value pairs associated with * the Pool as metadata. The Batch service does not assign any meaning to * metadata; it is solely for the use of user code. * * @param {array} [pool.mountConfiguration] 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. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolAddOptions] Additional parameters for the * operation * * @param {number} [options.poolAddOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolAddOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolAddOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolAddOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addWithHttpOperationResponse(pool: models.PoolAddParameter, options?: { poolAddOptions? : models.PoolAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a Pool to the specified Account. * * When naming Pools, avoid including sensitive information such as user names * or secret project names. This information may appear in telemetry logs * accessible to Microsoft Support engineers. * * @param {object} pool The Pool to be added. * * @param {string} pool.id 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 Pool IDs within an Account that differ only by case). * * @param {string} [pool.displayName] The display name for the Pool. The * display name need not be unique and can contain any Unicode characters up to * a maximum length of 1024. * * @param {string} pool.vmSize 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 for Cloud Services Pools (pools created * with cloudServiceConfiguration), see Sizes for Cloud Services * (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). * Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. * For information about available VM sizes for Pools using Images from the * Virtual Machines Marketplace (pools created with * virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) * (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) * or Sizes for Virtual Machines (Windows) * (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). * Batch supports all Azure VM sizes except STANDARD_A0 and those with premium * storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). * * @param {object} [pool.cloudServiceConfiguration] The cloud service * configuration for the Pool. This property and virtualMachineConfiguration * are mutually exclusive and one of the properties must be specified. This * property cannot be specified if the Batch Account was created with its * poolAllocationMode property set to 'UserSubscription'. * * @param {string} pool.cloudServiceConfiguration.osFamily The Azure Guest OS * family to be installed on the virtual machines in the Pool. Possible values * are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} [pool.cloudServiceConfiguration.osVersion] The Azure Guest * OS version to be installed on the virtual machines in the Pool. The default * value is * which specifies the latest operating system version for the * specified OS family. * * @param {object} [pool.virtualMachineConfiguration] The virtual machine * configuration for the Pool. This property and cloudServiceConfiguration are * mutually exclusive and one of the properties must be specified. * * @param {object} pool.virtualMachineConfiguration.imageReference A reference * to the Azure Virtual Machines Marketplace Image or the custom Virtual * Machine Image to use. * * @param {string} [pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} [pool.virtualMachineConfiguration.imageReference.offer] The * offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} [pool.virtualMachineConfiguration.imageReference.sku] The * SKU of the Azure Virtual Machines Marketplace Image. For example, 18.04-LTS * or 2019-Datacenter. * * @param {string} [pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] The * ARM resource identifier of the Shared Image Gallery Image. Compute Nodes in * the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} pool.virtualMachineConfiguration.nodeAgentSKUId The SKU of * the Batch Compute Node agent to be provisioned on Compute Nodes in the Pool. * The Batch Compute Node agent is a program that runs on each Compute Node in * the Pool, and provides the command-and-control interface between the Compute * Node and the Batch service. There are different implementations of the * Compute Node agent, known as SKUs, for different operating systems. You must * specify a Compute Node agent SKU which matches the selected Image reference. * To get the list of supported Compute Node agent SKUs along with their list * of verified Image references, see the 'List supported Compute Node agent * SKUs' operation. * * @param {object} [pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} [pool.virtualMachineConfiguration.dataDisks] The * configuration for data disks attached to the Compute Nodes in the Pool. This * property must be specified if the Compute Nodes in the Pool need to have * empty data disks attached to them. This cannot be updated. Each Compute Node * gets its own disk (the disk is not a file share). Existing disks cannot be * attached, each attached disk is empty. When the Compute Node is removed from * the Pool, the disk and all data associated with it is also deleted. The disk * is not formatted after being attached, it must be formatted before use - for * more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} [pool.virtualMachineConfiguration.licenseType] The type of * on-premises license to be used when deploying the operating system. This * only applies to Images that contain the Windows operating system, and should * only be used when you hold valid on-premises licenses for the Compute Nodes * which will be deployed. If omitted, no on-premises licensing discount is * applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} [pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [pool.virtualMachineConfiguration.diskEncryptionConfiguration] The disk * encryption configuration for the pool. If specified, encryption is performed * on each node in the pool during node provisioning. * * @param {array} * [pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] The * list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {moment.duration} [pool.resizeTimeout] The timeout for allocation of * Compute Nodes to the Pool. This timeout applies only to manual scaling; it * has no effect when enableAutoScale is set to true. The default value is 15 * minutes. The minimum value is 5 minutes. If you specify a value less than 5 * minutes, the Batch service returns an error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). * * @param {number} [pool.targetDedicatedNodes] The desired number of dedicated * Compute Nodes in the Pool. This property must not be specified if * enableAutoScale is set to true. If enableAutoScale is set to false, then you * must set either targetDedicatedNodes, targetLowPriorityNodes, or both. * * @param {number} [pool.targetLowPriorityNodes] The desired number of * low-priority Compute Nodes in the Pool. This property must not be specified * if enableAutoScale is set to true. If enableAutoScale is set to false, then * you must set either targetDedicatedNodes, targetLowPriorityNodes, or both. * * @param {boolean} [pool.enableAutoScale] Whether the Pool size should * automatically adjust over time. If false, at least one of * targetDedicateNodes 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. * * @param {string} [pool.autoScaleFormula] A formula for the desired number of * Compute Nodes in the Pool. This property must not be specified if * enableAutoScale is set to false. It is required if enableAutoScale is set to * true. The formula is checked for validity before the Pool is created. If the * formula is not valid, the Batch service rejects the request with detailed * error information. For more information about specifying this formula, see * 'Automatically scale Compute Nodes in an Azure Batch Pool' * (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/). * * @param {moment.duration} [pool.autoScaleEvaluationInterval] The time * interval at which to automatically adjust the Pool size according to the * autoscale formula. The default value is 15 minutes. The minimum and maximum * value are 5 minutes and 168 hours respectively. If you specify a value less * than 5 minutes or greater than 168 hours, the Batch service returns an * error; if you are calling the REST API directly, the HTTP status code is 400 * (Bad Request). * * @param {boolean} [pool.enableInterNodeCommunication] 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. * * @param {object} [pool.networkConfiguration] The network configuration for * the Pool. * * @param {string} [pool.networkConfiguration.subnetId] The ARM resource * identifier of the virtual network subnet which the Compute Nodes of the Pool * will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} [pool.networkConfiguration.dynamicVNetAssignmentScope] The * scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} [pool.networkConfiguration.endpointConfiguration] The * configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * pool.networkConfiguration.endpointConfiguration.inboundNATPools 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. * * @param {object} [pool.networkConfiguration.publicIPAddressConfiguration] The * Public IPAddress configuration for Compute Nodes in the Batch Pool. Public * IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [pool.networkConfiguration.publicIPAddressConfiguration.provision] The * provisioning type for Public IP Addresses for the Pool. The default value is * BatchManaged. Possible values include: 'batchManaged', 'userManaged', * 'noPublicIPAddresses' * * @param {array} * [pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] The * list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} [pool.startTask] A Task specified to run on each Compute * Node as it joins the Pool. The Task runs when the Compute Node is added to * the Pool or when the Compute Node is restarted. * * @param {string} pool.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [pool.startTask.containerSettings] 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. * * @param {string} [pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} pool.startTask.containerSettings.imageName 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. * * @param {object} [pool.startTask.containerSettings.registry] The private * registry which contains the container Image. This setting can be omitted if * was already provided at Pool creation. * * @param {string} [pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} pool.startTask.containerSettings.registry.userName The user * name to log into the registry server. * * @param {string} pool.startTask.containerSettings.registry.password The * password to log into the registry server. * * @param {string} [pool.startTask.containerSettings.workingDirectory] The * location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} [pool.startTask.resourceFiles] 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. * * @param {array} [pool.startTask.environmentSettings] A list of environment * variable settings for the StartTask. * * @param {object} [pool.startTask.userIdentity] The user identity under which * the StartTask runs. If omitted, the Task runs as a non-administrative user * unique to the Task. * * @param {string} [pool.startTask.userIdentity.userName] The name of the user * identity under which the Task is run. The userName and autoUser properties * are mutually exclusive; you must specify one but not both. * * @param {object} [pool.startTask.userIdentity.autoUser] The auto user under * which the Task is run. The userName and autoUser properties are mutually * exclusive; you must specify one but not both. * * @param {string} [pool.startTask.userIdentity.autoUser.scope] 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, or if certificates have been specified on the pool which * should not be accessible by normal tasks but should be accessible by * StartTasks. Possible values include: 'task', 'pool' * * @param {string} [pool.startTask.userIdentity.autoUser.elevationLevel] The * elevation level of the auto user. The default value is nonAdmin. Possible * values include: 'nonAdmin', 'admin' * * @param {number} [pool.startTask.maxTaskRetryCount] 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. * * @param {boolean} [pool.startTask.waitForSuccess] 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. * * @param {array} [pool.certificateReferences] The list of Certificates to be * installed on each Compute Node in the Pool. For Windows Nodes, the Batch * service installs the Certificates to the specified Certificate store and * location. For Linux Compute Nodes, the Certificates are stored in a * directory inside the Task working directory and an environment variable * AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to query for this * location. For Certificates with visibility of 'remoteUser', a 'certs' * directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} [pool.applicationPackageReferences] 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. * * @param {array} [pool.applicationLicenses] The list of application licenses * the Batch service will make available on each Compute Node in the Pool. The * list of application licenses must be a subset of available Batch service * application licenses. If a license is requested which is not supported, Pool * creation will fail. * * @param {number} [pool.maxTasksPerNode] The maximum number of Tasks that can * run concurrently 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. * * @param {object} [pool.taskSchedulingPolicy] How Tasks are distributed across * Compute Nodes in a Pool. If not specified, the default is spread. * * @param {string} pool.taskSchedulingPolicy.nodeFillType How Tasks are * distributed across Compute Nodes in a Pool. If not specified, the default is * spread. Possible values include: 'spread', 'pack' * * @param {array} [pool.userAccounts] The list of user Accounts to be created * on each Compute Node in the Pool. * * @param {array} [pool.metadata] A list of name-value pairs associated with * the Pool as metadata. The Batch service does not assign any meaning to * metadata; it is solely for the use of user code. * * @param {array} [pool.mountConfiguration] 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. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolAddOptions] Additional parameters for the * operation * * @param {number} [options.poolAddOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolAddOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolAddOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolAddOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ add(pool: models.PoolAddParameter, options?: { poolAddOptions? : models.PoolAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise; add(pool: models.PoolAddParameter, callback: ServiceCallback): void; add(pool: models.PoolAddParameter, options: { poolAddOptions? : models.PoolAddOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Pools in the specified Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListOptions] Additional parameters for the * operation * * @param {string} [options.poolListOptions.filter] An OData $filter clause. * For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. * * @param {string} [options.poolListOptions.select] An OData $select clause. * * @param {string} [options.poolListOptions.expand] An OData $expand clause. * * @param {number} [options.poolListOptions.maxResults] The maximum number of * items to return in the response. A maximum of 1000 Pools can be returned. * * @param {number} [options.poolListOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolListOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolListOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolListOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(options?: { poolListOptions? : models.PoolListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Pools in the specified Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListOptions] Additional parameters for the * operation * * @param {string} [options.poolListOptions.filter] An OData $filter clause. * For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. * * @param {string} [options.poolListOptions.select] An OData $select clause. * * @param {string} [options.poolListOptions.expand] An OData $expand clause. * * @param {number} [options.poolListOptions.maxResults] The maximum number of * items to return in the response. A maximum of 1000 Pools can be returned. * * @param {number} [options.poolListOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolListOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolListOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolListOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudPoolListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudPoolListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudPoolListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(options?: { poolListOptions? : models.PoolListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(callback: ServiceCallback): void; list(options: { poolListOptions? : models.PoolListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes a Pool from the specified Account. * * When you request that a Pool be deleted, the following actions occur: the * Pool state is set to deleting; any ongoing resize operation on the Pool are * stopped; the Batch service starts resizing the Pool to zero Compute Nodes; * any Tasks running on existing Compute Nodes are terminated and requeued (as * if a resize Pool operation had been requested with the default requeue * option); finally, the Pool is removed from the system. Because running Tasks * are requeued, the user can rerun these Tasks by updating their Job to target * a different Pool. The Tasks can then run on the new Pool. If you want to * override the requeue behavior, then you should call resize Pool explicitly * to shrink the Pool to zero size before deleting the Pool. If you call an * Update, Patch or Delete API on a Pool in the deleting state, it will fail * with HTTP status code 409 with error code PoolBeingDeleted. * * @param {string} poolId The ID of the Pool to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolDeleteMethodOptions] Additional parameters for * the operation * * @param {number} [options.poolDeleteMethodOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.poolDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolDeleteMethodOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolDeleteMethodOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolDeleteMethodOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolDeleteMethodOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolDeleteMethodOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolDeleteMethodOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteMethodWithHttpOperationResponse(poolId: string, options?: { poolDeleteMethodOptions? : models.PoolDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes a Pool from the specified Account. * * When you request that a Pool be deleted, the following actions occur: the * Pool state is set to deleting; any ongoing resize operation on the Pool are * stopped; the Batch service starts resizing the Pool to zero Compute Nodes; * any Tasks running on existing Compute Nodes are terminated and requeued (as * if a resize Pool operation had been requested with the default requeue * option); finally, the Pool is removed from the system. Because running Tasks * are requeued, the user can rerun these Tasks by updating their Job to target * a different Pool. The Tasks can then run on the new Pool. If you want to * override the requeue behavior, then you should call resize Pool explicitly * to shrink the Pool to zero size before deleting the Pool. If you call an * Update, Patch or Delete API on a Pool in the deleting state, it will fail * with HTTP status code 409 with error code PoolBeingDeleted. * * @param {string} poolId The ID of the Pool to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolDeleteMethodOptions] Additional parameters for * the operation * * @param {number} [options.poolDeleteMethodOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.poolDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolDeleteMethodOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolDeleteMethodOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolDeleteMethodOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolDeleteMethodOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolDeleteMethodOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolDeleteMethodOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteMethod(poolId: string, options?: { poolDeleteMethodOptions? : models.PoolDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteMethod(poolId: string, callback: ServiceCallback): void; deleteMethod(poolId: string, options: { poolDeleteMethodOptions? : models.PoolDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets basic properties of a Pool. * * @param {string} poolId The ID of the Pool to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolExistsOptions] Additional parameters for the * operation * * @param {number} [options.poolExistsOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolExistsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolExistsOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolExistsOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolExistsOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolExistsOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolExistsOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolExistsOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ existsWithHttpOperationResponse(poolId: string, options?: { poolExistsOptions? : models.PoolExistsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets basic properties of a Pool. * * @param {string} poolId The ID of the Pool to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolExistsOptions] Additional parameters for the * operation * * @param {number} [options.poolExistsOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolExistsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolExistsOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolExistsOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolExistsOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolExistsOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolExistsOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolExistsOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {Boolean} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {Boolean} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ exists(poolId: string, options?: { poolExistsOptions? : models.PoolExistsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; exists(poolId: string, callback: ServiceCallback): void; exists(poolId: string, options: { poolExistsOptions? : models.PoolExistsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets information about the specified Pool. * * @param {string} poolId The ID of the Pool to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolGetOptions] Additional parameters for the * operation * * @param {string} [options.poolGetOptions.select] An OData $select clause. * * @param {string} [options.poolGetOptions.expand] An OData $expand clause. * * @param {number} [options.poolGetOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolGetOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolGetOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolGetOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolGetOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolGetOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolGetOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(poolId: string, options?: { poolGetOptions? : models.PoolGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets information about the specified Pool. * * @param {string} poolId The ID of the Pool to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolGetOptions] Additional parameters for the * operation * * @param {string} [options.poolGetOptions.select] An OData $select clause. * * @param {string} [options.poolGetOptions.expand] An OData $expand clause. * * @param {number} [options.poolGetOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolGetOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolGetOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolGetOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolGetOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolGetOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolGetOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudPool} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudPool} [result] - The deserialized result object if an error did not occur. * See {@link CloudPool} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(poolId: string, options?: { poolGetOptions? : models.PoolGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(poolId: string, callback: ServiceCallback): void; get(poolId: string, options: { poolGetOptions? : models.PoolGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the properties of the specified Pool. * * This only replaces the Pool properties specified in the request. For * example, if the Pool has a StartTask associated with it, and a request does * not specify a StartTask element, then the Pool keeps the existing StartTask. * * @param {string} poolId The ID of the Pool to update. * * @param {object} poolPatchParameter The parameters for the request. * * @param {object} [poolPatchParameter.startTask] A Task to run on each Compute * Node as it joins the Pool. The Task runs when the Compute Node is added to * the Pool or when the Compute Node is restarted. If this element is present, * it overwrites any existing StartTask. If omitted, any existing StartTask is * left unchanged. * * @param {string} poolPatchParameter.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [poolPatchParameter.startTask.containerSettings] 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. * * @param {string} * [poolPatchParameter.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} poolPatchParameter.startTask.containerSettings.imageName 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. * * @param {object} [poolPatchParameter.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [poolPatchParameter.startTask.containerSettings.registry.registryServer] The * registry URL. If omitted, the default is "docker.io". * * @param {string} * poolPatchParameter.startTask.containerSettings.registry.userName The user * name to log into the registry server. * * @param {string} * poolPatchParameter.startTask.containerSettings.registry.password The * password to log into the registry server. * * @param {string} * [poolPatchParameter.startTask.containerSettings.workingDirectory] The * location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} [poolPatchParameter.startTask.resourceFiles] 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. * * @param {array} [poolPatchParameter.startTask.environmentSettings] A list of * environment variable settings for the StartTask. * * @param {object} [poolPatchParameter.startTask.userIdentity] The user * identity under which the StartTask runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {string} [poolPatchParameter.startTask.userIdentity.userName] The * name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} [poolPatchParameter.startTask.userIdentity.autoUser] The * auto user under which the Task is run. The userName and autoUser properties * are mutually exclusive; you must specify one but not both. * * @param {string} [poolPatchParameter.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [poolPatchParameter.startTask.userIdentity.autoUser.elevationLevel] The * elevation level of the auto user. The default value is nonAdmin. Possible * values include: 'nonAdmin', 'admin' * * @param {number} [poolPatchParameter.startTask.maxTaskRetryCount] 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. * * @param {boolean} [poolPatchParameter.startTask.waitForSuccess] 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. * * @param {array} [poolPatchParameter.certificateReferences] A list of * Certificates to be installed on each Compute Node in the Pool. If this * element is present, it replaces any existing Certificate references * configured on the Pool. If omitted, any existing Certificate references are * left unchanged. For Windows Nodes, the Batch service installs the * Certificates to the specified Certificate store and location. For Linux * Compute Nodes, the Certificates are stored in a directory inside the Task * working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is * supplied to the Task to query for this location. For Certificates with * visibility of 'remoteUser', a 'certs' directory is created in the user's * home directory (e.g., /home/{user-name}/certs) and Certificates are placed * in that directory. * * @param {array} [poolPatchParameter.applicationPackageReferences] A 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. If this element is present, it replaces any existing Package * references. If you specify an empty collection, then all Package references * are removed from the Pool. If omitted, any existing Package references are * left unchanged. * * @param {array} [poolPatchParameter.metadata] A list of name-value pairs * associated with the Pool as metadata. If this element is present, it * replaces any existing metadata configured on the Pool. If you specify an * empty collection, any metadata is removed from the Pool. If omitted, any * existing metadata is left unchanged. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolPatchOptions] Additional parameters for the * operation * * @param {number} [options.poolPatchOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolPatchOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolPatchOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolPatchOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolPatchOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolPatchOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolPatchOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolPatchOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ patchWithHttpOperationResponse(poolId: string, poolPatchParameter: models.PoolPatchParameter, options?: { poolPatchOptions? : models.PoolPatchOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the properties of the specified Pool. * * This only replaces the Pool properties specified in the request. For * example, if the Pool has a StartTask associated with it, and a request does * not specify a StartTask element, then the Pool keeps the existing StartTask. * * @param {string} poolId The ID of the Pool to update. * * @param {object} poolPatchParameter The parameters for the request. * * @param {object} [poolPatchParameter.startTask] A Task to run on each Compute * Node as it joins the Pool. The Task runs when the Compute Node is added to * the Pool or when the Compute Node is restarted. If this element is present, * it overwrites any existing StartTask. If omitted, any existing StartTask is * left unchanged. * * @param {string} poolPatchParameter.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [poolPatchParameter.startTask.containerSettings] 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. * * @param {string} * [poolPatchParameter.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} poolPatchParameter.startTask.containerSettings.imageName 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. * * @param {object} [poolPatchParameter.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [poolPatchParameter.startTask.containerSettings.registry.registryServer] The * registry URL. If omitted, the default is "docker.io". * * @param {string} * poolPatchParameter.startTask.containerSettings.registry.userName The user * name to log into the registry server. * * @param {string} * poolPatchParameter.startTask.containerSettings.registry.password The * password to log into the registry server. * * @param {string} * [poolPatchParameter.startTask.containerSettings.workingDirectory] The * location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} [poolPatchParameter.startTask.resourceFiles] 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. * * @param {array} [poolPatchParameter.startTask.environmentSettings] A list of * environment variable settings for the StartTask. * * @param {object} [poolPatchParameter.startTask.userIdentity] The user * identity under which the StartTask runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {string} [poolPatchParameter.startTask.userIdentity.userName] The * name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} [poolPatchParameter.startTask.userIdentity.autoUser] The * auto user under which the Task is run. The userName and autoUser properties * are mutually exclusive; you must specify one but not both. * * @param {string} [poolPatchParameter.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [poolPatchParameter.startTask.userIdentity.autoUser.elevationLevel] The * elevation level of the auto user. The default value is nonAdmin. Possible * values include: 'nonAdmin', 'admin' * * @param {number} [poolPatchParameter.startTask.maxTaskRetryCount] 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. * * @param {boolean} [poolPatchParameter.startTask.waitForSuccess] 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. * * @param {array} [poolPatchParameter.certificateReferences] A list of * Certificates to be installed on each Compute Node in the Pool. If this * element is present, it replaces any existing Certificate references * configured on the Pool. If omitted, any existing Certificate references are * left unchanged. For Windows Nodes, the Batch service installs the * Certificates to the specified Certificate store and location. For Linux * Compute Nodes, the Certificates are stored in a directory inside the Task * working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is * supplied to the Task to query for this location. For Certificates with * visibility of 'remoteUser', a 'certs' directory is created in the user's * home directory (e.g., /home/{user-name}/certs) and Certificates are placed * in that directory. * * @param {array} [poolPatchParameter.applicationPackageReferences] A 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. If this element is present, it replaces any existing Package * references. If you specify an empty collection, then all Package references * are removed from the Pool. If omitted, any existing Package references are * left unchanged. * * @param {array} [poolPatchParameter.metadata] A list of name-value pairs * associated with the Pool as metadata. If this element is present, it * replaces any existing metadata configured on the Pool. If you specify an * empty collection, any metadata is removed from the Pool. If omitted, any * existing metadata is left unchanged. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolPatchOptions] Additional parameters for the * operation * * @param {number} [options.poolPatchOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolPatchOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolPatchOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolPatchOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolPatchOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolPatchOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolPatchOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolPatchOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ patch(poolId: string, poolPatchParameter: models.PoolPatchParameter, options?: { poolPatchOptions? : models.PoolPatchOptions, customHeaders? : { [headerName: string]: string; } }): Promise; patch(poolId: string, poolPatchParameter: models.PoolPatchParameter, callback: ServiceCallback): void; patch(poolId: string, poolPatchParameter: models.PoolPatchParameter, options: { poolPatchOptions? : models.PoolPatchOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Disables automatic scaling for a Pool. * * @param {string} poolId The ID of the Pool on which to disable automatic * scaling. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolDisableAutoScaleOptions] Additional parameters * for the operation * * @param {number} [options.poolDisableAutoScaleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolDisableAutoScaleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolDisableAutoScaleOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolDisableAutoScaleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ disableAutoScaleWithHttpOperationResponse(poolId: string, options?: { poolDisableAutoScaleOptions? : models.PoolDisableAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Disables automatic scaling for a Pool. * * @param {string} poolId The ID of the Pool on which to disable automatic * scaling. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolDisableAutoScaleOptions] Additional parameters * for the operation * * @param {number} [options.poolDisableAutoScaleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolDisableAutoScaleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolDisableAutoScaleOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolDisableAutoScaleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ disableAutoScale(poolId: string, options?: { poolDisableAutoScaleOptions? : models.PoolDisableAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }): Promise; disableAutoScale(poolId: string, callback: ServiceCallback): void; disableAutoScale(poolId: string, options: { poolDisableAutoScaleOptions? : models.PoolDisableAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Enables automatic scaling for a Pool. * * You cannot enable automatic scaling on a Pool if a resize operation is in * progress on the Pool. If automatic scaling of the Pool is currently * disabled, you must specify a valid autoscale formula as part of the request. * If automatic scaling of the Pool is already enabled, you may specify a new * autoscale formula and/or a new evaluation interval. You cannot call this API * for the same Pool more than once every 30 seconds. * * @param {string} poolId The ID of the Pool on which to enable automatic * scaling. * * @param {object} poolEnableAutoScaleParameter The parameters for the request. * * @param {string} [poolEnableAutoScaleParameter.autoScaleFormula] The formula * for the desired number of Compute Nodes in the Pool. The formula is checked * for validity before it is applied to the Pool. If the formula is not valid, * the Batch service rejects the request with detailed error information. For * more information about specifying this formula, see Automatically scale * Compute Nodes in an Azure Batch Pool * (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). * * @param {moment.duration} * [poolEnableAutoScaleParameter.autoScaleEvaluationInterval] The time interval * at which to automatically adjust the Pool size according to the autoscale * formula. The default value is 15 minutes. The minimum and maximum value are * 5 minutes and 168 hours respectively. If you specify a value less than 5 * minutes or greater than 168 hours, the Batch service rejects the request * with an invalid property value error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). If you specify a new * interval, then the existing autoscale evaluation schedule will be stopped * and a new autoscale evaluation schedule will be started, with its starting * time being the time when this request was issued. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolEnableAutoScaleOptions] Additional parameters * for the operation * * @param {number} [options.poolEnableAutoScaleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolEnableAutoScaleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolEnableAutoScaleOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolEnableAutoScaleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.poolEnableAutoScaleOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolEnableAutoScaleOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolEnableAutoScaleOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.poolEnableAutoScaleOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ enableAutoScaleWithHttpOperationResponse(poolId: string, poolEnableAutoScaleParameter: models.PoolEnableAutoScaleParameter, options?: { poolEnableAutoScaleOptions? : models.PoolEnableAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Enables automatic scaling for a Pool. * * You cannot enable automatic scaling on a Pool if a resize operation is in * progress on the Pool. If automatic scaling of the Pool is currently * disabled, you must specify a valid autoscale formula as part of the request. * If automatic scaling of the Pool is already enabled, you may specify a new * autoscale formula and/or a new evaluation interval. You cannot call this API * for the same Pool more than once every 30 seconds. * * @param {string} poolId The ID of the Pool on which to enable automatic * scaling. * * @param {object} poolEnableAutoScaleParameter The parameters for the request. * * @param {string} [poolEnableAutoScaleParameter.autoScaleFormula] The formula * for the desired number of Compute Nodes in the Pool. The formula is checked * for validity before it is applied to the Pool. If the formula is not valid, * the Batch service rejects the request with detailed error information. For * more information about specifying this formula, see Automatically scale * Compute Nodes in an Azure Batch Pool * (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). * * @param {moment.duration} * [poolEnableAutoScaleParameter.autoScaleEvaluationInterval] The time interval * at which to automatically adjust the Pool size according to the autoscale * formula. The default value is 15 minutes. The minimum and maximum value are * 5 minutes and 168 hours respectively. If you specify a value less than 5 * minutes or greater than 168 hours, the Batch service rejects the request * with an invalid property value error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). If you specify a new * interval, then the existing autoscale evaluation schedule will be stopped * and a new autoscale evaluation schedule will be started, with its starting * time being the time when this request was issued. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolEnableAutoScaleOptions] Additional parameters * for the operation * * @param {number} [options.poolEnableAutoScaleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolEnableAutoScaleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolEnableAutoScaleOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolEnableAutoScaleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.poolEnableAutoScaleOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolEnableAutoScaleOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolEnableAutoScaleOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.poolEnableAutoScaleOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ enableAutoScale(poolId: string, poolEnableAutoScaleParameter: models.PoolEnableAutoScaleParameter, options?: { poolEnableAutoScaleOptions? : models.PoolEnableAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }): Promise; enableAutoScale(poolId: string, poolEnableAutoScaleParameter: models.PoolEnableAutoScaleParameter, callback: ServiceCallback): void; enableAutoScale(poolId: string, poolEnableAutoScaleParameter: models.PoolEnableAutoScaleParameter, options: { poolEnableAutoScaleOptions? : models.PoolEnableAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets the result of evaluating an automatic scaling formula on the * Pool. * * This API is primarily for validating an autoscale formula, as it simply * returns the result without applying the formula to the Pool. The Pool must * have auto scaling enabled in order to evaluate a formula. * * @param {string} poolId The ID of the Pool on which to evaluate the automatic * scaling formula. * * @param {string} autoScaleFormula The formula for the desired number of * Compute Nodes in the Pool. The formula is validated and its results * calculated, but it is not applied to the Pool. To apply the formula to the * Pool, 'Enable automatic scaling on a Pool'. For more information about * specifying this formula, see Automatically scale Compute Nodes in an Azure * Batch Pool * (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolEvaluateAutoScaleOptions] Additional parameters * for the operation * * @param {number} [options.poolEvaluateAutoScaleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolEvaluateAutoScaleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.poolEvaluateAutoScaleOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolEvaluateAutoScaleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ evaluateAutoScaleWithHttpOperationResponse(poolId: string, autoScaleFormula: string, options?: { poolEvaluateAutoScaleOptions? : models.PoolEvaluateAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets the result of evaluating an automatic scaling formula on the * Pool. * * This API is primarily for validating an autoscale formula, as it simply * returns the result without applying the formula to the Pool. The Pool must * have auto scaling enabled in order to evaluate a formula. * * @param {string} poolId The ID of the Pool on which to evaluate the automatic * scaling formula. * * @param {string} autoScaleFormula The formula for the desired number of * Compute Nodes in the Pool. The formula is validated and its results * calculated, but it is not applied to the Pool. To apply the formula to the * Pool, 'Enable automatic scaling on a Pool'. For more information about * specifying this formula, see Automatically scale Compute Nodes in an Azure * Batch Pool * (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling). * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolEvaluateAutoScaleOptions] Additional parameters * for the operation * * @param {number} [options.poolEvaluateAutoScaleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolEvaluateAutoScaleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.poolEvaluateAutoScaleOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolEvaluateAutoScaleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {AutoScaleRun} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {AutoScaleRun} [result] - The deserialized result object if an error did not occur. * See {@link AutoScaleRun} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ evaluateAutoScale(poolId: string, autoScaleFormula: string, options?: { poolEvaluateAutoScaleOptions? : models.PoolEvaluateAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }): Promise; evaluateAutoScale(poolId: string, autoScaleFormula: string, callback: ServiceCallback): void; evaluateAutoScale(poolId: string, autoScaleFormula: string, options: { poolEvaluateAutoScaleOptions? : models.PoolEvaluateAutoScaleOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Changes the number of Compute Nodes that are assigned to a Pool. * * You can only resize a Pool when its allocation state is steady. If the Pool * is already resizing, the request fails with status code 409. When you resize * a Pool, the Pool's allocation state changes from steady to resizing. You * cannot resize Pools which are configured for automatic scaling. If you try * to do this, the Batch service returns an error 409. If you resize a Pool * downwards, the Batch service chooses which Compute Nodes to remove. To * remove specific Compute Nodes, use the Pool remove Compute Nodes API * instead. * * @param {string} poolId The ID of the Pool to resize. * * @param {object} poolResizeParameter The parameters for the request. * * @param {number} [poolResizeParameter.targetDedicatedNodes] The desired * number of dedicated Compute Nodes in the Pool. * * @param {number} [poolResizeParameter.targetLowPriorityNodes] The desired * number of low-priority Compute Nodes in the Pool. * * @param {moment.duration} [poolResizeParameter.resizeTimeout] The timeout for * allocation of Nodes to the Pool or removal of Compute Nodes from the Pool. * The default value is 15 minutes. The minimum value is 5 minutes. If you * specify a value less than 5 minutes, the Batch service returns an error; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {string} [poolResizeParameter.nodeDeallocationOption] Determines what * to do with a Compute Node and its running task(s) if the Pool size is * decreasing. The default value is requeue. Possible values include: * 'requeue', 'terminate', 'taskCompletion', 'retainedData' * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolResizeOptions] Additional parameters for the * operation * * @param {number} [options.poolResizeOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolResizeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolResizeOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolResizeOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolResizeOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolResizeOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolResizeOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolResizeOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ resizeWithHttpOperationResponse(poolId: string, poolResizeParameter: models.PoolResizeParameter, options?: { poolResizeOptions? : models.PoolResizeOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Changes the number of Compute Nodes that are assigned to a Pool. * * You can only resize a Pool when its allocation state is steady. If the Pool * is already resizing, the request fails with status code 409. When you resize * a Pool, the Pool's allocation state changes from steady to resizing. You * cannot resize Pools which are configured for automatic scaling. If you try * to do this, the Batch service returns an error 409. If you resize a Pool * downwards, the Batch service chooses which Compute Nodes to remove. To * remove specific Compute Nodes, use the Pool remove Compute Nodes API * instead. * * @param {string} poolId The ID of the Pool to resize. * * @param {object} poolResizeParameter The parameters for the request. * * @param {number} [poolResizeParameter.targetDedicatedNodes] The desired * number of dedicated Compute Nodes in the Pool. * * @param {number} [poolResizeParameter.targetLowPriorityNodes] The desired * number of low-priority Compute Nodes in the Pool. * * @param {moment.duration} [poolResizeParameter.resizeTimeout] The timeout for * allocation of Nodes to the Pool or removal of Compute Nodes from the Pool. * The default value is 15 minutes. The minimum value is 5 minutes. If you * specify a value less than 5 minutes, the Batch service returns an error; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {string} [poolResizeParameter.nodeDeallocationOption] Determines what * to do with a Compute Node and its running task(s) if the Pool size is * decreasing. The default value is requeue. Possible values include: * 'requeue', 'terminate', 'taskCompletion', 'retainedData' * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolResizeOptions] Additional parameters for the * operation * * @param {number} [options.poolResizeOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.poolResizeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolResizeOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolResizeOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolResizeOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.poolResizeOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolResizeOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolResizeOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ resize(poolId: string, poolResizeParameter: models.PoolResizeParameter, options?: { poolResizeOptions? : models.PoolResizeOptions, customHeaders? : { [headerName: string]: string; } }): Promise; resize(poolId: string, poolResizeParameter: models.PoolResizeParameter, callback: ServiceCallback): void; resize(poolId: string, poolResizeParameter: models.PoolResizeParameter, options: { poolResizeOptions? : models.PoolResizeOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Stops an ongoing resize operation on the Pool. * * This does not restore the Pool to its previous state before the resize * operation: it only stops any further changes being made, and the Pool * maintains its current state. After stopping, the Pool stabilizes at the * number of Compute Nodes it was at when the stop operation was done. During * the stop operation, the Pool allocation state changes first to stopping and * then to steady. A resize operation need not be an explicit resize Pool * request; this API can also be used to halt the initial sizing of the Pool * when it is created. * * @param {string} poolId The ID of the Pool whose resizing you want to stop. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolStopResizeOptions] Additional parameters for * the operation * * @param {number} [options.poolStopResizeOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.poolStopResizeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolStopResizeOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolStopResizeOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolStopResizeOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolStopResizeOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolStopResizeOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolStopResizeOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ stopResizeWithHttpOperationResponse(poolId: string, options?: { poolStopResizeOptions? : models.PoolStopResizeOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Stops an ongoing resize operation on the Pool. * * This does not restore the Pool to its previous state before the resize * operation: it only stops any further changes being made, and the Pool * maintains its current state. After stopping, the Pool stabilizes at the * number of Compute Nodes it was at when the stop operation was done. During * the stop operation, the Pool allocation state changes first to stopping and * then to steady. A resize operation need not be an explicit resize Pool * request; this API can also be used to halt the initial sizing of the Pool * when it is created. * * @param {string} poolId The ID of the Pool whose resizing you want to stop. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolStopResizeOptions] Additional parameters for * the operation * * @param {number} [options.poolStopResizeOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.poolStopResizeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolStopResizeOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolStopResizeOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolStopResizeOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolStopResizeOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolStopResizeOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolStopResizeOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ stopResize(poolId: string, options?: { poolStopResizeOptions? : models.PoolStopResizeOptions, customHeaders? : { [headerName: string]: string; } }): Promise; stopResize(poolId: string, callback: ServiceCallback): void; stopResize(poolId: string, options: { poolStopResizeOptions? : models.PoolStopResizeOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the properties of the specified Pool. * * This fully replaces all the updatable properties of the Pool. For example, * if the Pool has a StartTask associated with it and if StartTask is not * specified with this request, then the Batch service will remove the existing * StartTask. * * @param {string} poolId The ID of the Pool to update. * * @param {object} poolUpdatePropertiesParameter The parameters for the * request. * * @param {object} [poolUpdatePropertiesParameter.startTask] A Task to run on * each Compute Node as it joins the Pool. The Task runs when the Compute Node * is added to the Pool or when the Compute Node is restarted. If this element * is present, it overwrites any existing StartTask. If omitted, any existing * StartTask is removed from the Pool. * * @param {string} poolUpdatePropertiesParameter.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [poolUpdatePropertiesParameter.startTask.containerSettings] * 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. * * @param {string} * [poolUpdatePropertiesParameter.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * poolUpdatePropertiesParameter.startTask.containerSettings.imageName 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. * * @param {object} * [poolUpdatePropertiesParameter.startTask.containerSettings.registry] The * private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [poolUpdatePropertiesParameter.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * poolUpdatePropertiesParameter.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * poolUpdatePropertiesParameter.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [poolUpdatePropertiesParameter.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} [poolUpdatePropertiesParameter.startTask.resourceFiles] 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. * * @param {array} [poolUpdatePropertiesParameter.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} [poolUpdatePropertiesParameter.startTask.userIdentity] The * user identity under which the StartTask runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {string} * [poolUpdatePropertiesParameter.startTask.userIdentity.userName] The name of * the user identity under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {object} * [poolUpdatePropertiesParameter.startTask.userIdentity.autoUser] The auto * user under which the Task is run. The userName and autoUser properties are * mutually exclusive; you must specify one but not both. * * @param {string} * [poolUpdatePropertiesParameter.startTask.userIdentity.autoUser.scope] 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, or if certificates have been specified on * the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [poolUpdatePropertiesParameter.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} [poolUpdatePropertiesParameter.startTask.maxTaskRetryCount] * 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. * * @param {boolean} [poolUpdatePropertiesParameter.startTask.waitForSuccess] * 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. * * @param {array} poolUpdatePropertiesParameter.certificateReferences A list of * Certificates to be installed on each Compute Node in the Pool. This list * replaces any existing Certificate references configured on the Pool. If you * specify an empty collection, any existing Certificate references are removed * from the Pool. For Windows Nodes, the Batch service installs the * Certificates to the specified Certificate store and location. For Linux * Compute Nodes, the Certificates are stored in a directory inside the Task * working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is * supplied to the Task to query for this location. For Certificates with * visibility of 'remoteUser', a 'certs' directory is created in the user's * home directory (e.g., /home/{user-name}/certs) and Certificates are placed * in that directory. * * @param {array} poolUpdatePropertiesParameter.applicationPackageReferences * The list of Application Packages to be installed on each Compute Node in the * Pool. The list replaces any existing Application Package references on the * Pool. Changes to Application Package references affect all new Compute 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 * Application Package references on any given Pool. If omitted, or if you * specify an empty collection, any existing Application Packages references * are removed from the Pool. A maximum of 10 references may be specified on a * given Pool. * * @param {array} poolUpdatePropertiesParameter.metadata A list of name-value * pairs associated with the Pool as metadata. This list replaces any existing * metadata configured on the Pool. If omitted, or if you specify an empty * collection, any existing metadata is removed from the Pool. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolUpdatePropertiesOptions] Additional parameters * for the operation * * @param {number} [options.poolUpdatePropertiesOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolUpdatePropertiesOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolUpdatePropertiesOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolUpdatePropertiesOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ updatePropertiesWithHttpOperationResponse(poolId: string, poolUpdatePropertiesParameter: models.PoolUpdatePropertiesParameter, options?: { poolUpdatePropertiesOptions? : models.PoolUpdatePropertiesOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the properties of the specified Pool. * * This fully replaces all the updatable properties of the Pool. For example, * if the Pool has a StartTask associated with it and if StartTask is not * specified with this request, then the Batch service will remove the existing * StartTask. * * @param {string} poolId The ID of the Pool to update. * * @param {object} poolUpdatePropertiesParameter The parameters for the * request. * * @param {object} [poolUpdatePropertiesParameter.startTask] A Task to run on * each Compute Node as it joins the Pool. The Task runs when the Compute Node * is added to the Pool or when the Compute Node is restarted. If this element * is present, it overwrites any existing StartTask. If omitted, any existing * StartTask is removed from the Pool. * * @param {string} poolUpdatePropertiesParameter.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [poolUpdatePropertiesParameter.startTask.containerSettings] * 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. * * @param {string} * [poolUpdatePropertiesParameter.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * poolUpdatePropertiesParameter.startTask.containerSettings.imageName 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. * * @param {object} * [poolUpdatePropertiesParameter.startTask.containerSettings.registry] The * private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [poolUpdatePropertiesParameter.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * poolUpdatePropertiesParameter.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * poolUpdatePropertiesParameter.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [poolUpdatePropertiesParameter.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} [poolUpdatePropertiesParameter.startTask.resourceFiles] 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. * * @param {array} [poolUpdatePropertiesParameter.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} [poolUpdatePropertiesParameter.startTask.userIdentity] The * user identity under which the StartTask runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {string} * [poolUpdatePropertiesParameter.startTask.userIdentity.userName] The name of * the user identity under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {object} * [poolUpdatePropertiesParameter.startTask.userIdentity.autoUser] The auto * user under which the Task is run. The userName and autoUser properties are * mutually exclusive; you must specify one but not both. * * @param {string} * [poolUpdatePropertiesParameter.startTask.userIdentity.autoUser.scope] 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, or if certificates have been specified on * the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [poolUpdatePropertiesParameter.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} [poolUpdatePropertiesParameter.startTask.maxTaskRetryCount] * 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. * * @param {boolean} [poolUpdatePropertiesParameter.startTask.waitForSuccess] * 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. * * @param {array} poolUpdatePropertiesParameter.certificateReferences A list of * Certificates to be installed on each Compute Node in the Pool. This list * replaces any existing Certificate references configured on the Pool. If you * specify an empty collection, any existing Certificate references are removed * from the Pool. For Windows Nodes, the Batch service installs the * Certificates to the specified Certificate store and location. For Linux * Compute Nodes, the Certificates are stored in a directory inside the Task * working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is * supplied to the Task to query for this location. For Certificates with * visibility of 'remoteUser', a 'certs' directory is created in the user's * home directory (e.g., /home/{user-name}/certs) and Certificates are placed * in that directory. * * @param {array} poolUpdatePropertiesParameter.applicationPackageReferences * The list of Application Packages to be installed on each Compute Node in the * Pool. The list replaces any existing Application Package references on the * Pool. Changes to Application Package references affect all new Compute 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 * Application Package references on any given Pool. If omitted, or if you * specify an empty collection, any existing Application Packages references * are removed from the Pool. A maximum of 10 references may be specified on a * given Pool. * * @param {array} poolUpdatePropertiesParameter.metadata A list of name-value * pairs associated with the Pool as metadata. This list replaces any existing * metadata configured on the Pool. If omitted, or if you specify an empty * collection, any existing metadata is removed from the Pool. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolUpdatePropertiesOptions] Additional parameters * for the operation * * @param {number} [options.poolUpdatePropertiesOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.poolUpdatePropertiesOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolUpdatePropertiesOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolUpdatePropertiesOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ updateProperties(poolId: string, poolUpdatePropertiesParameter: models.PoolUpdatePropertiesParameter, options?: { poolUpdatePropertiesOptions? : models.PoolUpdatePropertiesOptions, customHeaders? : { [headerName: string]: string; } }): Promise; updateProperties(poolId: string, poolUpdatePropertiesParameter: models.PoolUpdatePropertiesParameter, callback: ServiceCallback): void; updateProperties(poolId: string, poolUpdatePropertiesParameter: models.PoolUpdatePropertiesParameter, options: { poolUpdatePropertiesOptions? : models.PoolUpdatePropertiesOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Removes Compute Nodes from the specified Pool. * * This operation can only run when the allocation state of the Pool is steady. * When this operation runs, the allocation state changes from steady to * resizing. * * @param {string} poolId The ID of the Pool from which you want to remove * Compute Nodes. * * @param {object} nodeRemoveParameter The parameters for the request. * * @param {array} nodeRemoveParameter.nodeList A list containing the IDs of the * Compute Nodes to be removed from the specified Pool. * * @param {moment.duration} [nodeRemoveParameter.resizeTimeout] The timeout for * removal of Compute Nodes to the Pool. The default value is 15 minutes. The * minimum value is 5 minutes. If you specify a value less than 5 minutes, the * Batch service returns an error; if you are calling the REST API directly, * the HTTP status code is 400 (Bad Request). * * @param {string} [nodeRemoveParameter.nodeDeallocationOption] Determines what * to do with a Compute Node and its running task(s) after it has been selected * for deallocation. The default value is requeue. Possible values include: * 'requeue', 'terminate', 'taskCompletion', 'retainedData' * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolRemoveNodesOptions] Additional parameters for * the operation * * @param {number} [options.poolRemoveNodesOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.poolRemoveNodesOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolRemoveNodesOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolRemoveNodesOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolRemoveNodesOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolRemoveNodesOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolRemoveNodesOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolRemoveNodesOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ removeNodesWithHttpOperationResponse(poolId: string, nodeRemoveParameter: models.NodeRemoveParameter, options?: { poolRemoveNodesOptions? : models.PoolRemoveNodesOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Removes Compute Nodes from the specified Pool. * * This operation can only run when the allocation state of the Pool is steady. * When this operation runs, the allocation state changes from steady to * resizing. * * @param {string} poolId The ID of the Pool from which you want to remove * Compute Nodes. * * @param {object} nodeRemoveParameter The parameters for the request. * * @param {array} nodeRemoveParameter.nodeList A list containing the IDs of the * Compute Nodes to be removed from the specified Pool. * * @param {moment.duration} [nodeRemoveParameter.resizeTimeout] The timeout for * removal of Compute Nodes to the Pool. The default value is 15 minutes. The * minimum value is 5 minutes. If you specify a value less than 5 minutes, the * Batch service returns an error; if you are calling the REST API directly, * the HTTP status code is 400 (Bad Request). * * @param {string} [nodeRemoveParameter.nodeDeallocationOption] Determines what * to do with a Compute Node and its running task(s) after it has been selected * for deallocation. The default value is requeue. Possible values include: * 'requeue', 'terminate', 'taskCompletion', 'retainedData' * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolRemoveNodesOptions] Additional parameters for * the operation * * @param {number} [options.poolRemoveNodesOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.poolRemoveNodesOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolRemoveNodesOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.poolRemoveNodesOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.poolRemoveNodesOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.poolRemoveNodesOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.poolRemoveNodesOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.poolRemoveNodesOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ removeNodes(poolId: string, nodeRemoveParameter: models.NodeRemoveParameter, options?: { poolRemoveNodesOptions? : models.PoolRemoveNodesOptions, customHeaders? : { [headerName: string]: string; } }): Promise; removeNodes(poolId: string, nodeRemoveParameter: models.NodeRemoveParameter, callback: ServiceCallback): void; removeNodes(poolId: string, nodeRemoveParameter: models.NodeRemoveParameter, options: { poolRemoveNodesOptions? : models.PoolRemoveNodesOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the usage metrics, aggregated by Pool across individual time * intervals, for the specified Account. * * If you do not specify a $filter clause including a poolId, the response * includes all Pools that existed in the Account in the time range of the * returned aggregation intervals. If you do not specify a $filter clause * including a startTime or endTime these filters default to the start and end * times of the last aggregation interval currently available; that is, only * the last aggregation interval is returned. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListUsageMetricsNextOptions] Additional * parameters for the operation * * @param {uuid} [options.poolListUsageMetricsNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.poolListUsageMetricsNextOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolListUsageMetricsNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listUsageMetricsNextWithHttpOperationResponse(nextPageLink: string, options?: { poolListUsageMetricsNextOptions? : models.PoolListUsageMetricsNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the usage metrics, aggregated by Pool across individual time * intervals, for the specified Account. * * If you do not specify a $filter clause including a poolId, the response * includes all Pools that existed in the Account in the time range of the * returned aggregation intervals. If you do not specify a $filter clause * including a startTime or endTime these filters default to the start and end * times of the last aggregation interval currently available; that is, only * the last aggregation interval is returned. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListUsageMetricsNextOptions] Additional * parameters for the operation * * @param {uuid} [options.poolListUsageMetricsNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.poolListUsageMetricsNextOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.poolListUsageMetricsNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {PoolListUsageMetricsResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {PoolListUsageMetricsResult} [result] - The deserialized result object if an error did not occur. * See {@link PoolListUsageMetricsResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listUsageMetricsNext(nextPageLink: string, options?: { poolListUsageMetricsNextOptions? : models.PoolListUsageMetricsNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listUsageMetricsNext(nextPageLink: string, callback: ServiceCallback): void; listUsageMetricsNext(nextPageLink: string, options: { poolListUsageMetricsNextOptions? : models.PoolListUsageMetricsNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Pools in the specified Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListNextOptions] Additional parameters for the * operation * * @param {uuid} [options.poolListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolListNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolListNextOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { poolListNextOptions? : models.PoolListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Pools in the specified Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.poolListNextOptions] Additional parameters for the * operation * * @param {uuid} [options.poolListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.poolListNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.poolListNextOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudPoolListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudPoolListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudPoolListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { poolListNextOptions? : models.PoolListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { poolListNextOptions? : models.PoolListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * Account * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface Account { /** * @summary Lists all Virtual Machine Images supported by the Azure Batch * service. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListSupportedImagesOptions] Additional * parameters for the operation * * @param {string} [options.accountListSupportedImagesOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. * * @param {number} [options.accountListSupportedImagesOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 results * will be returned. * * @param {number} [options.accountListSupportedImagesOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.accountListSupportedImagesOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListSupportedImagesOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.accountListSupportedImagesOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listSupportedImagesWithHttpOperationResponse(options?: { accountListSupportedImagesOptions? : models.AccountListSupportedImagesOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all Virtual Machine Images supported by the Azure Batch * service. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListSupportedImagesOptions] Additional * parameters for the operation * * @param {string} [options.accountListSupportedImagesOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. * * @param {number} [options.accountListSupportedImagesOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 results * will be returned. * * @param {number} [options.accountListSupportedImagesOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.accountListSupportedImagesOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListSupportedImagesOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.accountListSupportedImagesOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {AccountListSupportedImagesResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {AccountListSupportedImagesResult} [result] - The deserialized result object if an error did not occur. * See {@link AccountListSupportedImagesResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listSupportedImages(options?: { accountListSupportedImagesOptions? : models.AccountListSupportedImagesOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listSupportedImages(callback: ServiceCallback): void; listSupportedImages(options: { accountListSupportedImagesOptions? : models.AccountListSupportedImagesOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets the number of Compute Nodes in each state, grouped by Pool. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListPoolNodeCountsOptions] Additional * parameters for the operation * * @param {string} [options.accountListPoolNodeCountsOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. * * @param {number} [options.accountListPoolNodeCountsOptions.maxResults] The * maximum number of items to return in the response. * * @param {number} [options.accountListPoolNodeCountsOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.accountListPoolNodeCountsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListPoolNodeCountsOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.accountListPoolNodeCountsOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listPoolNodeCountsWithHttpOperationResponse(options?: { accountListPoolNodeCountsOptions? : models.AccountListPoolNodeCountsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets the number of Compute Nodes in each state, grouped by Pool. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListPoolNodeCountsOptions] Additional * parameters for the operation * * @param {string} [options.accountListPoolNodeCountsOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch. * * @param {number} [options.accountListPoolNodeCountsOptions.maxResults] The * maximum number of items to return in the response. * * @param {number} [options.accountListPoolNodeCountsOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.accountListPoolNodeCountsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListPoolNodeCountsOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.accountListPoolNodeCountsOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {PoolNodeCountsListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {PoolNodeCountsListResult} [result] - The deserialized result object if an error did not occur. * See {@link PoolNodeCountsListResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listPoolNodeCounts(options?: { accountListPoolNodeCountsOptions? : models.AccountListPoolNodeCountsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listPoolNodeCounts(callback: ServiceCallback): void; listPoolNodeCounts(options: { accountListPoolNodeCountsOptions? : models.AccountListPoolNodeCountsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all Virtual Machine Images supported by the Azure Batch * service. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListSupportedImagesNextOptions] Additional * parameters for the operation * * @param {uuid} * [options.accountListSupportedImagesNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListSupportedImagesNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.accountListSupportedImagesNextOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listSupportedImagesNextWithHttpOperationResponse(nextPageLink: string, options?: { accountListSupportedImagesNextOptions? : models.AccountListSupportedImagesNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all Virtual Machine Images supported by the Azure Batch * service. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListSupportedImagesNextOptions] Additional * parameters for the operation * * @param {uuid} * [options.accountListSupportedImagesNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListSupportedImagesNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.accountListSupportedImagesNextOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {AccountListSupportedImagesResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {AccountListSupportedImagesResult} [result] - The deserialized result object if an error did not occur. * See {@link AccountListSupportedImagesResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listSupportedImagesNext(nextPageLink: string, options?: { accountListSupportedImagesNextOptions? : models.AccountListSupportedImagesNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listSupportedImagesNext(nextPageLink: string, callback: ServiceCallback): void; listSupportedImagesNext(nextPageLink: string, options: { accountListSupportedImagesNextOptions? : models.AccountListSupportedImagesNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets the number of Compute Nodes in each state, grouped by Pool. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListPoolNodeCountsNextOptions] Additional * parameters for the operation * * @param {uuid} [options.accountListPoolNodeCountsNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListPoolNodeCountsNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.accountListPoolNodeCountsNextOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listPoolNodeCountsNextWithHttpOperationResponse(nextPageLink: string, options?: { accountListPoolNodeCountsNextOptions? : models.AccountListPoolNodeCountsNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets the number of Compute Nodes in each state, grouped by Pool. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.accountListPoolNodeCountsNextOptions] Additional * parameters for the operation * * @param {uuid} [options.accountListPoolNodeCountsNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.accountListPoolNodeCountsNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.accountListPoolNodeCountsNextOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {PoolNodeCountsListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {PoolNodeCountsListResult} [result] - The deserialized result object if an error did not occur. * See {@link PoolNodeCountsListResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listPoolNodeCountsNext(nextPageLink: string, options?: { accountListPoolNodeCountsNextOptions? : models.AccountListPoolNodeCountsNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listPoolNodeCountsNext(nextPageLink: string, callback: ServiceCallback): void; listPoolNodeCountsNext(nextPageLink: string, options: { accountListPoolNodeCountsNextOptions? : models.AccountListPoolNodeCountsNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * Job * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface Job { /** * @summary Gets lifetime summary statistics for all of the Jobs in the * specified Account. * * Statistics are aggregated across all Jobs that have ever existed in the * Account, from Account creation to the last update time of the statistics. * The statistics may not be immediately available. The Batch service performs * periodic roll-up of statistics. The typical delay is about 30 minutes. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobGetAllLifetimeStatisticsOptions] Additional * parameters for the operation * * @param {number} [options.jobGetAllLifetimeStatisticsOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.jobGetAllLifetimeStatisticsOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobGetAllLifetimeStatisticsOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobGetAllLifetimeStatisticsOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getAllLifetimeStatisticsWithHttpOperationResponse(options?: { jobGetAllLifetimeStatisticsOptions? : models.JobGetAllLifetimeStatisticsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets lifetime summary statistics for all of the Jobs in the * specified Account. * * Statistics are aggregated across all Jobs that have ever existed in the * Account, from Account creation to the last update time of the statistics. * The statistics may not be immediately available. The Batch service performs * periodic roll-up of statistics. The typical delay is about 30 minutes. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobGetAllLifetimeStatisticsOptions] Additional * parameters for the operation * * @param {number} [options.jobGetAllLifetimeStatisticsOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.jobGetAllLifetimeStatisticsOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobGetAllLifetimeStatisticsOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobGetAllLifetimeStatisticsOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {JobStatistics} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {JobStatistics} [result] - The deserialized result object if an error did not occur. * See {@link JobStatistics} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getAllLifetimeStatistics(options?: { jobGetAllLifetimeStatisticsOptions? : models.JobGetAllLifetimeStatisticsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getAllLifetimeStatistics(callback: ServiceCallback): void; getAllLifetimeStatistics(options: { jobGetAllLifetimeStatisticsOptions? : models.JobGetAllLifetimeStatisticsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes a Job. * * Deleting a Job also deletes all Tasks that are part of that Job, and all Job * statistics. This also overrides the retention period for Task data; that is, * if the Job contains Tasks which are still retained on Compute Nodes, the * Batch services deletes those Tasks' working directories and all their * contents. When a Delete Job request is received, the Batch service sets the * Job to the deleting state. All update operations on a Job that is in * deleting state will fail with status code 409 (Conflict), with additional * information indicating that the Job is being deleted. * * @param {string} jobId The ID of the Job to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobDeleteMethodOptions] Additional parameters for * the operation * * @param {number} [options.jobDeleteMethodOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobDeleteMethodOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobDeleteMethodOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobDeleteMethodOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobDeleteMethodOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobDeleteMethodOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobDeleteMethodOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteMethodWithHttpOperationResponse(jobId: string, options?: { jobDeleteMethodOptions? : models.JobDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes a Job. * * Deleting a Job also deletes all Tasks that are part of that Job, and all Job * statistics. This also overrides the retention period for Task data; that is, * if the Job contains Tasks which are still retained on Compute Nodes, the * Batch services deletes those Tasks' working directories and all their * contents. When a Delete Job request is received, the Batch service sets the * Job to the deleting state. All update operations on a Job that is in * deleting state will fail with status code 409 (Conflict), with additional * information indicating that the Job is being deleted. * * @param {string} jobId The ID of the Job to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobDeleteMethodOptions] Additional parameters for * the operation * * @param {number} [options.jobDeleteMethodOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobDeleteMethodOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobDeleteMethodOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobDeleteMethodOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobDeleteMethodOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobDeleteMethodOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobDeleteMethodOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteMethod(jobId: string, options?: { jobDeleteMethodOptions? : models.JobDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteMethod(jobId: string, callback: ServiceCallback): void; deleteMethod(jobId: string, options: { jobDeleteMethodOptions? : models.JobDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets information about the specified Job. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobGetOptions] Additional parameters for the * operation * * @param {string} [options.jobGetOptions.select] An OData $select clause. * * @param {string} [options.jobGetOptions.expand] An OData $expand clause. * * @param {number} [options.jobGetOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobGetOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobGetOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobGetOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobGetOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobGetOptions.ifNoneMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service does not match * the value specified by the client. * * @param {date} [options.jobGetOptions.ifModifiedSince] A timestamp indicating * the last modified time of the resource known to the client. The operation * will be performed only if the resource on the service has been modified * since the specified time. * * @param {date} [options.jobGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(jobId: string, options?: { jobGetOptions? : models.JobGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets information about the specified Job. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobGetOptions] Additional parameters for the * operation * * @param {string} [options.jobGetOptions.select] An OData $select clause. * * @param {string} [options.jobGetOptions.expand] An OData $expand clause. * * @param {number} [options.jobGetOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobGetOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobGetOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobGetOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobGetOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobGetOptions.ifNoneMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service does not match * the value specified by the client. * * @param {date} [options.jobGetOptions.ifModifiedSince] A timestamp indicating * the last modified time of the resource known to the client. The operation * will be performed only if the resource on the service has been modified * since the specified time. * * @param {date} [options.jobGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJob} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJob} [result] - The deserialized result object if an error did not occur. * See {@link CloudJob} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(jobId: string, options?: { jobGetOptions? : models.JobGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(jobId: string, callback: ServiceCallback): void; get(jobId: string, options: { jobGetOptions? : models.JobGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the properties of the specified Job. * * This replaces only the Job properties specified in the request. For example, * if the Job has constraints, and a request does not specify the constraints * element, then the Job keeps the existing constraints. * * @param {string} jobId The ID of the Job whose properties you want to update. * * @param {object} jobPatchParameter The parameters for the request. * * @param {number} [jobPatchParameter.priority] The priority of the Job. * Priority values can range from -1000 to 1000, with -1000 being the lowest * priority and 1000 being the highest priority. If omitted, the priority of * the Job is left unchanged. * * @param {string} [jobPatchParameter.onAllTasksComplete] The action the Batch * service should take when all Tasks in the Job are in the completed state. If * omitted, the completion behavior is left unchanged. You may not change the * value from terminatejob to noaction - that is, once you have engaged * automatic Job termination, you cannot turn it off again. If you try to do * this, the request fails with an 'invalid property value' error response; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). Possible values include: 'noAction', 'terminateJob' * * @param {object} [jobPatchParameter.constraints] The execution constraints * for the Job. If omitted, the existing execution constraints are left * unchanged. * * @param {moment.duration} [jobPatchParameter.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} [jobPatchParameter.constraints.maxTaskRetryCount] The * maximum number of times each 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 each Task once, * and may then retry up to this limit. For example, if the maximum retry count * is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If * the maximum retry count is 0, the Batch service does not retry Tasks. If the * maximum retry count is -1, the Batch service retries Tasks without limit. * The default value is 0 (no retries). * * @param {object} [jobPatchParameter.poolInfo] The Pool on which the Batch * service runs the Job's Tasks. You may change the Pool for a Job only when * the Job is disabled. The Patch Job call will fail if you include the * poolInfo element and the Job is not disabled. If you specify an * autoPoolSpecification in the poolInfo, only the keepAlive property of the * autoPoolSpecification can be updated, and then only if the * autoPoolSpecification has a poolLifetimeOption of Job (other job properties * can be updated as normal). If omitted, the Job continues to run on its * current Pool. * * @param {string} [jobPatchParameter.poolInfo.poolId] The ID of an existing * Pool. All the Tasks of the Job will run on the specified Pool. You must * ensure that the Pool referenced by this property exists. If the Pool does * not exist at the time the Batch service tries to schedule a Job, no Tasks * for the Job will run until you create a Pool with that id. Note that the * Batch service will not reject the Job request; it will simply not run Tasks * until the Pool exists. You must specify either the Pool ID or the auto Pool * specification, but not both. * * @param {object} [jobPatchParameter.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.autoPoolIdPrefix] A prefix * to be added to the unique identifier when a Pool is automatically created. * The Batch service assigns each auto Pool a unique identifier on creation. To * distinguish between Pools created for different purposes, you can specify * this element to add a prefix to the ID that is assigned. The prefix can be * up to 20 characters long. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.poolLifetimeOption The * minimum lifetime of created auto Pools, and how multiple Jobs on a schedule * are assigned to Pools. Possible values include: 'jobSchedule', 'job' * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.keepAlive] Whether to keep * an auto Pool alive after its lifetime expires. If false, the Batch service * deletes the Pool once its lifetime (as determined by the poolLifetimeOption * setting) expires; that is, when the Job or Job Schedule completes. If true, * the Batch service does not delete the Pool automatically. It is up to the * user to delete auto Pools created with this option. * * @param {object} [jobPatchParameter.poolInfo.autoPoolSpecification.pool] The * Pool specification for the auto Pool. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.displayName] The * display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} jobPatchParameter.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] The * maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.resizeTimeout] The * timeout for allocation of Compute Nodes to the Pool. This timeout applies * only to manual scaling; it has no effect when enableAutoScale is set to * true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.autoScaleFormula] The * formula for the desired number of Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to false. It is required if * enableAutoScale is set to true. The formula is checked for validity before * the Pool is created. If the formula is not valid, the Batch service rejects * the request with detailed error information. * * @param {moment.duration} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask] A Task to * run on each Compute Node as it joins the Pool. The Task runs when the * Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.userAccounts] The * list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.metadata] A list of * name-value pairs associated with the Pool as metadata. The Batch service * does not assign any meaning to metadata; it is solely for the use of user * code. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.mountConfiguration] A * list of file systems to mount on each node in the pool. This supports Azure * Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobPatchParameter.metadata] A list of name-value pairs * associated with the Job as metadata. If omitted, the existing Job metadata * is left unchanged. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobPatchOptions] Additional parameters for the * operation * * @param {number} [options.jobPatchOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobPatchOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobPatchOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobPatchOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobPatchOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobPatchOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobPatchOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobPatchOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ patchWithHttpOperationResponse(jobId: string, jobPatchParameter: models.JobPatchParameter, options?: { jobPatchOptions? : models.JobPatchOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the properties of the specified Job. * * This replaces only the Job properties specified in the request. For example, * if the Job has constraints, and a request does not specify the constraints * element, then the Job keeps the existing constraints. * * @param {string} jobId The ID of the Job whose properties you want to update. * * @param {object} jobPatchParameter The parameters for the request. * * @param {number} [jobPatchParameter.priority] The priority of the Job. * Priority values can range from -1000 to 1000, with -1000 being the lowest * priority and 1000 being the highest priority. If omitted, the priority of * the Job is left unchanged. * * @param {string} [jobPatchParameter.onAllTasksComplete] The action the Batch * service should take when all Tasks in the Job are in the completed state. If * omitted, the completion behavior is left unchanged. You may not change the * value from terminatejob to noaction - that is, once you have engaged * automatic Job termination, you cannot turn it off again. If you try to do * this, the request fails with an 'invalid property value' error response; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). Possible values include: 'noAction', 'terminateJob' * * @param {object} [jobPatchParameter.constraints] The execution constraints * for the Job. If omitted, the existing execution constraints are left * unchanged. * * @param {moment.duration} [jobPatchParameter.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} [jobPatchParameter.constraints.maxTaskRetryCount] The * maximum number of times each 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 each Task once, * and may then retry up to this limit. For example, if the maximum retry count * is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If * the maximum retry count is 0, the Batch service does not retry Tasks. If the * maximum retry count is -1, the Batch service retries Tasks without limit. * The default value is 0 (no retries). * * @param {object} [jobPatchParameter.poolInfo] The Pool on which the Batch * service runs the Job's Tasks. You may change the Pool for a Job only when * the Job is disabled. The Patch Job call will fail if you include the * poolInfo element and the Job is not disabled. If you specify an * autoPoolSpecification in the poolInfo, only the keepAlive property of the * autoPoolSpecification can be updated, and then only if the * autoPoolSpecification has a poolLifetimeOption of Job (other job properties * can be updated as normal). If omitted, the Job continues to run on its * current Pool. * * @param {string} [jobPatchParameter.poolInfo.poolId] The ID of an existing * Pool. All the Tasks of the Job will run on the specified Pool. You must * ensure that the Pool referenced by this property exists. If the Pool does * not exist at the time the Batch service tries to schedule a Job, no Tasks * for the Job will run until you create a Pool with that id. Note that the * Batch service will not reject the Job request; it will simply not run Tasks * until the Pool exists. You must specify either the Pool ID or the auto Pool * specification, but not both. * * @param {object} [jobPatchParameter.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.autoPoolIdPrefix] A prefix * to be added to the unique identifier when a Pool is automatically created. * The Batch service assigns each auto Pool a unique identifier on creation. To * distinguish between Pools created for different purposes, you can specify * this element to add a prefix to the ID that is assigned. The prefix can be * up to 20 characters long. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.poolLifetimeOption The * minimum lifetime of created auto Pools, and how multiple Jobs on a schedule * are assigned to Pools. Possible values include: 'jobSchedule', 'job' * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.keepAlive] Whether to keep * an auto Pool alive after its lifetime expires. If false, the Batch service * deletes the Pool once its lifetime (as determined by the poolLifetimeOption * setting) expires; that is, when the Job or Job Schedule completes. If true, * the Batch service does not delete the Pool automatically. It is up to the * user to delete auto Pools created with this option. * * @param {object} [jobPatchParameter.poolInfo.autoPoolSpecification.pool] The * Pool specification for the auto Pool. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.displayName] The * display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} jobPatchParameter.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] The * maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.resizeTimeout] The * timeout for allocation of Compute Nodes to the Pool. This timeout applies * only to manual scaling; it has no effect when enableAutoScale is set to * true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.autoScaleFormula] The * formula for the desired number of Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to false. It is required if * enableAutoScale is set to true. The formula is checked for validity before * the Pool is created. If the formula is not valid, the Batch service rejects * the request with detailed error information. * * @param {moment.duration} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask] A Task to * run on each Compute Node as it joins the Pool. The Task runs when the * Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.userAccounts] The * list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.metadata] A list of * name-value pairs associated with the Pool as metadata. The Batch service * does not assign any meaning to metadata; it is solely for the use of user * code. * * @param {array} * [jobPatchParameter.poolInfo.autoPoolSpecification.pool.mountConfiguration] A * list of file systems to mount on each node in the pool. This supports Azure * Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobPatchParameter.metadata] A list of name-value pairs * associated with the Job as metadata. If omitted, the existing Job metadata * is left unchanged. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobPatchOptions] Additional parameters for the * operation * * @param {number} [options.jobPatchOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobPatchOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobPatchOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobPatchOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobPatchOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobPatchOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobPatchOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobPatchOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ patch(jobId: string, jobPatchParameter: models.JobPatchParameter, options?: { jobPatchOptions? : models.JobPatchOptions, customHeaders? : { [headerName: string]: string; } }): Promise; patch(jobId: string, jobPatchParameter: models.JobPatchParameter, callback: ServiceCallback): void; patch(jobId: string, jobPatchParameter: models.JobPatchParameter, options: { jobPatchOptions? : models.JobPatchOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the properties of the specified Job. * * This fully replaces all the updatable properties of the Job. For example, if * the Job has constraints associated with it and if constraints is not * specified with this request, then the Batch service will remove the existing * constraints. * * @param {string} jobId The ID of the Job whose properties you want to update. * * @param {object} jobUpdateParameter The parameters for the request. * * @param {number} [jobUpdateParameter.priority] The priority of the Job. * Priority values can range from -1000 to 1000, with -1000 being the lowest * priority and 1000 being the highest priority. If omitted, it is set to the * default value 0. * * @param {object} [jobUpdateParameter.constraints] The execution constraints * for the Job. If omitted, the constraints are cleared. * * @param {moment.duration} [jobUpdateParameter.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} [jobUpdateParameter.constraints.maxTaskRetryCount] The * maximum number of times each 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 each Task once, * and may then retry up to this limit. For example, if the maximum retry count * is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If * the maximum retry count is 0, the Batch service does not retry Tasks. If the * maximum retry count is -1, the Batch service retries Tasks without limit. * The default value is 0 (no retries). * * @param {object} jobUpdateParameter.poolInfo The Pool on which the Batch * service runs the Job's Tasks. You may change the Pool for a Job only when * the Job is disabled. The Update Job call will fail if you include the * poolInfo element and the Job is not disabled. If you specify an * autoPoolSpecification in the poolInfo, only the keepAlive property of the * autoPoolSpecification can be updated, and then only if the * autoPoolSpecification has a poolLifetimeOption of Job (other job properties * can be updated as normal). * * @param {string} [jobUpdateParameter.poolInfo.poolId] The ID of an existing * Pool. All the Tasks of the Job will run on the specified Pool. You must * ensure that the Pool referenced by this property exists. If the Pool does * not exist at the time the Batch service tries to schedule a Job, no Tasks * for the Job will run until you create a Pool with that id. Note that the * Batch service will not reject the Job request; it will simply not run Tasks * until the Pool exists. You must specify either the Pool ID or the auto Pool * specification, but not both. * * @param {object} [jobUpdateParameter.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.autoPoolIdPrefix] A * prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.poolLifetimeOption The * minimum lifetime of created auto Pools, and how multiple Jobs on a schedule * are assigned to Pools. Possible values include: 'jobSchedule', 'job' * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.keepAlive] Whether to * keep an auto Pool alive after its lifetime expires. If false, the Batch * service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} [jobUpdateParameter.poolInfo.autoPoolSpecification.pool] The * Pool specification for the auto Pool. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.displayName] The * display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.vmSize The size of * the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] The * maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.resizeTimeout] The * timeout for allocation of Compute Nodes to the Pool. This timeout applies * only to manual scaling; it has no effect when enableAutoScale is set to * true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask] A Task to * run on each Compute Node as it joins the Pool. The Task runs when the * Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.userAccounts] The * list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.metadata] A list of * name-value pairs associated with the Pool as metadata. The Batch service * does not assign any meaning to metadata; it is solely for the use of user * code. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobUpdateParameter.metadata] A list of name-value pairs * associated with the Job as metadata. If omitted, it takes the default value * of an empty list; in effect, any existing metadata is deleted. * * @param {string} [jobUpdateParameter.onAllTasksComplete] The action the Batch * service should take when all Tasks in the Job are in the completed state. If * omitted, the completion behavior is set to noaction. If the current value is * terminatejob, this is an error because a Job's completion behavior may not * be changed from terminatejob to noaction. You may not change the value from * terminatejob to noaction - that is, once you have engaged automatic Job * termination, you cannot turn it off again. If you try to do this, the * request fails and Batch returns status code 400 (Bad Request) and an * 'invalid property value' error response. If you do not specify this element * in a PUT request, it is equivalent to passing noaction. This is an error if * the current value is terminatejob. Possible values include: 'noAction', * 'terminateJob' * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobUpdateOptions] Additional parameters for the * operation * * @param {number} [options.jobUpdateOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobUpdateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobUpdateOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobUpdateOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobUpdateOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobUpdateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobUpdateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobUpdateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ updateWithHttpOperationResponse(jobId: string, jobUpdateParameter: models.JobUpdateParameter, options?: { jobUpdateOptions? : models.JobUpdateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the properties of the specified Job. * * This fully replaces all the updatable properties of the Job. For example, if * the Job has constraints associated with it and if constraints is not * specified with this request, then the Batch service will remove the existing * constraints. * * @param {string} jobId The ID of the Job whose properties you want to update. * * @param {object} jobUpdateParameter The parameters for the request. * * @param {number} [jobUpdateParameter.priority] The priority of the Job. * Priority values can range from -1000 to 1000, with -1000 being the lowest * priority and 1000 being the highest priority. If omitted, it is set to the * default value 0. * * @param {object} [jobUpdateParameter.constraints] The execution constraints * for the Job. If omitted, the constraints are cleared. * * @param {moment.duration} [jobUpdateParameter.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} [jobUpdateParameter.constraints.maxTaskRetryCount] The * maximum number of times each 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 each Task once, * and may then retry up to this limit. For example, if the maximum retry count * is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If * the maximum retry count is 0, the Batch service does not retry Tasks. If the * maximum retry count is -1, the Batch service retries Tasks without limit. * The default value is 0 (no retries). * * @param {object} jobUpdateParameter.poolInfo The Pool on which the Batch * service runs the Job's Tasks. You may change the Pool for a Job only when * the Job is disabled. The Update Job call will fail if you include the * poolInfo element and the Job is not disabled. If you specify an * autoPoolSpecification in the poolInfo, only the keepAlive property of the * autoPoolSpecification can be updated, and then only if the * autoPoolSpecification has a poolLifetimeOption of Job (other job properties * can be updated as normal). * * @param {string} [jobUpdateParameter.poolInfo.poolId] The ID of an existing * Pool. All the Tasks of the Job will run on the specified Pool. You must * ensure that the Pool referenced by this property exists. If the Pool does * not exist at the time the Batch service tries to schedule a Job, no Tasks * for the Job will run until you create a Pool with that id. Note that the * Batch service will not reject the Job request; it will simply not run Tasks * until the Pool exists. You must specify either the Pool ID or the auto Pool * specification, but not both. * * @param {object} [jobUpdateParameter.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.autoPoolIdPrefix] A * prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.poolLifetimeOption The * minimum lifetime of created auto Pools, and how multiple Jobs on a schedule * are assigned to Pools. Possible values include: 'jobSchedule', 'job' * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.keepAlive] Whether to * keep an auto Pool alive after its lifetime expires. If false, the Batch * service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} [jobUpdateParameter.poolInfo.autoPoolSpecification.pool] The * Pool specification for the auto Pool. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.displayName] The * display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.vmSize The size of * the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] The * maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.resizeTimeout] The * timeout for allocation of Compute Nodes to the Pool. This timeout applies * only to manual scaling; it has no effect when enableAutoScale is set to * true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask] A Task to * run on each Compute Node as it joins the Pool. The Task runs when the * Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.userAccounts] The * list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.metadata] A list of * name-value pairs associated with the Pool as metadata. The Batch service * does not assign any meaning to metadata; it is solely for the use of user * code. * * @param {array} * [jobUpdateParameter.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobUpdateParameter.metadata] A list of name-value pairs * associated with the Job as metadata. If omitted, it takes the default value * of an empty list; in effect, any existing metadata is deleted. * * @param {string} [jobUpdateParameter.onAllTasksComplete] The action the Batch * service should take when all Tasks in the Job are in the completed state. If * omitted, the completion behavior is set to noaction. If the current value is * terminatejob, this is an error because a Job's completion behavior may not * be changed from terminatejob to noaction. You may not change the value from * terminatejob to noaction - that is, once you have engaged automatic Job * termination, you cannot turn it off again. If you try to do this, the * request fails and Batch returns status code 400 (Bad Request) and an * 'invalid property value' error response. If you do not specify this element * in a PUT request, it is equivalent to passing noaction. This is an error if * the current value is terminatejob. Possible values include: 'noAction', * 'terminateJob' * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobUpdateOptions] Additional parameters for the * operation * * @param {number} [options.jobUpdateOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobUpdateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobUpdateOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobUpdateOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobUpdateOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobUpdateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobUpdateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobUpdateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ update(jobId: string, jobUpdateParameter: models.JobUpdateParameter, options?: { jobUpdateOptions? : models.JobUpdateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; update(jobId: string, jobUpdateParameter: models.JobUpdateParameter, callback: ServiceCallback): void; update(jobId: string, jobUpdateParameter: models.JobUpdateParameter, options: { jobUpdateOptions? : models.JobUpdateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Disables the specified Job, preventing new Tasks from running. * * The Batch Service immediately moves the Job to the disabling state. Batch * then uses the disableTasks parameter to determine what to do with the * currently running Tasks of the Job. The Job remains in the disabling state * until the disable operation is completed and all Tasks have been dealt with * according to the disableTasks option; the Job then moves to the disabled * state. No new Tasks are started under the Job until it moves back to active * state. If you try to disable a Job that is in any state other than active, * disabling, or disabled, the request fails with status code 409. * * @param {string} jobId The ID of the Job to disable. * * @param {string} disableTasks What to do with active Tasks associated with * the Job. Possible values include: 'requeue', 'terminate', 'wait' * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobDisableOptions] Additional parameters for the * operation * * @param {number} [options.jobDisableOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobDisableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobDisableOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobDisableOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobDisableOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobDisableOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobDisableOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobDisableOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ disableWithHttpOperationResponse(jobId: string, disableTasks: string, options?: { jobDisableOptions? : models.JobDisableOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Disables the specified Job, preventing new Tasks from running. * * The Batch Service immediately moves the Job to the disabling state. Batch * then uses the disableTasks parameter to determine what to do with the * currently running Tasks of the Job. The Job remains in the disabling state * until the disable operation is completed and all Tasks have been dealt with * according to the disableTasks option; the Job then moves to the disabled * state. No new Tasks are started under the Job until it moves back to active * state. If you try to disable a Job that is in any state other than active, * disabling, or disabled, the request fails with status code 409. * * @param {string} jobId The ID of the Job to disable. * * @param {string} disableTasks What to do with active Tasks associated with * the Job. Possible values include: 'requeue', 'terminate', 'wait' * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobDisableOptions] Additional parameters for the * operation * * @param {number} [options.jobDisableOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobDisableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobDisableOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobDisableOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobDisableOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobDisableOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobDisableOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobDisableOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ disable(jobId: string, disableTasks: string, options?: { jobDisableOptions? : models.JobDisableOptions, customHeaders? : { [headerName: string]: string; } }): Promise; disable(jobId: string, disableTasks: string, callback: ServiceCallback): void; disable(jobId: string, disableTasks: string, options: { jobDisableOptions? : models.JobDisableOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Enables the specified Job, allowing new Tasks to run. * * When you call this API, the Batch service sets a disabled Job to the * enabling state. After the this operation is completed, the Job moves to the * active state, and scheduling of new Tasks under the Job resumes. The Batch * service does not allow a Task to remain in the active state for more than * 180 days. Therefore, if you enable a Job containing active Tasks which were * added more than 180 days ago, those Tasks will not run. * * @param {string} jobId The ID of the Job to enable. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobEnableOptions] Additional parameters for the * operation * * @param {number} [options.jobEnableOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobEnableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobEnableOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobEnableOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobEnableOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobEnableOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobEnableOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobEnableOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ enableWithHttpOperationResponse(jobId: string, options?: { jobEnableOptions? : models.JobEnableOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Enables the specified Job, allowing new Tasks to run. * * When you call this API, the Batch service sets a disabled Job to the * enabling state. After the this operation is completed, the Job moves to the * active state, and scheduling of new Tasks under the Job resumes. The Batch * service does not allow a Task to remain in the active state for more than * 180 days. Therefore, if you enable a Job containing active Tasks which were * added more than 180 days ago, those Tasks will not run. * * @param {string} jobId The ID of the Job to enable. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobEnableOptions] Additional parameters for the * operation * * @param {number} [options.jobEnableOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobEnableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobEnableOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobEnableOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobEnableOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.jobEnableOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobEnableOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobEnableOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ enable(jobId: string, options?: { jobEnableOptions? : models.JobEnableOptions, customHeaders? : { [headerName: string]: string; } }): Promise; enable(jobId: string, callback: ServiceCallback): void; enable(jobId: string, options: { jobEnableOptions? : models.JobEnableOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Terminates the specified Job, marking it as completed. * * When a Terminate Job request is received, the Batch service sets the Job to * the terminating state. The Batch service then terminates any running Tasks * associated with the Job and runs any required Job release Tasks. Then the * Job moves into the completed state. If there are any Tasks in the Job in the * active state, they will remain in the active state. Once a Job is * terminated, new Tasks cannot be added and any remaining active Tasks will * not be scheduled. * * @param {string} jobId The ID of the Job to terminate. * * @param {object} [options] Optional Parameters. * * @param {string} [options.terminateReason] The text you want to appear as the * Job's TerminateReason. The default is 'UserTerminate'. * * @param {object} [options.jobTerminateOptions] Additional parameters for the * operation * * @param {number} [options.jobTerminateOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobTerminateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobTerminateOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobTerminateOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobTerminateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobTerminateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobTerminateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobTerminateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ terminateWithHttpOperationResponse(jobId: string, options?: { terminateReason? : string, jobTerminateOptions? : models.JobTerminateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Terminates the specified Job, marking it as completed. * * When a Terminate Job request is received, the Batch service sets the Job to * the terminating state. The Batch service then terminates any running Tasks * associated with the Job and runs any required Job release Tasks. Then the * Job moves into the completed state. If there are any Tasks in the Job in the * active state, they will remain in the active state. Once a Job is * terminated, new Tasks cannot be added and any remaining active Tasks will * not be scheduled. * * @param {string} jobId The ID of the Job to terminate. * * @param {object} [options] Optional Parameters. * * @param {string} [options.terminateReason] The text you want to appear as the * Job's TerminateReason. The default is 'UserTerminate'. * * @param {object} [options.jobTerminateOptions] Additional parameters for the * operation * * @param {number} [options.jobTerminateOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobTerminateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobTerminateOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobTerminateOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobTerminateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobTerminateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobTerminateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobTerminateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ terminate(jobId: string, options?: { terminateReason? : string, jobTerminateOptions? : models.JobTerminateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; terminate(jobId: string, callback: ServiceCallback): void; terminate(jobId: string, options: { terminateReason? : string, jobTerminateOptions? : models.JobTerminateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Adds a Job to the specified Account. * * The Batch service supports two ways to control the work done as part of a * Job. In the first approach, the user specifies a Job Manager Task. The Batch * service launches this Task when it is ready to start the Job. The Job * Manager Task controls all other Tasks that run under this Job, by using the * Task APIs. In the second approach, the user directly controls the execution * of Tasks under an active Job, by using the Task APIs. Also note: when naming * Jobs, avoid including sensitive information such as user names or secret * project names. This information may appear in telemetry logs accessible to * Microsoft Support engineers. * * @param {object} job The Job to be added. * * @param {string} job.id A string that uniquely identifies the Job 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). * * @param {string} [job.displayName] The display name for the Job. The display * name need not be unique and can contain any Unicode characters up to a * maximum length of 1024. * * @param {number} [job.priority] The priority of the Job. Priority values can * range from -1000 to 1000, with -1000 being the lowest priority and 1000 * being the highest priority. The default value is 0. * * @param {object} [job.constraints] The execution constraints for the Job. * * @param {moment.duration} [job.constraints.maxWallClockTime] The maximum * elapsed time that the Job may run, measured from the time the Job is * created. If the Job does not complete within the time limit, the Batch * service terminates it and any Tasks that are still running. In this case, * the termination reason will be MaxWallClockTimeExpiry. If this property is * not specified, there is no time limit on how long the Job may run. * * @param {number} [job.constraints.maxTaskRetryCount] The maximum number of * times each 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 each Task once, and may then retry up to * this limit. For example, if the maximum retry count is 3, Batch tries a Task * up to 4 times (one initial try and 3 retries). If the maximum retry count is * 0, the Batch service does not retry Tasks. If the maximum retry count is -1, * the Batch service retries Tasks without limit. The default value is 0 (no * retries). * * @param {object} [job.jobManagerTask] Details of a Job Manager Task to be * launched when the Job is started. If the Job does not specify a Job Manager * Task, the user must explicitly add Tasks to the Job. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. The Job Manager Task's typical purpose is * to control and/or monitor Job execution, for example by deciding what * additional Tasks to run, determining when the work is complete, etc. * (However, a Job Manager Task is not restricted to these activities - it is a * fully-fledged Task in the system and perform whatever actions are required * for the Job.) For example, a Job Manager Task might download a file * specified as a parameter, analyze the contents of that file and submit * additional Tasks based on those contents. * * @param {string} job.jobManagerTask.id A string that uniquely identifies the * Job Manager Task within the Job. The ID can contain any combination of * alphanumeric characters including hyphens and underscores and cannot contain * more than 64 characters. * * @param {string} [job.jobManagerTask.displayName] The display name of the Job * Manager Task. It need not be unique and can contain any Unicode characters * up to a maximum length of 1024. * * @param {string} job.jobManagerTask.commandLine The command line of the Job * Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [job.jobManagerTask.containerSettings] The settings for the * container under which the Job Manager Task runs. If the Pool that will run * this Task has containerConfiguration set, this must be set as well. If the * Pool that will run this Task doesn't have containerConfiguration set, this * must not be set. 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. * * @param {array} [job.jobManagerTask.resourceFiles] A list of files that the * Batch service will download to the Compute Node before running the command * line. Files listed under this element are located in the Task's working * directory. 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. * * @param {array} [job.jobManagerTask.outputFiles] A list of files that the * Batch service will upload from the Compute Node after running the command * line. For multi-instance Tasks, the files will only be uploaded from the * Compute Node on which the primary Task is executed. * * @param {array} [job.jobManagerTask.environmentSettings] A list of * environment variable settings for the Job Manager Task. * * @param {object} [job.jobManagerTask.constraints] Constraints that apply to * the Job Manager Task. * * @param {boolean} [job.jobManagerTask.killJobOnCompletion] Whether completion * of the Job Manager Task signifies completion of the entire Job. If true, * when the Job Manager Task completes, the Batch service marks the Job as * complete. If any Tasks are still running at this time (other than Job * Release), those Tasks are terminated. If false, the completion of the Job * Manager Task does not affect the Job status. In this case, you should either * use the onAllTasksComplete attribute to terminate the Job, or have a client * or user terminate the Job explicitly. An example of this is if the Job * Manager creates a set of Tasks but then takes no further role in their * execution. The default value is true. If you are using the * onAllTasksComplete and onTaskFailure attributes to control Job lifetime, and * using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} [job.jobManagerTask.userIdentity] The user identity under * which the Job Manager Task runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {boolean} [job.jobManagerTask.runExclusive] Whether the Job Manager * Task requires exclusive use of the Compute Node where it runs. If true, no * other Tasks will run on the same Node for as long as the Job Manager is * running. If false, other Tasks can run simultaneously with the Job Manager * on a Compute Node. The Job Manager Task counts normally against the Compute * Node's concurrent Task limit, so this is only relevant if the Compute Node * allows multiple concurrent Tasks. The default value is true. * * @param {array} [job.jobManagerTask.applicationPackageReferences] A list of * Application Packages that the Batch service will deploy to the Compute Node * before running the command line. Application Packages are downloaded and * deployed to a shared directory, not the Task working directory. Therefore, * if a referenced Application Package is already on the Compute Node, and is * up to date, then it is not re-downloaded; the existing copy on the Compute * Node is used. If a referenced Application Package cannot be installed, for * example because the package has been deleted or because download failed, the * Task fails. * * @param {object} [job.jobManagerTask.authenticationTokenSettings] The * settings for an authentication token that the Task can use to perform Batch * service operations. If this property is set, the Batch service provides the * Task with an authentication token which can be used to authenticate Batch * service operations without requiring an Account access key. The token is * provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The * operations that the Task can carry out using the token depend on the * settings. For example, a Task can request Job permissions in order to add * other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} [job.jobManagerTask.authenticationTokenSettings.access] The * Batch resources to which the token grants access. The authentication token * grants access to a limited set of Batch service operations. Currently the * only supported value for the access property is 'job', which grants access * to all operations related to the Job which contains the Task. * * @param {boolean} [job.jobManagerTask.allowLowPriorityNode] Whether the Job * Manager Task may run on a low-priority Compute Node. The default value is * true. * * @param {object} [job.jobPreparationTask] The Job Preparation Task. If a Job * has a Job Preparation Task, the Batch service will run the Job Preparation * Task on a Node before starting any Tasks of that Job on that Compute Node. * * @param {string} [job.jobPreparationTask.id] A string that uniquely * identifies the Job Preparation Task within the Job. The ID can contain any * combination of alphanumeric characters including hyphens and underscores and * cannot contain more than 64 characters. If you do not specify this property, * the Batch service assigns a default value of 'jobpreparation'. No other Task * in the Job can have the same ID as the Job Preparation Task. If you try to * submit a Task with the same id, the Batch service rejects the request with * error code TaskIdSameAsJobPreparationTask; if you are calling the REST API * directly, the HTTP status code is 409 (Conflict). * * @param {string} job.jobPreparationTask.commandLine The command line of the * Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [job.jobPreparationTask.containerSettings] The settings for * the container under which the Job Preparation Task 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. * * @param {array} [job.jobPreparationTask.resourceFiles] A list of files that * the Batch service will download to the Compute Node before running the * command line. Files listed under this element are located in the Task's * working directory. 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. * * @param {array} [job.jobPreparationTask.environmentSettings] A list of * environment variable settings for the Job Preparation Task. * * @param {object} [job.jobPreparationTask.constraints] Constraints that apply * to the Job Preparation Task. * * @param {moment.duration} * [job.jobPreparationTask.constraints.maxWallClockTime] The maximum elapsed * time that the Task may run, measured from the time the Task starts. If the * Task does not complete within the time limit, the Batch service terminates * it. If this is not specified, there is no time limit on how long the Task * may run. * * @param {moment.duration} [job.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} [job.jobPreparationTask.constraints.maxTaskRetryCount] 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 for the Task executable due to a nonzero exit code. * 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 after the first attempt. If the * maximum retry count is -1, the Batch service retries the Task without limit. * * @param {boolean} [job.jobPreparationTask.waitForSuccess] Whether the Batch * service should wait for the Job Preparation Task to complete successfully * before scheduling any other Tasks of the Job on the Compute Node. A Job * Preparation Task has completed successfully if it exits with exit code 0. If * true and the Job Preparation Task fails on a Node, the Batch service retries * the Job Preparation Task up to its maximum retry count (as specified in the * constraints element). If the Task has still not completed successfully after * all retries, then the Batch service will not schedule Tasks of the Job to * the Node. The Node remains active and eligible to run Tasks of other Jobs. * If false, the Batch service will not wait for the Job Preparation Task to * complete. In this case, other Tasks of the Job can start executing on the * Compute Node while the Job Preparation Task is still running; and even if * the Job Preparation Task fails, new Tasks will continue to be scheduled on * the Compute Node. The default value is true. * * @param {object} [job.jobPreparationTask.userIdentity] The user identity * under which the Job Preparation Task runs. If omitted, the Task runs as a * non-administrative user unique to the Task on Windows Compute Nodes, or a * non-administrative user unique to the Pool on Linux Compute Nodes. * * @param {boolean} [job.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [job.jobReleaseTask] The Job Release Task. A Job Release * Task cannot be specified without also specifying a Job Preparation Task for * the Job. The Batch service runs the Job Release Task on the Nodes that have * run the Job Preparation Task. The primary purpose of the Job Release Task is * to undo changes to Compute Nodes made by the Job Preparation Task. Example * activities include deleting local files, or shutting down services that were * started as part of Job preparation. * * @param {string} [job.jobReleaseTask.id] A string that uniquely identifies * the Job Release Task within the Job. The ID can contain any combination of * alphanumeric characters including hyphens and underscores and cannot contain * more than 64 characters. If you do not specify this property, the Batch * service assigns a default value of 'jobrelease'. No other Task in the Job * can have the same ID as the Job Release Task. If you try to submit a Task * with the same id, the Batch service rejects the request with error code * TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the * HTTP status code is 409 (Conflict). * * @param {string} job.jobReleaseTask.commandLine The command line of the Job * Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [job.jobReleaseTask.containerSettings] The settings for the * container under which the Job Release Task 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. * * @param {array} [job.jobReleaseTask.resourceFiles] 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. * * @param {array} [job.jobReleaseTask.environmentSettings] A list of * environment variable settings for the Job Release Task. * * @param {moment.duration} [job.jobReleaseTask.maxWallClockTime] The maximum * elapsed time that the Job Release Task may run on a given Compute Node, * measured from the time the Task starts. If the Task does not complete within * the time limit, the Batch service terminates it. The default value is 15 * minutes. You may not specify a timeout longer than 15 minutes. If you do, * the Batch service rejects it with an error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} [job.jobReleaseTask.retentionTime] The minimum time * to retain the Task directory for the Job Release Task on the Compute Node. * After this time, the Batch service may delete the Task directory and all its * contents. The default is 7 days, i.e. the Task directory will be retained * for 7 days unless the Compute Node is removed or the Job is deleted. * * @param {object} [job.jobReleaseTask.userIdentity] The user identity under * which the Job Release Task runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {array} [job.commonEnvironmentSettings] The list of common * environment variable settings. These environment variables are set for all * Tasks in the Job (including the Job Manager, Job Preparation and Job Release * Tasks). Individual Tasks can override an environment setting specified here * by specifying the same setting name with a different value. * * @param {object} job.poolInfo The Pool on which the Batch service runs the * Job's Tasks. * * @param {string} [job.poolInfo.poolId] The ID of an existing Pool. All the * Tasks of the Job will run on the specified Pool. You must ensure that the * Pool referenced by this property exists. If the Pool does not exist at the * time the Batch service tries to schedule a Job, no Tasks for the Job will * run until you create a Pool with that id. Note that the Batch service will * not reject the Job request; it will simply not run Tasks until the Pool * exists. You must specify either the Pool ID or the auto Pool specification, * but not both. * * @param {object} [job.poolInfo.autoPoolSpecification] Characteristics for a * temporary 'auto pool'. The Batch service will create this auto Pool when the * Job is submitted. If auto Pool creation fails, the Batch service moves the * Job to a completed state, and the Pool creation error is set in the Job's * scheduling error property. The Batch service manages the lifetime (both * creation and, unless keepAlive is specified, deletion) of the auto Pool. Any * user actions that affect the lifetime of the auto Pool while the Job is * active will result in unexpected behavior. You must specify either the Pool * ID or the auto Pool specification, but not both. * * @param {string} [job.poolInfo.autoPoolSpecification.autoPoolIdPrefix] A * prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} job.poolInfo.autoPoolSpecification.poolLifetimeOption The * minimum lifetime of created auto Pools, and how multiple Jobs on a schedule * are assigned to Pools. Possible values include: 'jobSchedule', 'job' * * @param {boolean} [job.poolInfo.autoPoolSpecification.keepAlive] Whether to * keep an auto Pool alive after its lifetime expires. If false, the Batch * service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} [job.poolInfo.autoPoolSpecification.pool] The Pool * specification for the auto Pool. * * @param {string} [job.poolInfo.autoPoolSpecification.pool.displayName] The * display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} job.poolInfo.autoPoolSpecification.pool.vmSize The size of * the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] The * cloud service configuration for the Pool. This property must be specified if * the Pool needs to be created with Azure PaaS VMs. This property and * virtualMachineConfiguration are mutually exclusive and one of the properties * must be specified. If neither is specified then the Batch service returns an * error; if you are calling the REST API directly, the HTTP status code is 400 * (Bad Request). This property cannot be specified if the Batch Account was * created with its poolAllocationMode property set to 'UserSubscription'. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] The * virtual machine configuration for the Pool. This property must be specified * if the Pool needs to be created with Azure IaaS VMs. This property and * cloudServiceConfiguration are mutually exclusive and one of the properties * must be specified. If neither is specified then the Batch service returns an * error; if you are calling the REST API directly, the HTTP status code is 400 * (Bad Request). * * @param {object} * job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} [job.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] How Tasks are * distributed across Compute Nodes in a Pool. If not specified, the default is * spread. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [job.poolInfo.autoPoolSpecification.pool.resizeTimeout] The timeout for * allocation of Compute Nodes to the Pool. This timeout applies only to manual * scaling; it has no effect when enableAutoScale is set to true. The default * value is 15 minutes. The minimum value is 5 minutes. If you specify a value * less than 5 minutes, the Batch service rejects the request with an error; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {number} * [job.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] The desired * number of dedicated Compute Nodes in the Pool. This property must not be * specified if enableAutoScale is set to true. If enableAutoScale is set to * false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [job.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] The desired * number of low-priority Compute Nodes in the Pool. This property must not be * specified if enableAutoScale is set to true. If enableAutoScale is set to * false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} [job.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} [job.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [job.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] The * time interval at which to automatically adjust the Pool size according to * the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [job.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration] The network * configuration for the Pool. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] The * ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * job.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} [job.poolInfo.autoPoolSpecification.pool.startTask] A Task * to run on each Compute Node as it joins the Pool. The Task runs when the * Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] 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. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] 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. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] A * list of environment variable settings for the StartTask. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] The user * identity under which the StartTask runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [job.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] 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. * * @param {boolean} * [job.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] 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. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.certificateReferences] A list of * Certificates to be installed on each Compute Node in the Pool. For Windows * Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] 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. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.userAccounts] The * list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.metadata] A list of * name-value pairs associated with the Pool as metadata. The Batch service * does not assign any meaning to metadata; it is solely for the use of user * code. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {string} [job.onAllTasksComplete] The action the Batch service should * take when all Tasks in the Job are in the completed state. Note that if a * Job contains no Tasks, then all Tasks are considered complete. This option * is therefore most commonly used with a Job Manager task; if you want to use * automatic Job termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [job.onTaskFailure] The action the Batch service should take * when any Task in the Job fails. A Task is considered to have failed if has a * failureInfo. A failureInfo is set if the Task completes with a non-zero exit * code after exhausting its retry count, or if there was an error starting the * Task, for example due to a resource file download error. The default is * noaction. Possible values include: 'noAction', 'performExitOptionsJobAction' * * @param {array} [job.metadata] A list of name-value pairs associated with the * Job as metadata. The Batch service does not assign any meaning to metadata; * it is solely for the use of user code. * * @param {boolean} [job.usesTaskDependencies] Whether Tasks in the Job can * define dependencies on each other. The default is false. * * @param {object} [job.networkConfiguration] The network configuration for the * Job. * * @param {string} job.networkConfiguration.subnetId The ARM resource * identifier of the virtual network subnet which Compute Nodes running Tasks * from the Job will join for the duration of the Task. This will only work * with a VirtualMachineConfiguration Pool. The virtual network must be in the * same region and subscription as the Azure Batch Account. The specified * subnet should have enough free IP addresses to accommodate the number of * Compute Nodes which will run Tasks from the Job. This can be up to the * number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service * principal must have the 'Classic Virtual Machine Contributor' Role-Based * Access Control (RBAC) role for the specified VNet so that Azure Batch * service can schedule Tasks on the Nodes. This can be verified by checking if * the specified VNet has any associated Network Security Groups (NSG). If * communication to the Nodes in the specified subnet is denied by an NSG, then * the Batch service will set the state of the Compute Nodes to unusable. This * is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobAddOptions] Additional parameters for the * operation * * @param {number} [options.jobAddOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobAddOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobAddOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobAddOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addWithHttpOperationResponse(job: models.JobAddParameter, options?: { jobAddOptions? : models.JobAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a Job to the specified Account. * * The Batch service supports two ways to control the work done as part of a * Job. In the first approach, the user specifies a Job Manager Task. The Batch * service launches this Task when it is ready to start the Job. The Job * Manager Task controls all other Tasks that run under this Job, by using the * Task APIs. In the second approach, the user directly controls the execution * of Tasks under an active Job, by using the Task APIs. Also note: when naming * Jobs, avoid including sensitive information such as user names or secret * project names. This information may appear in telemetry logs accessible to * Microsoft Support engineers. * * @param {object} job The Job to be added. * * @param {string} job.id A string that uniquely identifies the Job 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). * * @param {string} [job.displayName] The display name for the Job. The display * name need not be unique and can contain any Unicode characters up to a * maximum length of 1024. * * @param {number} [job.priority] The priority of the Job. Priority values can * range from -1000 to 1000, with -1000 being the lowest priority and 1000 * being the highest priority. The default value is 0. * * @param {object} [job.constraints] The execution constraints for the Job. * * @param {moment.duration} [job.constraints.maxWallClockTime] The maximum * elapsed time that the Job may run, measured from the time the Job is * created. If the Job does not complete within the time limit, the Batch * service terminates it and any Tasks that are still running. In this case, * the termination reason will be MaxWallClockTimeExpiry. If this property is * not specified, there is no time limit on how long the Job may run. * * @param {number} [job.constraints.maxTaskRetryCount] The maximum number of * times each 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 each Task once, and may then retry up to * this limit. For example, if the maximum retry count is 3, Batch tries a Task * up to 4 times (one initial try and 3 retries). If the maximum retry count is * 0, the Batch service does not retry Tasks. If the maximum retry count is -1, * the Batch service retries Tasks without limit. The default value is 0 (no * retries). * * @param {object} [job.jobManagerTask] Details of a Job Manager Task to be * launched when the Job is started. If the Job does not specify a Job Manager * Task, the user must explicitly add Tasks to the Job. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. The Job Manager Task's typical purpose is * to control and/or monitor Job execution, for example by deciding what * additional Tasks to run, determining when the work is complete, etc. * (However, a Job Manager Task is not restricted to these activities - it is a * fully-fledged Task in the system and perform whatever actions are required * for the Job.) For example, a Job Manager Task might download a file * specified as a parameter, analyze the contents of that file and submit * additional Tasks based on those contents. * * @param {string} job.jobManagerTask.id A string that uniquely identifies the * Job Manager Task within the Job. The ID can contain any combination of * alphanumeric characters including hyphens and underscores and cannot contain * more than 64 characters. * * @param {string} [job.jobManagerTask.displayName] The display name of the Job * Manager Task. It need not be unique and can contain any Unicode characters * up to a maximum length of 1024. * * @param {string} job.jobManagerTask.commandLine The command line of the Job * Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [job.jobManagerTask.containerSettings] The settings for the * container under which the Job Manager Task runs. If the Pool that will run * this Task has containerConfiguration set, this must be set as well. If the * Pool that will run this Task doesn't have containerConfiguration set, this * must not be set. 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. * * @param {array} [job.jobManagerTask.resourceFiles] A list of files that the * Batch service will download to the Compute Node before running the command * line. Files listed under this element are located in the Task's working * directory. 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. * * @param {array} [job.jobManagerTask.outputFiles] A list of files that the * Batch service will upload from the Compute Node after running the command * line. For multi-instance Tasks, the files will only be uploaded from the * Compute Node on which the primary Task is executed. * * @param {array} [job.jobManagerTask.environmentSettings] A list of * environment variable settings for the Job Manager Task. * * @param {object} [job.jobManagerTask.constraints] Constraints that apply to * the Job Manager Task. * * @param {boolean} [job.jobManagerTask.killJobOnCompletion] Whether completion * of the Job Manager Task signifies completion of the entire Job. If true, * when the Job Manager Task completes, the Batch service marks the Job as * complete. If any Tasks are still running at this time (other than Job * Release), those Tasks are terminated. If false, the completion of the Job * Manager Task does not affect the Job status. In this case, you should either * use the onAllTasksComplete attribute to terminate the Job, or have a client * or user terminate the Job explicitly. An example of this is if the Job * Manager creates a set of Tasks but then takes no further role in their * execution. The default value is true. If you are using the * onAllTasksComplete and onTaskFailure attributes to control Job lifetime, and * using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} [job.jobManagerTask.userIdentity] The user identity under * which the Job Manager Task runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {boolean} [job.jobManagerTask.runExclusive] Whether the Job Manager * Task requires exclusive use of the Compute Node where it runs. If true, no * other Tasks will run on the same Node for as long as the Job Manager is * running. If false, other Tasks can run simultaneously with the Job Manager * on a Compute Node. The Job Manager Task counts normally against the Compute * Node's concurrent Task limit, so this is only relevant if the Compute Node * allows multiple concurrent Tasks. The default value is true. * * @param {array} [job.jobManagerTask.applicationPackageReferences] A list of * Application Packages that the Batch service will deploy to the Compute Node * before running the command line. Application Packages are downloaded and * deployed to a shared directory, not the Task working directory. Therefore, * if a referenced Application Package is already on the Compute Node, and is * up to date, then it is not re-downloaded; the existing copy on the Compute * Node is used. If a referenced Application Package cannot be installed, for * example because the package has been deleted or because download failed, the * Task fails. * * @param {object} [job.jobManagerTask.authenticationTokenSettings] The * settings for an authentication token that the Task can use to perform Batch * service operations. If this property is set, the Batch service provides the * Task with an authentication token which can be used to authenticate Batch * service operations without requiring an Account access key. The token is * provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The * operations that the Task can carry out using the token depend on the * settings. For example, a Task can request Job permissions in order to add * other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} [job.jobManagerTask.authenticationTokenSettings.access] The * Batch resources to which the token grants access. The authentication token * grants access to a limited set of Batch service operations. Currently the * only supported value for the access property is 'job', which grants access * to all operations related to the Job which contains the Task. * * @param {boolean} [job.jobManagerTask.allowLowPriorityNode] Whether the Job * Manager Task may run on a low-priority Compute Node. The default value is * true. * * @param {object} [job.jobPreparationTask] The Job Preparation Task. If a Job * has a Job Preparation Task, the Batch service will run the Job Preparation * Task on a Node before starting any Tasks of that Job on that Compute Node. * * @param {string} [job.jobPreparationTask.id] A string that uniquely * identifies the Job Preparation Task within the Job. The ID can contain any * combination of alphanumeric characters including hyphens and underscores and * cannot contain more than 64 characters. If you do not specify this property, * the Batch service assigns a default value of 'jobpreparation'. No other Task * in the Job can have the same ID as the Job Preparation Task. If you try to * submit a Task with the same id, the Batch service rejects the request with * error code TaskIdSameAsJobPreparationTask; if you are calling the REST API * directly, the HTTP status code is 409 (Conflict). * * @param {string} job.jobPreparationTask.commandLine The command line of the * Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [job.jobPreparationTask.containerSettings] The settings for * the container under which the Job Preparation Task 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. * * @param {array} [job.jobPreparationTask.resourceFiles] A list of files that * the Batch service will download to the Compute Node before running the * command line. Files listed under this element are located in the Task's * working directory. 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. * * @param {array} [job.jobPreparationTask.environmentSettings] A list of * environment variable settings for the Job Preparation Task. * * @param {object} [job.jobPreparationTask.constraints] Constraints that apply * to the Job Preparation Task. * * @param {moment.duration} * [job.jobPreparationTask.constraints.maxWallClockTime] The maximum elapsed * time that the Task may run, measured from the time the Task starts. If the * Task does not complete within the time limit, the Batch service terminates * it. If this is not specified, there is no time limit on how long the Task * may run. * * @param {moment.duration} [job.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} [job.jobPreparationTask.constraints.maxTaskRetryCount] 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 for the Task executable due to a nonzero exit code. * 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 after the first attempt. If the * maximum retry count is -1, the Batch service retries the Task without limit. * * @param {boolean} [job.jobPreparationTask.waitForSuccess] Whether the Batch * service should wait for the Job Preparation Task to complete successfully * before scheduling any other Tasks of the Job on the Compute Node. A Job * Preparation Task has completed successfully if it exits with exit code 0. If * true and the Job Preparation Task fails on a Node, the Batch service retries * the Job Preparation Task up to its maximum retry count (as specified in the * constraints element). If the Task has still not completed successfully after * all retries, then the Batch service will not schedule Tasks of the Job to * the Node. The Node remains active and eligible to run Tasks of other Jobs. * If false, the Batch service will not wait for the Job Preparation Task to * complete. In this case, other Tasks of the Job can start executing on the * Compute Node while the Job Preparation Task is still running; and even if * the Job Preparation Task fails, new Tasks will continue to be scheduled on * the Compute Node. The default value is true. * * @param {object} [job.jobPreparationTask.userIdentity] The user identity * under which the Job Preparation Task runs. If omitted, the Task runs as a * non-administrative user unique to the Task on Windows Compute Nodes, or a * non-administrative user unique to the Pool on Linux Compute Nodes. * * @param {boolean} [job.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [job.jobReleaseTask] The Job Release Task. A Job Release * Task cannot be specified without also specifying a Job Preparation Task for * the Job. The Batch service runs the Job Release Task on the Nodes that have * run the Job Preparation Task. The primary purpose of the Job Release Task is * to undo changes to Compute Nodes made by the Job Preparation Task. Example * activities include deleting local files, or shutting down services that were * started as part of Job preparation. * * @param {string} [job.jobReleaseTask.id] A string that uniquely identifies * the Job Release Task within the Job. The ID can contain any combination of * alphanumeric characters including hyphens and underscores and cannot contain * more than 64 characters. If you do not specify this property, the Batch * service assigns a default value of 'jobrelease'. No other Task in the Job * can have the same ID as the Job Release Task. If you try to submit a Task * with the same id, the Batch service rejects the request with error code * TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the * HTTP status code is 409 (Conflict). * * @param {string} job.jobReleaseTask.commandLine The command line of the Job * Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [job.jobReleaseTask.containerSettings] The settings for the * container under which the Job Release Task 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. * * @param {array} [job.jobReleaseTask.resourceFiles] 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. * * @param {array} [job.jobReleaseTask.environmentSettings] A list of * environment variable settings for the Job Release Task. * * @param {moment.duration} [job.jobReleaseTask.maxWallClockTime] The maximum * elapsed time that the Job Release Task may run on a given Compute Node, * measured from the time the Task starts. If the Task does not complete within * the time limit, the Batch service terminates it. The default value is 15 * minutes. You may not specify a timeout longer than 15 minutes. If you do, * the Batch service rejects it with an error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} [job.jobReleaseTask.retentionTime] The minimum time * to retain the Task directory for the Job Release Task on the Compute Node. * After this time, the Batch service may delete the Task directory and all its * contents. The default is 7 days, i.e. the Task directory will be retained * for 7 days unless the Compute Node is removed or the Job is deleted. * * @param {object} [job.jobReleaseTask.userIdentity] The user identity under * which the Job Release Task runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {array} [job.commonEnvironmentSettings] The list of common * environment variable settings. These environment variables are set for all * Tasks in the Job (including the Job Manager, Job Preparation and Job Release * Tasks). Individual Tasks can override an environment setting specified here * by specifying the same setting name with a different value. * * @param {object} job.poolInfo The Pool on which the Batch service runs the * Job's Tasks. * * @param {string} [job.poolInfo.poolId] The ID of an existing Pool. All the * Tasks of the Job will run on the specified Pool. You must ensure that the * Pool referenced by this property exists. If the Pool does not exist at the * time the Batch service tries to schedule a Job, no Tasks for the Job will * run until you create a Pool with that id. Note that the Batch service will * not reject the Job request; it will simply not run Tasks until the Pool * exists. You must specify either the Pool ID or the auto Pool specification, * but not both. * * @param {object} [job.poolInfo.autoPoolSpecification] Characteristics for a * temporary 'auto pool'. The Batch service will create this auto Pool when the * Job is submitted. If auto Pool creation fails, the Batch service moves the * Job to a completed state, and the Pool creation error is set in the Job's * scheduling error property. The Batch service manages the lifetime (both * creation and, unless keepAlive is specified, deletion) of the auto Pool. Any * user actions that affect the lifetime of the auto Pool while the Job is * active will result in unexpected behavior. You must specify either the Pool * ID or the auto Pool specification, but not both. * * @param {string} [job.poolInfo.autoPoolSpecification.autoPoolIdPrefix] A * prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} job.poolInfo.autoPoolSpecification.poolLifetimeOption The * minimum lifetime of created auto Pools, and how multiple Jobs on a schedule * are assigned to Pools. Possible values include: 'jobSchedule', 'job' * * @param {boolean} [job.poolInfo.autoPoolSpecification.keepAlive] Whether to * keep an auto Pool alive after its lifetime expires. If false, the Batch * service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} [job.poolInfo.autoPoolSpecification.pool] The Pool * specification for the auto Pool. * * @param {string} [job.poolInfo.autoPoolSpecification.pool.displayName] The * display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} job.poolInfo.autoPoolSpecification.pool.vmSize The size of * the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] The * cloud service configuration for the Pool. This property must be specified if * the Pool needs to be created with Azure PaaS VMs. This property and * virtualMachineConfiguration are mutually exclusive and one of the properties * must be specified. If neither is specified then the Batch service returns an * error; if you are calling the REST API directly, the HTTP status code is 400 * (Bad Request). This property cannot be specified if the Batch Account was * created with its poolAllocationMode property set to 'UserSubscription'. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] The * virtual machine configuration for the Pool. This property must be specified * if the Pool needs to be created with Azure IaaS VMs. This property and * cloudServiceConfiguration are mutually exclusive and one of the properties * must be specified. If neither is specified then the Batch service returns an * error; if you are calling the REST API directly, the HTTP status code is 400 * (Bad Request). * * @param {object} * job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} [job.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] How Tasks are * distributed across Compute Nodes in a Pool. If not specified, the default is * spread. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [job.poolInfo.autoPoolSpecification.pool.resizeTimeout] The timeout for * allocation of Compute Nodes to the Pool. This timeout applies only to manual * scaling; it has no effect when enableAutoScale is set to true. The default * value is 15 minutes. The minimum value is 5 minutes. If you specify a value * less than 5 minutes, the Batch service rejects the request with an error; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {number} * [job.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] The desired * number of dedicated Compute Nodes in the Pool. This property must not be * specified if enableAutoScale is set to true. If enableAutoScale is set to * false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [job.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] The desired * number of low-priority Compute Nodes in the Pool. This property must not be * specified if enableAutoScale is set to true. If enableAutoScale is set to * false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} [job.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} [job.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [job.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] The * time interval at which to automatically adjust the Pool size according to * the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [job.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration] The network * configuration for the Pool. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] The * ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * job.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} [job.poolInfo.autoPoolSpecification.pool.startTask] A Task * to run on each Compute Node as it joins the Pool. The Task runs when the * Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.commandLine 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] 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. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] 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. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] A * list of environment variable settings for the StartTask. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] The user * identity under which the StartTask runs. If omitted, the Task runs as a * non-administrative user unique to the Task. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [job.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [job.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] 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. * * @param {boolean} * [job.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] 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. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.certificateReferences] A list of * Certificates to be installed on each Compute Node in the Pool. For Windows * Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [job.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] 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. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.userAccounts] The * list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.metadata] A list of * name-value pairs associated with the Pool as metadata. The Batch service * does not assign any meaning to metadata; it is solely for the use of user * code. * * @param {array} [job.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {string} [job.onAllTasksComplete] The action the Batch service should * take when all Tasks in the Job are in the completed state. Note that if a * Job contains no Tasks, then all Tasks are considered complete. This option * is therefore most commonly used with a Job Manager task; if you want to use * automatic Job termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [job.onTaskFailure] The action the Batch service should take * when any Task in the Job fails. A Task is considered to have failed if has a * failureInfo. A failureInfo is set if the Task completes with a non-zero exit * code after exhausting its retry count, or if there was an error starting the * Task, for example due to a resource file download error. The default is * noaction. Possible values include: 'noAction', 'performExitOptionsJobAction' * * @param {array} [job.metadata] A list of name-value pairs associated with the * Job as metadata. The Batch service does not assign any meaning to metadata; * it is solely for the use of user code. * * @param {boolean} [job.usesTaskDependencies] Whether Tasks in the Job can * define dependencies on each other. The default is false. * * @param {object} [job.networkConfiguration] The network configuration for the * Job. * * @param {string} job.networkConfiguration.subnetId The ARM resource * identifier of the virtual network subnet which Compute Nodes running Tasks * from the Job will join for the duration of the Task. This will only work * with a VirtualMachineConfiguration Pool. The virtual network must be in the * same region and subscription as the Azure Batch Account. The specified * subnet should have enough free IP addresses to accommodate the number of * Compute Nodes which will run Tasks from the Job. This can be up to the * number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service * principal must have the 'Classic Virtual Machine Contributor' Role-Based * Access Control (RBAC) role for the specified VNet so that Azure Batch * service can schedule Tasks on the Nodes. This can be verified by checking if * the specified VNet has any associated Network Security Groups (NSG). If * communication to the Nodes in the specified subnet is denied by an NSG, then * the Batch service will set the state of the Compute Nodes to unusable. This * is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobAddOptions] Additional parameters for the * operation * * @param {number} [options.jobAddOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobAddOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobAddOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobAddOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ add(job: models.JobAddParameter, options?: { jobAddOptions? : models.JobAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise; add(job: models.JobAddParameter, callback: ServiceCallback): void; add(job: models.JobAddParameter, options: { jobAddOptions? : models.JobAddOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Jobs in the specified Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListOptions] Additional parameters for the * operation * * @param {string} [options.jobListOptions.filter] An OData $filter clause. For * more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. * * @param {string} [options.jobListOptions.select] An OData $select clause. * * @param {string} [options.jobListOptions.expand] An OData $expand clause. * * @param {number} [options.jobListOptions.maxResults] The maximum number of * items to return in the response. A maximum of 1000 Jobs can be returned. * * @param {number} [options.jobListOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobListOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobListOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobListOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(options?: { jobListOptions? : models.JobListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Jobs in the specified Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListOptions] Additional parameters for the * operation * * @param {string} [options.jobListOptions.filter] An OData $filter clause. For * more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. * * @param {string} [options.jobListOptions.select] An OData $select clause. * * @param {string} [options.jobListOptions.expand] An OData $expand clause. * * @param {number} [options.jobListOptions.maxResults] The maximum number of * items to return in the response. A maximum of 1000 Jobs can be returned. * * @param {number} [options.jobListOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.jobListOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobListOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobListOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(options?: { jobListOptions? : models.JobListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(callback: ServiceCallback): void; list(options: { jobListOptions? : models.JobListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the Jobs that have been created under the specified Job * Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule from which you want * to get a list of Jobs. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListFromJobScheduleOptions] Additional * parameters for the operation * * @param {string} [options.jobListFromJobScheduleOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. * * @param {string} [options.jobListFromJobScheduleOptions.select] An OData * $select clause. * * @param {string} [options.jobListFromJobScheduleOptions.expand] An OData * $expand clause. * * @param {number} [options.jobListFromJobScheduleOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 Jobs * can be returned. * * @param {number} [options.jobListFromJobScheduleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.jobListFromJobScheduleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListFromJobScheduleOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobListFromJobScheduleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listFromJobScheduleWithHttpOperationResponse(jobScheduleId: string, options?: { jobListFromJobScheduleOptions? : models.JobListFromJobScheduleOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the Jobs that have been created under the specified Job * Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule from which you want * to get a list of Jobs. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListFromJobScheduleOptions] Additional * parameters for the operation * * @param {string} [options.jobListFromJobScheduleOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. * * @param {string} [options.jobListFromJobScheduleOptions.select] An OData * $select clause. * * @param {string} [options.jobListFromJobScheduleOptions.expand] An OData * $expand clause. * * @param {number} [options.jobListFromJobScheduleOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 Jobs * can be returned. * * @param {number} [options.jobListFromJobScheduleOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.jobListFromJobScheduleOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListFromJobScheduleOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobListFromJobScheduleOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listFromJobSchedule(jobScheduleId: string, options?: { jobListFromJobScheduleOptions? : models.JobListFromJobScheduleOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listFromJobSchedule(jobScheduleId: string, callback: ServiceCallback): void; listFromJobSchedule(jobScheduleId: string, options: { jobListFromJobScheduleOptions? : models.JobListFromJobScheduleOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the execution status of the Job Preparation and Job Release * Task for the specified Job across the Compute Nodes where the Job has run. * * This API returns the Job Preparation and Job Release Task status on all * Compute Nodes that have run the Job Preparation or Job Release Task. This * includes Compute Nodes which have since been removed from the Pool. If this * API is invoked on a Job which has no Job Preparation or Job Release Task, * the Batch service returns HTTP status code 409 (Conflict) with an error code * of JobPreparationTaskNotSpecified. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListPreparationAndReleaseTaskStatusOptions] * Additional parameters for the operation * * @param {string} * [options.jobListPreparationAndReleaseTaskStatusOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. * * @param {string} * [options.jobListPreparationAndReleaseTaskStatusOptions.select] An OData * $select clause. * * @param {number} * [options.jobListPreparationAndReleaseTaskStatusOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 Tasks * can be returned. * * @param {number} * [options.jobListPreparationAndReleaseTaskStatusOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} * [options.jobListPreparationAndReleaseTaskStatusOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListPreparationAndReleaseTaskStatusOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} * [options.jobListPreparationAndReleaseTaskStatusOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listPreparationAndReleaseTaskStatusWithHttpOperationResponse(jobId: string, options?: { jobListPreparationAndReleaseTaskStatusOptions? : models.JobListPreparationAndReleaseTaskStatusOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the execution status of the Job Preparation and Job Release * Task for the specified Job across the Compute Nodes where the Job has run. * * This API returns the Job Preparation and Job Release Task status on all * Compute Nodes that have run the Job Preparation or Job Release Task. This * includes Compute Nodes which have since been removed from the Pool. If this * API is invoked on a Job which has no Job Preparation or Job Release Task, * the Batch service returns HTTP status code 409 (Conflict) with an error code * of JobPreparationTaskNotSpecified. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListPreparationAndReleaseTaskStatusOptions] * Additional parameters for the operation * * @param {string} * [options.jobListPreparationAndReleaseTaskStatusOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. * * @param {string} * [options.jobListPreparationAndReleaseTaskStatusOptions.select] An OData * $select clause. * * @param {number} * [options.jobListPreparationAndReleaseTaskStatusOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 Tasks * can be returned. * * @param {number} * [options.jobListPreparationAndReleaseTaskStatusOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} * [options.jobListPreparationAndReleaseTaskStatusOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListPreparationAndReleaseTaskStatusOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} * [options.jobListPreparationAndReleaseTaskStatusOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobListPreparationAndReleaseTaskStatusResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobListPreparationAndReleaseTaskStatusResult} [result] - The deserialized result object if an error did not occur. * See {@link * CloudJobListPreparationAndReleaseTaskStatusResult} for * more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listPreparationAndReleaseTaskStatus(jobId: string, options?: { jobListPreparationAndReleaseTaskStatusOptions? : models.JobListPreparationAndReleaseTaskStatusOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listPreparationAndReleaseTaskStatus(jobId: string, callback: ServiceCallback): void; listPreparationAndReleaseTaskStatus(jobId: string, options: { jobListPreparationAndReleaseTaskStatusOptions? : models.JobListPreparationAndReleaseTaskStatusOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets the Task counts for the specified Job. * * Task counts provide a count of the Tasks by active, running or completed * Task state, and a count of Tasks which succeeded or failed. Tasks in the * preparing state are counted as running. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobGetTaskCountsOptions] Additional parameters for * the operation * * @param {number} [options.jobGetTaskCountsOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobGetTaskCountsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobGetTaskCountsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobGetTaskCountsOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getTaskCountsWithHttpOperationResponse(jobId: string, options?: { jobGetTaskCountsOptions? : models.JobGetTaskCountsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets the Task counts for the specified Job. * * Task counts provide a count of the Tasks by active, running or completed * Task state, and a count of Tasks which succeeded or failed. Tasks in the * preparing state are counted as running. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobGetTaskCountsOptions] Additional parameters for * the operation * * @param {number} [options.jobGetTaskCountsOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobGetTaskCountsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobGetTaskCountsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobGetTaskCountsOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {TaskCounts} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {TaskCounts} [result] - The deserialized result object if an error did not occur. * See {@link TaskCounts} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getTaskCounts(jobId: string, options?: { jobGetTaskCountsOptions? : models.JobGetTaskCountsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getTaskCounts(jobId: string, callback: ServiceCallback): void; getTaskCounts(jobId: string, options: { jobGetTaskCountsOptions? : models.JobGetTaskCountsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Jobs in the specified Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListNextOptions] Additional parameters for the * operation * * @param {uuid} [options.jobListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobListNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobListNextOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { jobListNextOptions? : models.JobListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Jobs in the specified Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListNextOptions] Additional parameters for the * operation * * @param {uuid} [options.jobListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobListNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobListNextOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { jobListNextOptions? : models.JobListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { jobListNextOptions? : models.JobListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the Jobs that have been created under the specified Job * Schedule. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListFromJobScheduleNextOptions] Additional * parameters for the operation * * @param {uuid} [options.jobListFromJobScheduleNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListFromJobScheduleNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobListFromJobScheduleNextOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listFromJobScheduleNextWithHttpOperationResponse(nextPageLink: string, options?: { jobListFromJobScheduleNextOptions? : models.JobListFromJobScheduleNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the Jobs that have been created under the specified Job * Schedule. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListFromJobScheduleNextOptions] Additional * parameters for the operation * * @param {uuid} [options.jobListFromJobScheduleNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListFromJobScheduleNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.jobListFromJobScheduleNextOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listFromJobScheduleNext(nextPageLink: string, options?: { jobListFromJobScheduleNextOptions? : models.JobListFromJobScheduleNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listFromJobScheduleNext(nextPageLink: string, callback: ServiceCallback): void; listFromJobScheduleNext(nextPageLink: string, options: { jobListFromJobScheduleNextOptions? : models.JobListFromJobScheduleNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the execution status of the Job Preparation and Job Release * Task for the specified Job across the Compute Nodes where the Job has run. * * This API returns the Job Preparation and Job Release Task status on all * Compute Nodes that have run the Job Preparation or Job Release Task. This * includes Compute Nodes which have since been removed from the Pool. If this * API is invoked on a Job which has no Job Preparation or Job Release Task, * the Batch service returns HTTP status code 409 (Conflict) with an error code * of JobPreparationTaskNotSpecified. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListPreparationAndReleaseTaskStatusNextOptions] * Additional parameters for the operation * * @param {uuid} * [options.jobListPreparationAndReleaseTaskStatusNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListPreparationAndReleaseTaskStatusNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} * [options.jobListPreparationAndReleaseTaskStatusNextOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listPreparationAndReleaseTaskStatusNextWithHttpOperationResponse(nextPageLink: string, options?: { jobListPreparationAndReleaseTaskStatusNextOptions? : models.JobListPreparationAndReleaseTaskStatusNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the execution status of the Job Preparation and Job Release * Task for the specified Job across the Compute Nodes where the Job has run. * * This API returns the Job Preparation and Job Release Task status on all * Compute Nodes that have run the Job Preparation or Job Release Task. This * includes Compute Nodes which have since been removed from the Pool. If this * API is invoked on a Job which has no Job Preparation or Job Release Task, * the Batch service returns HTTP status code 409 (Conflict) with an error code * of JobPreparationTaskNotSpecified. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobListPreparationAndReleaseTaskStatusNextOptions] * Additional parameters for the operation * * @param {uuid} * [options.jobListPreparationAndReleaseTaskStatusNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobListPreparationAndReleaseTaskStatusNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} * [options.jobListPreparationAndReleaseTaskStatusNextOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobListPreparationAndReleaseTaskStatusResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobListPreparationAndReleaseTaskStatusResult} [result] - The deserialized result object if an error did not occur. * See {@link * CloudJobListPreparationAndReleaseTaskStatusResult} for * more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listPreparationAndReleaseTaskStatusNext(nextPageLink: string, options?: { jobListPreparationAndReleaseTaskStatusNextOptions? : models.JobListPreparationAndReleaseTaskStatusNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listPreparationAndReleaseTaskStatusNext(nextPageLink: string, callback: ServiceCallback): void; listPreparationAndReleaseTaskStatusNext(nextPageLink: string, options: { jobListPreparationAndReleaseTaskStatusNextOptions? : models.JobListPreparationAndReleaseTaskStatusNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * CertificateOperations * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface CertificateOperations { /** * @summary Adds a Certificate to the specified Account. * * @param {object} certificate The Certificate to be added. * * @param {string} certificate.thumbprint The X.509 thumbprint of the * Certificate. This is a sequence of up to 40 hex digits (it may include * spaces but these are removed). * * @param {string} certificate.thumbprintAlgorithm The algorithm used to derive * the thumbprint. This must be sha1. * * @param {string} certificate.data The base64-encoded contents of the * Certificate. The maximum size is 10KB. * * @param {string} [certificate.certificateFormat] The format of the * Certificate data. Possible values include: 'pfx', 'cer' * * @param {string} [certificate.password] The password to access the * Certificate's private key. This must be omitted if the Certificate format is * cer. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateAddOptions] Additional parameters for * the operation * * @param {number} [options.certificateAddOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.certificateAddOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateAddOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateAddOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addWithHttpOperationResponse(certificate: models.CertificateAddParameter, options?: { certificateAddOptions? : models.CertificateAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a Certificate to the specified Account. * * @param {object} certificate The Certificate to be added. * * @param {string} certificate.thumbprint The X.509 thumbprint of the * Certificate. This is a sequence of up to 40 hex digits (it may include * spaces but these are removed). * * @param {string} certificate.thumbprintAlgorithm The algorithm used to derive * the thumbprint. This must be sha1. * * @param {string} certificate.data The base64-encoded contents of the * Certificate. The maximum size is 10KB. * * @param {string} [certificate.certificateFormat] The format of the * Certificate data. Possible values include: 'pfx', 'cer' * * @param {string} [certificate.password] The password to access the * Certificate's private key. This must be omitted if the Certificate format is * cer. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateAddOptions] Additional parameters for * the operation * * @param {number} [options.certificateAddOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.certificateAddOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateAddOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateAddOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ add(certificate: models.CertificateAddParameter, options?: { certificateAddOptions? : models.CertificateAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise; add(certificate: models.CertificateAddParameter, callback: ServiceCallback): void; add(certificate: models.CertificateAddParameter, options: { certificateAddOptions? : models.CertificateAddOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Certificates that have been added to the specified * Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateListOptions] Additional parameters for * the operation * * @param {string} [options.certificateListOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates. * * @param {string} [options.certificateListOptions.select] An OData $select * clause. * * @param {number} [options.certificateListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 Certificates * can be returned. * * @param {number} [options.certificateListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.certificateListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(options?: { certificateListOptions? : models.CertificateListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Certificates that have been added to the specified * Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateListOptions] Additional parameters for * the operation * * @param {string} [options.certificateListOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-certificates. * * @param {string} [options.certificateListOptions.select] An OData $select * clause. * * @param {number} [options.certificateListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 Certificates * can be returned. * * @param {number} [options.certificateListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.certificateListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CertificateListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CertificateListResult} [result] - The deserialized result object if an error did not occur. * See {@link CertificateListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(options?: { certificateListOptions? : models.CertificateListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(callback: ServiceCallback): void; list(options: { certificateListOptions? : models.CertificateListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Cancels a failed deletion of a Certificate from the specified * Account. * * If you try to delete a Certificate that is being used by a Pool or Compute * Node, the status of the Certificate changes to deleteFailed. If you decide * that you want to continue using the Certificate, you can use this operation * to set the status of the Certificate back to active. If you intend to delete * the Certificate, you do not need to run this operation after the deletion * failed. You must make sure that the Certificate is not being used by any * resources, and then you can try again to delete the Certificate. * * @param {string} thumbprintAlgorithm The algorithm used to derive the * thumbprint parameter. This must be sha1. * * @param {string} thumbprint The thumbprint of the Certificate being deleted. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateCancelDeletionOptions] Additional * parameters for the operation * * @param {number} [options.certificateCancelDeletionOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.certificateCancelDeletionOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.certificateCancelDeletionOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.certificateCancelDeletionOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ cancelDeletionWithHttpOperationResponse(thumbprintAlgorithm: string, thumbprint: string, options?: { certificateCancelDeletionOptions? : models.CertificateCancelDeletionOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Cancels a failed deletion of a Certificate from the specified * Account. * * If you try to delete a Certificate that is being used by a Pool or Compute * Node, the status of the Certificate changes to deleteFailed. If you decide * that you want to continue using the Certificate, you can use this operation * to set the status of the Certificate back to active. If you intend to delete * the Certificate, you do not need to run this operation after the deletion * failed. You must make sure that the Certificate is not being used by any * resources, and then you can try again to delete the Certificate. * * @param {string} thumbprintAlgorithm The algorithm used to derive the * thumbprint parameter. This must be sha1. * * @param {string} thumbprint The thumbprint of the Certificate being deleted. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateCancelDeletionOptions] Additional * parameters for the operation * * @param {number} [options.certificateCancelDeletionOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.certificateCancelDeletionOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.certificateCancelDeletionOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.certificateCancelDeletionOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ cancelDeletion(thumbprintAlgorithm: string, thumbprint: string, options?: { certificateCancelDeletionOptions? : models.CertificateCancelDeletionOptions, customHeaders? : { [headerName: string]: string; } }): Promise; cancelDeletion(thumbprintAlgorithm: string, thumbprint: string, callback: ServiceCallback): void; cancelDeletion(thumbprintAlgorithm: string, thumbprint: string, options: { certificateCancelDeletionOptions? : models.CertificateCancelDeletionOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes a Certificate from the specified Account. * * You cannot delete a Certificate if a resource (Pool or Compute Node) is * using it. Before you can delete a Certificate, you must therefore make sure * that the Certificate is not associated with any existing Pools, the * Certificate is not installed on any Nodes (even if you remove a Certificate * from a Pool, it is not removed from existing Compute Nodes in that Pool * until they restart), and no running Tasks depend on the Certificate. If you * try to delete a Certificate that is in use, the deletion fails. The * Certificate status changes to deleteFailed. You can use Cancel Delete * Certificate to set the status back to active if you decide that you want to * continue using the Certificate. * * @param {string} thumbprintAlgorithm The algorithm used to derive the * thumbprint parameter. This must be sha1. * * @param {string} thumbprint The thumbprint of the Certificate to be deleted. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateDeleteMethodOptions] Additional * parameters for the operation * * @param {number} [options.certificateDeleteMethodOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.certificateDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.certificateDeleteMethodOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.certificateDeleteMethodOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteMethodWithHttpOperationResponse(thumbprintAlgorithm: string, thumbprint: string, options?: { certificateDeleteMethodOptions? : models.CertificateDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes a Certificate from the specified Account. * * You cannot delete a Certificate if a resource (Pool or Compute Node) is * using it. Before you can delete a Certificate, you must therefore make sure * that the Certificate is not associated with any existing Pools, the * Certificate is not installed on any Nodes (even if you remove a Certificate * from a Pool, it is not removed from existing Compute Nodes in that Pool * until they restart), and no running Tasks depend on the Certificate. If you * try to delete a Certificate that is in use, the deletion fails. The * Certificate status changes to deleteFailed. You can use Cancel Delete * Certificate to set the status back to active if you decide that you want to * continue using the Certificate. * * @param {string} thumbprintAlgorithm The algorithm used to derive the * thumbprint parameter. This must be sha1. * * @param {string} thumbprint The thumbprint of the Certificate to be deleted. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateDeleteMethodOptions] Additional * parameters for the operation * * @param {number} [options.certificateDeleteMethodOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.certificateDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.certificateDeleteMethodOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.certificateDeleteMethodOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteMethod(thumbprintAlgorithm: string, thumbprint: string, options?: { certificateDeleteMethodOptions? : models.CertificateDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteMethod(thumbprintAlgorithm: string, thumbprint: string, callback: ServiceCallback): void; deleteMethod(thumbprintAlgorithm: string, thumbprint: string, options: { certificateDeleteMethodOptions? : models.CertificateDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets information about the specified Certificate. * * @param {string} thumbprintAlgorithm The algorithm used to derive the * thumbprint parameter. This must be sha1. * * @param {string} thumbprint The thumbprint of the Certificate to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateGetOptions] Additional parameters for * the operation * * @param {string} [options.certificateGetOptions.select] An OData $select * clause. * * @param {number} [options.certificateGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.certificateGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(thumbprintAlgorithm: string, thumbprint: string, options?: { certificateGetOptions? : models.CertificateGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets information about the specified Certificate. * * @param {string} thumbprintAlgorithm The algorithm used to derive the * thumbprint parameter. This must be sha1. * * @param {string} thumbprint The thumbprint of the Certificate to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateGetOptions] Additional parameters for * the operation * * @param {string} [options.certificateGetOptions.select] An OData $select * clause. * * @param {number} [options.certificateGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.certificateGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {Certificate} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {Certificate} [result] - The deserialized result object if an error did not occur. * See {@link Certificate} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(thumbprintAlgorithm: string, thumbprint: string, options?: { certificateGetOptions? : models.CertificateGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(thumbprintAlgorithm: string, thumbprint: string, callback: ServiceCallback): void; get(thumbprintAlgorithm: string, thumbprint: string, options: { certificateGetOptions? : models.CertificateGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Certificates that have been added to the specified * Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.certificateListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { certificateListNextOptions? : models.CertificateListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Certificates that have been added to the specified * Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.certificateListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.certificateListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.certificateListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.certificateListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CertificateListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CertificateListResult} [result] - The deserialized result object if an error did not occur. * See {@link CertificateListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { certificateListNextOptions? : models.CertificateListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { certificateListNextOptions? : models.CertificateListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * File * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface File { /** * @summary Deletes the specified Task file from the Compute Node where the * Task ran. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose file you want to delete. * * @param {string} filePath The path to the Task file or directory that you * want to delete. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to delete children of a * directory. If the filePath parameter represents a directory instead of a * file, you can set recursive to true to delete the directory and all of the * files and subdirectories in it. If recursive is false then the directory * must be empty or deletion will fail. * * @param {object} [options.fileDeleteFromTaskOptions] Additional parameters * for the operation * * @param {number} [options.fileDeleteFromTaskOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.fileDeleteFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileDeleteFromTaskOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileDeleteFromTaskOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteFromTaskWithHttpOperationResponse(jobId: string, taskId: string, filePath: string, options?: { recursive? : boolean, fileDeleteFromTaskOptions? : models.FileDeleteFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes the specified Task file from the Compute Node where the * Task ran. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose file you want to delete. * * @param {string} filePath The path to the Task file or directory that you * want to delete. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to delete children of a * directory. If the filePath parameter represents a directory instead of a * file, you can set recursive to true to delete the directory and all of the * files and subdirectories in it. If recursive is false then the directory * must be empty or deletion will fail. * * @param {object} [options.fileDeleteFromTaskOptions] Additional parameters * for the operation * * @param {number} [options.fileDeleteFromTaskOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.fileDeleteFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileDeleteFromTaskOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileDeleteFromTaskOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteFromTask(jobId: string, taskId: string, filePath: string, options?: { recursive? : boolean, fileDeleteFromTaskOptions? : models.FileDeleteFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteFromTask(jobId: string, taskId: string, filePath: string, callback: ServiceCallback): void; deleteFromTask(jobId: string, taskId: string, filePath: string, options: { recursive? : boolean, fileDeleteFromTaskOptions? : models.FileDeleteFromTaskOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Returns the content of the specified Task file. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose file you want to retrieve. * * @param {string} filePath The path to the Task file that you want to get the * content of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetFromTaskOptions] Additional parameters for * the operation * * @param {number} [options.fileGetFromTaskOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.fileGetFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileGetFromTaskOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileGetFromTaskOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.fileGetFromTaskOptions.ocpRange] The byte range to * be retrieved. The default is to retrieve the entire file. The format is * bytes=startRange-endRange. * * @param {date} [options.fileGetFromTaskOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.fileGetFromTaskOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getFromTaskWithHttpOperationResponse(jobId: string, taskId: string, filePath: string, options?: { fileGetFromTaskOptions? : models.FileGetFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Returns the content of the specified Task file. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose file you want to retrieve. * * @param {string} filePath The path to the Task file that you want to get the * content of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetFromTaskOptions] Additional parameters for * the operation * * @param {number} [options.fileGetFromTaskOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.fileGetFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileGetFromTaskOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileGetFromTaskOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.fileGetFromTaskOptions.ocpRange] The byte range to * be retrieved. The default is to retrieve the entire file. The format is * bytes=startRange-endRange. * * @param {date} [options.fileGetFromTaskOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.fileGetFromTaskOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {Object} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {Object} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getFromTask(jobId: string, taskId: string, filePath: string, options?: { fileGetFromTaskOptions? : models.FileGetFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getFromTask(jobId: string, taskId: string, filePath: string, callback: ServiceCallback): void; getFromTask(jobId: string, taskId: string, filePath: string, options: { fileGetFromTaskOptions? : models.FileGetFromTaskOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets the properties of the specified Task file. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose file you want to get the * properties of. * * @param {string} filePath The path to the Task file that you want to get the * properties of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetPropertiesFromTaskOptions] Additional * parameters for the operation * * @param {number} [options.fileGetPropertiesFromTaskOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.fileGetPropertiesFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileGetPropertiesFromTaskOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileGetPropertiesFromTaskOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {date} [options.fileGetPropertiesFromTaskOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.fileGetPropertiesFromTaskOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getPropertiesFromTaskWithHttpOperationResponse(jobId: string, taskId: string, filePath: string, options?: { fileGetPropertiesFromTaskOptions? : models.FileGetPropertiesFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets the properties of the specified Task file. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose file you want to get the * properties of. * * @param {string} filePath The path to the Task file that you want to get the * properties of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetPropertiesFromTaskOptions] Additional * parameters for the operation * * @param {number} [options.fileGetPropertiesFromTaskOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.fileGetPropertiesFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileGetPropertiesFromTaskOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileGetPropertiesFromTaskOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {date} [options.fileGetPropertiesFromTaskOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.fileGetPropertiesFromTaskOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getPropertiesFromTask(jobId: string, taskId: string, filePath: string, options?: { fileGetPropertiesFromTaskOptions? : models.FileGetPropertiesFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getPropertiesFromTask(jobId: string, taskId: string, filePath: string, callback: ServiceCallback): void; getPropertiesFromTask(jobId: string, taskId: string, filePath: string, options: { fileGetPropertiesFromTaskOptions? : models.FileGetPropertiesFromTaskOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes the specified file from the Compute Node. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node from which you want to * delete the file. * * @param {string} filePath The path to the file or directory that you want to * delete. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to delete children of a * directory. If the filePath parameter represents a directory instead of a * file, you can set recursive to true to delete the directory and all of the * files and subdirectories in it. If recursive is false then the directory * must be empty or deletion will fail. * * @param {object} [options.fileDeleteFromComputeNodeOptions] Additional * parameters for the operation * * @param {number} [options.fileDeleteFromComputeNodeOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.fileDeleteFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileDeleteFromComputeNodeOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileDeleteFromComputeNodeOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteFromComputeNodeWithHttpOperationResponse(poolId: string, nodeId: string, filePath: string, options?: { recursive? : boolean, fileDeleteFromComputeNodeOptions? : models.FileDeleteFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes the specified file from the Compute Node. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node from which you want to * delete the file. * * @param {string} filePath The path to the file or directory that you want to * delete. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to delete children of a * directory. If the filePath parameter represents a directory instead of a * file, you can set recursive to true to delete the directory and all of the * files and subdirectories in it. If recursive is false then the directory * must be empty or deletion will fail. * * @param {object} [options.fileDeleteFromComputeNodeOptions] Additional * parameters for the operation * * @param {number} [options.fileDeleteFromComputeNodeOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.fileDeleteFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileDeleteFromComputeNodeOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileDeleteFromComputeNodeOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteFromComputeNode(poolId: string, nodeId: string, filePath: string, options?: { recursive? : boolean, fileDeleteFromComputeNodeOptions? : models.FileDeleteFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteFromComputeNode(poolId: string, nodeId: string, filePath: string, callback: ServiceCallback): void; deleteFromComputeNode(poolId: string, nodeId: string, filePath: string, options: { recursive? : boolean, fileDeleteFromComputeNodeOptions? : models.FileDeleteFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Returns the content of the specified Compute Node file. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that contains the file. * * @param {string} filePath The path to the Compute Node file that you want to * get the content of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetFromComputeNodeOptions] Additional * parameters for the operation * * @param {number} [options.fileGetFromComputeNodeOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.fileGetFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileGetFromComputeNodeOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileGetFromComputeNodeOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.fileGetFromComputeNodeOptions.ocpRange] The byte * range to be retrieved. The default is to retrieve the entire file. The * format is bytes=startRange-endRange. * * @param {date} [options.fileGetFromComputeNodeOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.fileGetFromComputeNodeOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getFromComputeNodeWithHttpOperationResponse(poolId: string, nodeId: string, filePath: string, options?: { fileGetFromComputeNodeOptions? : models.FileGetFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Returns the content of the specified Compute Node file. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that contains the file. * * @param {string} filePath The path to the Compute Node file that you want to * get the content of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetFromComputeNodeOptions] Additional * parameters for the operation * * @param {number} [options.fileGetFromComputeNodeOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.fileGetFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileGetFromComputeNodeOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileGetFromComputeNodeOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.fileGetFromComputeNodeOptions.ocpRange] The byte * range to be retrieved. The default is to retrieve the entire file. The * format is bytes=startRange-endRange. * * @param {date} [options.fileGetFromComputeNodeOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.fileGetFromComputeNodeOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {Object} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {Object} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getFromComputeNode(poolId: string, nodeId: string, filePath: string, options?: { fileGetFromComputeNodeOptions? : models.FileGetFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getFromComputeNode(poolId: string, nodeId: string, filePath: string, callback: ServiceCallback): void; getFromComputeNode(poolId: string, nodeId: string, filePath: string, options: { fileGetFromComputeNodeOptions? : models.FileGetFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets the properties of the specified Compute Node file. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that contains the file. * * @param {string} filePath The path to the Compute Node file that you want to * get the properties of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetPropertiesFromComputeNodeOptions] Additional * parameters for the operation * * @param {number} [options.fileGetPropertiesFromComputeNodeOptions.timeout] * The maximum time that the server can spend processing the request, in * seconds. The default is 30 seconds. * * @param {uuid} * [options.fileGetPropertiesFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileGetPropertiesFromComputeNodeOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileGetPropertiesFromComputeNodeOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {date} * [options.fileGetPropertiesFromComputeNodeOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} * [options.fileGetPropertiesFromComputeNodeOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getPropertiesFromComputeNodeWithHttpOperationResponse(poolId: string, nodeId: string, filePath: string, options?: { fileGetPropertiesFromComputeNodeOptions? : models.FileGetPropertiesFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets the properties of the specified Compute Node file. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that contains the file. * * @param {string} filePath The path to the Compute Node file that you want to * get the properties of. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileGetPropertiesFromComputeNodeOptions] Additional * parameters for the operation * * @param {number} [options.fileGetPropertiesFromComputeNodeOptions.timeout] * The maximum time that the server can spend processing the request, in * seconds. The default is 30 seconds. * * @param {uuid} * [options.fileGetPropertiesFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileGetPropertiesFromComputeNodeOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileGetPropertiesFromComputeNodeOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {date} * [options.fileGetPropertiesFromComputeNodeOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} * [options.fileGetPropertiesFromComputeNodeOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getPropertiesFromComputeNode(poolId: string, nodeId: string, filePath: string, options?: { fileGetPropertiesFromComputeNodeOptions? : models.FileGetPropertiesFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getPropertiesFromComputeNode(poolId: string, nodeId: string, filePath: string, callback: ServiceCallback): void; getPropertiesFromComputeNode(poolId: string, nodeId: string, filePath: string, options: { fileGetPropertiesFromComputeNodeOptions? : models.FileGetPropertiesFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the files in a Task's directory on its Compute Node. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose files you want to list. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to list children of the Task * directory. This parameter can be used in combination with the filter * parameter to list specific type of files. * * @param {object} [options.fileListFromTaskOptions] Additional parameters for * the operation * * @param {string} [options.fileListFromTaskOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. * * @param {number} [options.fileListFromTaskOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 files can be * returned. * * @param {number} [options.fileListFromTaskOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.fileListFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileListFromTaskOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileListFromTaskOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listFromTaskWithHttpOperationResponse(jobId: string, taskId: string, options?: { recursive? : boolean, fileListFromTaskOptions? : models.FileListFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the files in a Task's directory on its Compute Node. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task whose files you want to list. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to list children of the Task * directory. This parameter can be used in combination with the filter * parameter to list specific type of files. * * @param {object} [options.fileListFromTaskOptions] Additional parameters for * the operation * * @param {string} [options.fileListFromTaskOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. * * @param {number} [options.fileListFromTaskOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 files can be * returned. * * @param {number} [options.fileListFromTaskOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.fileListFromTaskOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileListFromTaskOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileListFromTaskOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {NodeFileListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {NodeFileListResult} [result] - The deserialized result object if an error did not occur. * See {@link NodeFileListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listFromTask(jobId: string, taskId: string, options?: { recursive? : boolean, fileListFromTaskOptions? : models.FileListFromTaskOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listFromTask(jobId: string, taskId: string, callback: ServiceCallback): void; listFromTask(jobId: string, taskId: string, options: { recursive? : boolean, fileListFromTaskOptions? : models.FileListFromTaskOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the files in Task directories on the specified Compute * Node. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node whose files you want to * list. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to list children of a * directory. * * @param {object} [options.fileListFromComputeNodeOptions] Additional * parameters for the operation * * @param {string} [options.fileListFromComputeNodeOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. * * @param {number} [options.fileListFromComputeNodeOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 files * can be returned. * * @param {number} [options.fileListFromComputeNodeOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.fileListFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileListFromComputeNodeOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileListFromComputeNodeOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listFromComputeNodeWithHttpOperationResponse(poolId: string, nodeId: string, options?: { recursive? : boolean, fileListFromComputeNodeOptions? : models.FileListFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the files in Task directories on the specified Compute * Node. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node whose files you want to * list. * * @param {object} [options] Optional Parameters. * * @param {boolean} [options.recursive] Whether to list children of a * directory. * * @param {object} [options.fileListFromComputeNodeOptions] Additional * parameters for the operation * * @param {string} [options.fileListFromComputeNodeOptions.filter] An OData * $filter clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. * * @param {number} [options.fileListFromComputeNodeOptions.maxResults] The * maximum number of items to return in the response. A maximum of 1000 files * can be returned. * * @param {number} [options.fileListFromComputeNodeOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.fileListFromComputeNodeOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileListFromComputeNodeOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.fileListFromComputeNodeOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {NodeFileListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {NodeFileListResult} [result] - The deserialized result object if an error did not occur. * See {@link NodeFileListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listFromComputeNode(poolId: string, nodeId: string, options?: { recursive? : boolean, fileListFromComputeNodeOptions? : models.FileListFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listFromComputeNode(poolId: string, nodeId: string, callback: ServiceCallback): void; listFromComputeNode(poolId: string, nodeId: string, options: { recursive? : boolean, fileListFromComputeNodeOptions? : models.FileListFromComputeNodeOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the files in a Task's directory on its Compute Node. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileListFromTaskNextOptions] Additional parameters * for the operation * * @param {uuid} [options.fileListFromTaskNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileListFromTaskNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileListFromTaskNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listFromTaskNextWithHttpOperationResponse(nextPageLink: string, options?: { fileListFromTaskNextOptions? : models.FileListFromTaskNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the files in a Task's directory on its Compute Node. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileListFromTaskNextOptions] Additional parameters * for the operation * * @param {uuid} [options.fileListFromTaskNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.fileListFromTaskNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.fileListFromTaskNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {NodeFileListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {NodeFileListResult} [result] - The deserialized result object if an error did not occur. * See {@link NodeFileListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listFromTaskNext(nextPageLink: string, options?: { fileListFromTaskNextOptions? : models.FileListFromTaskNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listFromTaskNext(nextPageLink: string, callback: ServiceCallback): void; listFromTaskNext(nextPageLink: string, options: { fileListFromTaskNextOptions? : models.FileListFromTaskNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the files in Task directories on the specified Compute * Node. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileListFromComputeNodeNextOptions] Additional * parameters for the operation * * @param {uuid} [options.fileListFromComputeNodeNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileListFromComputeNodeNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.fileListFromComputeNodeNextOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listFromComputeNodeNextWithHttpOperationResponse(nextPageLink: string, options?: { fileListFromComputeNodeNextOptions? : models.FileListFromComputeNodeNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the files in Task directories on the specified Compute * Node. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.fileListFromComputeNodeNextOptions] Additional * parameters for the operation * * @param {uuid} [options.fileListFromComputeNodeNextOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.fileListFromComputeNodeNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.fileListFromComputeNodeNextOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {NodeFileListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {NodeFileListResult} [result] - The deserialized result object if an error did not occur. * See {@link NodeFileListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listFromComputeNodeNext(nextPageLink: string, options?: { fileListFromComputeNodeNextOptions? : models.FileListFromComputeNodeNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listFromComputeNodeNext(nextPageLink: string, callback: ServiceCallback): void; listFromComputeNodeNext(nextPageLink: string, options: { fileListFromComputeNodeNextOptions? : models.FileListFromComputeNodeNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * JobSchedule * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface JobSchedule { /** * @summary Checks the specified Job Schedule exists. * * @param {string} jobScheduleId The ID of the Job Schedule which you want to * check. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleExistsOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleExistsOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleExistsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleExistsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleExistsOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleExistsOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleExistsOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleExistsOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleExistsOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ existsWithHttpOperationResponse(jobScheduleId: string, options?: { jobScheduleExistsOptions? : models.JobScheduleExistsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Checks the specified Job Schedule exists. * * @param {string} jobScheduleId The ID of the Job Schedule which you want to * check. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleExistsOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleExistsOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleExistsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleExistsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleExistsOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleExistsOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleExistsOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleExistsOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleExistsOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {Boolean} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {Boolean} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ exists(jobScheduleId: string, options?: { jobScheduleExistsOptions? : models.JobScheduleExistsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; exists(jobScheduleId: string, callback: ServiceCallback): void; exists(jobScheduleId: string, options: { jobScheduleExistsOptions? : models.JobScheduleExistsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes a Job Schedule from the specified Account. * * When you delete a Job Schedule, this also deletes all Jobs and Tasks under * that schedule. When Tasks are deleted, all the files in their working * directories on the Compute Nodes are also deleted (the retention period is * ignored). The Job Schedule statistics are no longer accessible once the Job * Schedule is deleted, though they are still counted towards Account lifetime * statistics. * * @param {string} jobScheduleId The ID of the Job Schedule to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleDeleteMethodOptions] Additional * parameters for the operation * * @param {number} [options.jobScheduleDeleteMethodOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.jobScheduleDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobScheduleDeleteMethodOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobScheduleDeleteMethodOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleDeleteMethodOptions.ifMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleDeleteMethodOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleDeleteMethodOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.jobScheduleDeleteMethodOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteMethodWithHttpOperationResponse(jobScheduleId: string, options?: { jobScheduleDeleteMethodOptions? : models.JobScheduleDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes a Job Schedule from the specified Account. * * When you delete a Job Schedule, this also deletes all Jobs and Tasks under * that schedule. When Tasks are deleted, all the files in their working * directories on the Compute Nodes are also deleted (the retention period is * ignored). The Job Schedule statistics are no longer accessible once the Job * Schedule is deleted, though they are still counted towards Account lifetime * statistics. * * @param {string} jobScheduleId The ID of the Job Schedule to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleDeleteMethodOptions] Additional * parameters for the operation * * @param {number} [options.jobScheduleDeleteMethodOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.jobScheduleDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.jobScheduleDeleteMethodOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.jobScheduleDeleteMethodOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleDeleteMethodOptions.ifMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleDeleteMethodOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleDeleteMethodOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.jobScheduleDeleteMethodOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteMethod(jobScheduleId: string, options?: { jobScheduleDeleteMethodOptions? : models.JobScheduleDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteMethod(jobScheduleId: string, callback: ServiceCallback): void; deleteMethod(jobScheduleId: string, options: { jobScheduleDeleteMethodOptions? : models.JobScheduleDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Gets information about the specified Job Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleGetOptions] Additional parameters for * the operation * * @param {string} [options.jobScheduleGetOptions.select] An OData $select * clause. * * @param {string} [options.jobScheduleGetOptions.expand] An OData $expand * clause. * * @param {number} [options.jobScheduleGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobScheduleGetOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleGetOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleGetOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(jobScheduleId: string, options?: { jobScheduleGetOptions? : models.JobScheduleGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Gets information about the specified Job Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule to get. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleGetOptions] Additional parameters for * the operation * * @param {string} [options.jobScheduleGetOptions.select] An OData $select * clause. * * @param {string} [options.jobScheduleGetOptions.expand] An OData $expand * clause. * * @param {number} [options.jobScheduleGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobScheduleGetOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleGetOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleGetOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobSchedule} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobSchedule} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobSchedule} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(jobScheduleId: string, options?: { jobScheduleGetOptions? : models.JobScheduleGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(jobScheduleId: string, callback: ServiceCallback): void; get(jobScheduleId: string, options: { jobScheduleGetOptions? : models.JobScheduleGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the properties of the specified Job Schedule. * * This replaces only the Job Schedule properties specified in the request. For * example, if the schedule property is not specified with this request, then * the Batch service will keep the existing schedule. Changes to a Job Schedule * only impact Jobs created by the schedule after the update has taken place; * currently running Jobs are unaffected. * * @param {string} jobScheduleId The ID of the Job Schedule to update. * * @param {object} jobSchedulePatchParameter The parameters for the request. * * @param {object} [jobSchedulePatchParameter.schedule] The schedule according * to which Jobs will be created. If you do not specify this element, the * existing schedule is left unchanged. * * @param {date} [jobSchedulePatchParameter.schedule.doNotRunUntil] The * earliest time at which any Job may be created under this Job Schedule. If * you do not specify a doNotRunUntil time, the schedule becomes ready to * create Jobs immediately. * * @param {date} [jobSchedulePatchParameter.schedule.doNotRunAfter] A time * after which no Job will be created under this Job Schedule. The schedule * will move to the completed state as soon as this deadline is past and there * is no active Job under this Job Schedule. If you do not specify a * doNotRunAfter time, and you are creating a recurring Job Schedule, the Job * Schedule will remain active until you explicitly terminate it. * * @param {moment.duration} [jobSchedulePatchParameter.schedule.startWindow] * The time interval, starting from the time at which the schedule indicates a * Job should be created, within which a Job must be created. If a Job is not * created within the startWindow interval, then the 'opportunity' is lost; no * Job will be created until the next recurrence of the schedule. If the * schedule is recurring, and the startWindow is longer than the recurrence * interval, then this is equivalent to an infinite startWindow, because the * Job that is 'due' in one recurrenceInterval is not carried forward into the * next recurrence interval. The default is infinite. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {moment.duration} * [jobSchedulePatchParameter.schedule.recurrenceInterval] The time interval * between the start times of two successive Jobs under the Job Schedule. A Job * Schedule can have at most one active Job under it at any given time. Because * a Job Schedule can have at most one active Job under it at any given time, * if it is time to create a new Job under a Job Schedule, but the previous Job * is still running, the Batch service will not create the new Job until the * previous Job finishes. If the previous Job does not finish within the * startWindow period of the new recurrenceInterval, then no new Job will be * scheduled for that interval. For recurring Jobs, you should normally specify * a jobManagerTask in the jobSpecification. If you do not use jobManagerTask, * you will need an external process to monitor when Jobs are created, add * Tasks to the Jobs and terminate the Jobs ready for the next recurrence. The * default is that the schedule does not recur: one Job is created, within the * startWindow after the doNotRunUntil time, and the schedule is complete as * soon as that Job finishes. The minimum value is 1 minute. If you specify a * lower value, the Batch service rejects the schedule with an error; if you * are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {object} [jobSchedulePatchParameter.jobSpecification] The details of * the Jobs to be created on this schedule. Updates affect only Jobs that are * started after the update has taken place. Any currently active Job continues * with the older specification. * * @param {number} [jobSchedulePatchParameter.jobSpecification.priority] The * priority of Jobs created under this schedule. Priority values can range from * -1000 to 1000, with -1000 being the lowest priority and 1000 being the * highest priority. The default value is 0. This priority is used as the * default for all Jobs under the Job Schedule. You can update a Job's priority * after it has been created using by using the update Job API. * * @param {string} [jobSchedulePatchParameter.jobSpecification.displayName] The * display name for Jobs created under this schedule. The name need not be * unique and can contain any Unicode characters up to a maximum length of * 1024. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.usesTaskDependencies] Whether * Tasks in the Job can define dependencies on each other. The default is * false. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.onAllTasksComplete] The action * the Batch service should take when all Tasks in a Job created under this * schedule are in the completed state. Note that if a Job contains no Tasks, * then all Tasks are considered complete. This option is therefore most * commonly used with a Job Manager task; if you want to use automatic Job * termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [jobSchedulePatchParameter.jobSpecification.onTaskFailure] * The action the Batch service should take when any Task fails in a Job * created under this schedule. A Task is considered to have failed if it have * failed if has a failureInfo. A failureInfo is set if the Task completes with * a non-zero exit code after exhausting its retry count, or if there was an * error starting the Task, for example due to a resource file download error. * The default is noaction. Possible values include: 'noAction', * 'performExitOptionsJobAction' * * @param {object} * [jobSchedulePatchParameter.jobSpecification.networkConfiguration] The * network configuration for the Job. * * @param {string} * jobSchedulePatchParameter.jobSpecification.networkConfiguration.subnetId The * ARM resource identifier of the virtual network subnet which Compute Nodes * running Tasks from the Job will join for the duration of the Task. This will * only work with a VirtualMachineConfiguration Pool. The virtual network must * be in the same region and subscription as the Azure Batch Account. The * specified subnet should have enough free IP addresses to accommodate the * number of Compute Nodes which will run Tasks from the Job. This can be up to * the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service * principal must have the 'Classic Virtual Machine Contributor' Role-Based * Access Control (RBAC) role for the specified VNet so that Azure Batch * service can schedule Tasks on the Nodes. This can be verified by checking if * the specified VNet has any associated Network Security Groups (NSG). If * communication to the Nodes in the specified subnet is denied by an NSG, then * the Batch service will set the state of the Compute Nodes to unusable. This * is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [jobSchedulePatchParameter.jobSpecification.constraints] The * execution constraints for Jobs created under this schedule. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.constraints.maxTaskRetryCount] * The maximum number of times each 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 each * Task once, and may then retry up to this limit. For example, if the maximum * retry count is 3, Batch tries a Task up to 4 times (one initial try and 3 * retries). If the maximum retry count is 0, the Batch service does not retry * Tasks. If the maximum retry count is -1, the Batch service retries Tasks * without limit. The default value is 0 (no retries). * * @param {object} [jobSchedulePatchParameter.jobSpecification.jobManagerTask] * The details of a Job Manager Task to be launched when a Job is started under * this schedule. If the Job does not specify a Job Manager Task, the user must * explicitly add Tasks to the Job using the Task API. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. * * @param {string} jobSchedulePatchParameter.jobSpecification.jobManagerTask.id * A string that uniquely identifies the Job Manager Task within the Job. The * ID can contain any combination of alphanumeric characters including hyphens * and underscores and cannot contain more than 64 characters. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.displayName] The * display name of the Job Manager Task. It need not be unique and can contain * any Unicode characters up to a maximum length of 1024. * * @param {string} * jobSchedulePatchParameter.jobSpecification.jobManagerTask.commandLine The * command line of the Job Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.containerSettings] * The settings for the container under which the Job Manager Task runs. If the * Pool that will run this Task has containerConfiguration set, this must be * set as well. If the Pool that will run this Task doesn't have * containerConfiguration set, this must not be set. 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.resourceFiles] A * list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.outputFiles] A * list of files that the Batch service will upload from the Compute Node after * running the command line. For multi-instance Tasks, the files will only be * uploaded from the Compute Node on which the primary Task is executed. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.environmentSettings] * A list of environment variable settings for the Job Manager Task. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.constraints] * Constraints that apply to the Job Manager Task. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.killJobOnCompletion] * Whether completion of the Job Manager Task signifies completion of the * entire Job. If true, when the Job Manager Task completes, the Batch service * marks the Job as complete. If any Tasks are still running at this time * (other than Job Release), those Tasks are terminated. If false, the * completion of the Job Manager Task does not affect the Job status. In this * case, you should either use the onAllTasksComplete attribute to terminate * the Job, or have a client or user terminate the Job explicitly. An example * of this is if the Job Manager creates a set of Tasks but then takes no * further role in their execution. The default value is true. If you are using * the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, * and using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.userIdentity] The * user identity under which the Job Manager Task runs. If omitted, the Task * runs as a non-administrative user unique to the Task. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.runExclusive] * Whether the Job Manager Task requires exclusive use of the Compute Node * where it runs. If true, no other Tasks will run on the same Node for as long * as the Job Manager is running. If false, other Tasks can run simultaneously * with the Job Manager on a Compute Node. The Job Manager Task counts normally * against the Compute Node's concurrent Task limit, so this is only relevant * if the Compute Node allows multiple concurrent Tasks. The default value is * true. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.applicationPackageReferences] * A list of Application Packages that the Batch service will deploy to the * Compute Node before running the command line. Application Packages are * downloaded and deployed to a shared directory, not the Task working * directory. Therefore, if a referenced Application Package is already on the * Compute Node, and is up to date, then it is not re-downloaded; the existing * copy on the Compute Node is used. If a referenced Application Package cannot * be installed, for example because the package has been deleted or because * download failed, the Task fails. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.authenticationTokenSettings] * The settings for an authentication token that the Task can use to perform * Batch service operations. If this property is set, the Batch service * provides the Task with an authentication token which can be used to * authenticate Batch service operations without requiring an Account access * key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment * variable. The operations that the Task can carry out using the token depend * on the settings. For example, a Task can request Job permissions in order to * add other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.authenticationTokenSettings.access] * The Batch resources to which the token grants access. The authentication * token grants access to a limited set of Batch service operations. Currently * the only supported value for the access property is 'job', which grants * access to all operations related to the Job which contains the Task. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.allowLowPriorityNode] * Whether the Job Manager Task may run on a low-priority Compute Node. The * default value is true. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask] The Job * Preparation Task for Jobs created under this schedule. If a Job has a Job * Preparation Task, the Batch service will run the Job Preparation Task on a * Node before starting any Tasks of that Job on that Compute Node. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.id] A string * that uniquely identifies the Job Preparation Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobpreparation'. No other Task in the Job can have the same ID as the Job * Preparation Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobPreparationTask; * if you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * jobSchedulePatchParameter.jobSpecification.jobPreparationTask.commandLine * The command line of the Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.containerSettings] * The settings for the container under which the Job Preparation Task 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.resourceFiles] * A list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.environmentSettings] * A list of environment variable settings for the Job Preparation Task. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints] * Constraints that apply to the Job Preparation Task. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints.maxWallClockTime] * The maximum elapsed time that the Task may run, measured from the time the * Task starts. If the Task does not complete within the time limit, the Batch * service terminates it. If this is not specified, there is no time limit on * how long the Task may run. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints.maxTaskRetryCount] * 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 for the Task executable due to a * nonzero exit code. 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 after the first * attempt. If the maximum retry count is -1, the Batch service retries the * Task without limit. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.waitForSuccess] * Whether the Batch service should wait for the Job Preparation Task to * complete successfully before scheduling any other Tasks of the Job on the * Compute Node. A Job Preparation Task has completed successfully if it exits * with exit code 0. If true and the Job Preparation Task fails on a Node, the * Batch service retries the Job Preparation Task up to its maximum retry count * (as specified in the constraints element). If the Task has still not * completed successfully after all retries, then the Batch service will not * schedule Tasks of the Job to the Node. The Node remains active and eligible * to run Tasks of other Jobs. If false, the Batch service will not wait for * the Job Preparation Task to complete. In this case, other Tasks of the Job * can start executing on the Compute Node while the Job Preparation Task is * still running; and even if the Job Preparation Task fails, new Tasks will * continue to be scheduled on the Compute Node. The default value is true. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.userIdentity] * The user identity under which the Job Preparation Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task on Windows Compute * Nodes, or a non-administrative user unique to the Pool on Linux Compute * Nodes. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [jobSchedulePatchParameter.jobSpecification.jobReleaseTask] * The Job Release Task for Jobs created under this schedule. The primary * purpose of the Job Release Task is to undo changes to Nodes made by the Job * Preparation Task. Example activities include deleting local files, or * shutting down services that were started as part of Job preparation. A Job * Release Task cannot be specified without also specifying a Job Preparation * Task for the Job. The Batch service runs the Job Release Task on the Compute * Nodes that have run the Job Preparation Task. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.id] A string that * uniquely identifies the Job Release Task within the Job. The ID can contain * any combination of alphanumeric characters including hyphens and underscores * and cannot contain more than 64 characters. If you do not specify this * property, the Batch service assigns a default value of 'jobrelease'. No * other Task in the Job can have the same ID as the Job Release Task. If you * try to submit a Task with the same id, the Batch service rejects the request * with error code TaskIdSameAsJobReleaseTask; if you are calling the REST API * directly, the HTTP status code is 409 (Conflict). * * @param {string} * jobSchedulePatchParameter.jobSpecification.jobReleaseTask.commandLine The * command line of the Job Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.containerSettings] * The settings for the container under which the Job Release Task 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.resourceFiles] 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.environmentSettings] * A list of environment variable settings for the Job Release Task. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.maxWallClockTime] * The maximum elapsed time that the Job Release Task may run on a given * Compute Node, measured from the time the Task starts. If the Task does not * complete within the time limit, the Batch service terminates it. The default * value is 15 minutes. You may not specify a timeout longer than 15 minutes. * If you do, the Batch service rejects it with an error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.retentionTime] * The minimum time to retain the Task directory for the Job Release Task on * the Compute Node. After this time, the Batch service may delete the Task * directory and all its contents. The default is 7 days, i.e. the Task * directory will be retained for 7 days unless the Compute Node is removed or * the Job is deleted. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.userIdentity] The * user identity under which the Job Release Task runs. If omitted, the Task * runs as a non-administrative user unique to the Task. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.commonEnvironmentSettings] A * list of common environment variable settings. These environment variables * are set for all Tasks in Jobs created under this schedule (including the Job * Manager, Job Preparation and Job Release Tasks). Individual Tasks can * override an environment setting specified here by specifying the same * setting name with a different value. * * @param {object} jobSchedulePatchParameter.jobSpecification.poolInfo The Pool * on which the Batch service runs the Tasks of Jobs created under this * schedule. * * @param {string} [jobSchedulePatchParameter.jobSpecification.poolInfo.poolId] * The ID of an existing Pool. All the Tasks of the Job will run on the * specified Pool. You must ensure that the Pool referenced by this property * exists. If the Pool does not exist at the time the Batch service tries to * schedule a Job, no Tasks for the Job will run until you create a Pool with * that id. Note that the Batch service will not reject the Job request; it * will simply not run Tasks until the Pool exists. You must specify either the * Pool ID or the auto Pool specification, but not both. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.autoPoolIdPrefix] * A prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.poolLifetimeOption * The minimum lifetime of created auto Pools, and how multiple Jobs on a * schedule are assigned to Pools. Possible values include: 'jobSchedule', * 'job' * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.keepAlive] * Whether to keep an auto Pool alive after its lifetime expires. If false, the * Batch service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool] * The Pool specification for the auto Pool. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.displayName] * The display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.resizeTimeout] * The timeout for allocation of Compute Nodes to the Pool. This timeout * applies only to manual scaling; it has no effect when enableAutoScale is set * to true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask] * A Task to run on each Compute Node as it joins the Pool. The Task runs when * the Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.userAccounts] * The list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.metadata] * A list of name-value pairs associated with the Pool as metadata. The Batch * service does not assign any meaning to metadata; it is solely for the use of * user code. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobSchedulePatchParameter.jobSpecification.metadata] A list * of name-value pairs associated with each Job created under this schedule as * metadata. The Batch service does not assign any meaning to metadata; it is * solely for the use of user code. * * @param {array} [jobSchedulePatchParameter.metadata] A list of name-value * pairs associated with the Job Schedule as metadata. If you do not specify * this element, existing metadata is left unchanged. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobSchedulePatchOptions] Additional parameters for * the operation * * @param {number} [options.jobSchedulePatchOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobSchedulePatchOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobSchedulePatchOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobSchedulePatchOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobSchedulePatchOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobSchedulePatchOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobSchedulePatchOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobSchedulePatchOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ patchWithHttpOperationResponse(jobScheduleId: string, jobSchedulePatchParameter: models.JobSchedulePatchParameter, options?: { jobSchedulePatchOptions? : models.JobSchedulePatchOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the properties of the specified Job Schedule. * * This replaces only the Job Schedule properties specified in the request. For * example, if the schedule property is not specified with this request, then * the Batch service will keep the existing schedule. Changes to a Job Schedule * only impact Jobs created by the schedule after the update has taken place; * currently running Jobs are unaffected. * * @param {string} jobScheduleId The ID of the Job Schedule to update. * * @param {object} jobSchedulePatchParameter The parameters for the request. * * @param {object} [jobSchedulePatchParameter.schedule] The schedule according * to which Jobs will be created. If you do not specify this element, the * existing schedule is left unchanged. * * @param {date} [jobSchedulePatchParameter.schedule.doNotRunUntil] The * earliest time at which any Job may be created under this Job Schedule. If * you do not specify a doNotRunUntil time, the schedule becomes ready to * create Jobs immediately. * * @param {date} [jobSchedulePatchParameter.schedule.doNotRunAfter] A time * after which no Job will be created under this Job Schedule. The schedule * will move to the completed state as soon as this deadline is past and there * is no active Job under this Job Schedule. If you do not specify a * doNotRunAfter time, and you are creating a recurring Job Schedule, the Job * Schedule will remain active until you explicitly terminate it. * * @param {moment.duration} [jobSchedulePatchParameter.schedule.startWindow] * The time interval, starting from the time at which the schedule indicates a * Job should be created, within which a Job must be created. If a Job is not * created within the startWindow interval, then the 'opportunity' is lost; no * Job will be created until the next recurrence of the schedule. If the * schedule is recurring, and the startWindow is longer than the recurrence * interval, then this is equivalent to an infinite startWindow, because the * Job that is 'due' in one recurrenceInterval is not carried forward into the * next recurrence interval. The default is infinite. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {moment.duration} * [jobSchedulePatchParameter.schedule.recurrenceInterval] The time interval * between the start times of two successive Jobs under the Job Schedule. A Job * Schedule can have at most one active Job under it at any given time. Because * a Job Schedule can have at most one active Job under it at any given time, * if it is time to create a new Job under a Job Schedule, but the previous Job * is still running, the Batch service will not create the new Job until the * previous Job finishes. If the previous Job does not finish within the * startWindow period of the new recurrenceInterval, then no new Job will be * scheduled for that interval. For recurring Jobs, you should normally specify * a jobManagerTask in the jobSpecification. If you do not use jobManagerTask, * you will need an external process to monitor when Jobs are created, add * Tasks to the Jobs and terminate the Jobs ready for the next recurrence. The * default is that the schedule does not recur: one Job is created, within the * startWindow after the doNotRunUntil time, and the schedule is complete as * soon as that Job finishes. The minimum value is 1 minute. If you specify a * lower value, the Batch service rejects the schedule with an error; if you * are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {object} [jobSchedulePatchParameter.jobSpecification] The details of * the Jobs to be created on this schedule. Updates affect only Jobs that are * started after the update has taken place. Any currently active Job continues * with the older specification. * * @param {number} [jobSchedulePatchParameter.jobSpecification.priority] The * priority of Jobs created under this schedule. Priority values can range from * -1000 to 1000, with -1000 being the lowest priority and 1000 being the * highest priority. The default value is 0. This priority is used as the * default for all Jobs under the Job Schedule. You can update a Job's priority * after it has been created using by using the update Job API. * * @param {string} [jobSchedulePatchParameter.jobSpecification.displayName] The * display name for Jobs created under this schedule. The name need not be * unique and can contain any Unicode characters up to a maximum length of * 1024. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.usesTaskDependencies] Whether * Tasks in the Job can define dependencies on each other. The default is * false. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.onAllTasksComplete] The action * the Batch service should take when all Tasks in a Job created under this * schedule are in the completed state. Note that if a Job contains no Tasks, * then all Tasks are considered complete. This option is therefore most * commonly used with a Job Manager task; if you want to use automatic Job * termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [jobSchedulePatchParameter.jobSpecification.onTaskFailure] * The action the Batch service should take when any Task fails in a Job * created under this schedule. A Task is considered to have failed if it have * failed if has a failureInfo. A failureInfo is set if the Task completes with * a non-zero exit code after exhausting its retry count, or if there was an * error starting the Task, for example due to a resource file download error. * The default is noaction. Possible values include: 'noAction', * 'performExitOptionsJobAction' * * @param {object} * [jobSchedulePatchParameter.jobSpecification.networkConfiguration] The * network configuration for the Job. * * @param {string} * jobSchedulePatchParameter.jobSpecification.networkConfiguration.subnetId The * ARM resource identifier of the virtual network subnet which Compute Nodes * running Tasks from the Job will join for the duration of the Task. This will * only work with a VirtualMachineConfiguration Pool. The virtual network must * be in the same region and subscription as the Azure Batch Account. The * specified subnet should have enough free IP addresses to accommodate the * number of Compute Nodes which will run Tasks from the Job. This can be up to * the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service * principal must have the 'Classic Virtual Machine Contributor' Role-Based * Access Control (RBAC) role for the specified VNet so that Azure Batch * service can schedule Tasks on the Nodes. This can be verified by checking if * the specified VNet has any associated Network Security Groups (NSG). If * communication to the Nodes in the specified subnet is denied by an NSG, then * the Batch service will set the state of the Compute Nodes to unusable. This * is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [jobSchedulePatchParameter.jobSpecification.constraints] The * execution constraints for Jobs created under this schedule. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.constraints.maxTaskRetryCount] * The maximum number of times each 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 each * Task once, and may then retry up to this limit. For example, if the maximum * retry count is 3, Batch tries a Task up to 4 times (one initial try and 3 * retries). If the maximum retry count is 0, the Batch service does not retry * Tasks. If the maximum retry count is -1, the Batch service retries Tasks * without limit. The default value is 0 (no retries). * * @param {object} [jobSchedulePatchParameter.jobSpecification.jobManagerTask] * The details of a Job Manager Task to be launched when a Job is started under * this schedule. If the Job does not specify a Job Manager Task, the user must * explicitly add Tasks to the Job using the Task API. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. * * @param {string} jobSchedulePatchParameter.jobSpecification.jobManagerTask.id * A string that uniquely identifies the Job Manager Task within the Job. The * ID can contain any combination of alphanumeric characters including hyphens * and underscores and cannot contain more than 64 characters. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.displayName] The * display name of the Job Manager Task. It need not be unique and can contain * any Unicode characters up to a maximum length of 1024. * * @param {string} * jobSchedulePatchParameter.jobSpecification.jobManagerTask.commandLine The * command line of the Job Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.containerSettings] * The settings for the container under which the Job Manager Task runs. If the * Pool that will run this Task has containerConfiguration set, this must be * set as well. If the Pool that will run this Task doesn't have * containerConfiguration set, this must not be set. 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.resourceFiles] A * list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.outputFiles] A * list of files that the Batch service will upload from the Compute Node after * running the command line. For multi-instance Tasks, the files will only be * uploaded from the Compute Node on which the primary Task is executed. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.environmentSettings] * A list of environment variable settings for the Job Manager Task. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.constraints] * Constraints that apply to the Job Manager Task. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.killJobOnCompletion] * Whether completion of the Job Manager Task signifies completion of the * entire Job. If true, when the Job Manager Task completes, the Batch service * marks the Job as complete. If any Tasks are still running at this time * (other than Job Release), those Tasks are terminated. If false, the * completion of the Job Manager Task does not affect the Job status. In this * case, you should either use the onAllTasksComplete attribute to terminate * the Job, or have a client or user terminate the Job explicitly. An example * of this is if the Job Manager creates a set of Tasks but then takes no * further role in their execution. The default value is true. If you are using * the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, * and using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.userIdentity] The * user identity under which the Job Manager Task runs. If omitted, the Task * runs as a non-administrative user unique to the Task. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.runExclusive] * Whether the Job Manager Task requires exclusive use of the Compute Node * where it runs. If true, no other Tasks will run on the same Node for as long * as the Job Manager is running. If false, other Tasks can run simultaneously * with the Job Manager on a Compute Node. The Job Manager Task counts normally * against the Compute Node's concurrent Task limit, so this is only relevant * if the Compute Node allows multiple concurrent Tasks. The default value is * true. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.applicationPackageReferences] * A list of Application Packages that the Batch service will deploy to the * Compute Node before running the command line. Application Packages are * downloaded and deployed to a shared directory, not the Task working * directory. Therefore, if a referenced Application Package is already on the * Compute Node, and is up to date, then it is not re-downloaded; the existing * copy on the Compute Node is used. If a referenced Application Package cannot * be installed, for example because the package has been deleted or because * download failed, the Task fails. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.authenticationTokenSettings] * The settings for an authentication token that the Task can use to perform * Batch service operations. If this property is set, the Batch service * provides the Task with an authentication token which can be used to * authenticate Batch service operations without requiring an Account access * key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment * variable. The operations that the Task can carry out using the token depend * on the settings. For example, a Task can request Job permissions in order to * add other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.authenticationTokenSettings.access] * The Batch resources to which the token grants access. The authentication * token grants access to a limited set of Batch service operations. Currently * the only supported value for the access property is 'job', which grants * access to all operations related to the Job which contains the Task. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobManagerTask.allowLowPriorityNode] * Whether the Job Manager Task may run on a low-priority Compute Node. The * default value is true. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask] The Job * Preparation Task for Jobs created under this schedule. If a Job has a Job * Preparation Task, the Batch service will run the Job Preparation Task on a * Node before starting any Tasks of that Job on that Compute Node. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.id] A string * that uniquely identifies the Job Preparation Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobpreparation'. No other Task in the Job can have the same ID as the Job * Preparation Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobPreparationTask; * if you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * jobSchedulePatchParameter.jobSpecification.jobPreparationTask.commandLine * The command line of the Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.containerSettings] * The settings for the container under which the Job Preparation Task 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.resourceFiles] * A list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.environmentSettings] * A list of environment variable settings for the Job Preparation Task. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints] * Constraints that apply to the Job Preparation Task. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints.maxWallClockTime] * The maximum elapsed time that the Task may run, measured from the time the * Task starts. If the Task does not complete within the time limit, the Batch * service terminates it. If this is not specified, there is no time limit on * how long the Task may run. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.constraints.maxTaskRetryCount] * 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 for the Task executable due to a * nonzero exit code. 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 after the first * attempt. If the maximum retry count is -1, the Batch service retries the * Task without limit. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.waitForSuccess] * Whether the Batch service should wait for the Job Preparation Task to * complete successfully before scheduling any other Tasks of the Job on the * Compute Node. A Job Preparation Task has completed successfully if it exits * with exit code 0. If true and the Job Preparation Task fails on a Node, the * Batch service retries the Job Preparation Task up to its maximum retry count * (as specified in the constraints element). If the Task has still not * completed successfully after all retries, then the Batch service will not * schedule Tasks of the Job to the Node. The Node remains active and eligible * to run Tasks of other Jobs. If false, the Batch service will not wait for * the Job Preparation Task to complete. In this case, other Tasks of the Job * can start executing on the Compute Node while the Job Preparation Task is * still running; and even if the Job Preparation Task fails, new Tasks will * continue to be scheduled on the Compute Node. The default value is true. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.userIdentity] * The user identity under which the Job Preparation Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task on Windows Compute * Nodes, or a non-administrative user unique to the Pool on Linux Compute * Nodes. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [jobSchedulePatchParameter.jobSpecification.jobReleaseTask] * The Job Release Task for Jobs created under this schedule. The primary * purpose of the Job Release Task is to undo changes to Nodes made by the Job * Preparation Task. Example activities include deleting local files, or * shutting down services that were started as part of Job preparation. A Job * Release Task cannot be specified without also specifying a Job Preparation * Task for the Job. The Batch service runs the Job Release Task on the Compute * Nodes that have run the Job Preparation Task. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.id] A string that * uniquely identifies the Job Release Task within the Job. The ID can contain * any combination of alphanumeric characters including hyphens and underscores * and cannot contain more than 64 characters. If you do not specify this * property, the Batch service assigns a default value of 'jobrelease'. No * other Task in the Job can have the same ID as the Job Release Task. If you * try to submit a Task with the same id, the Batch service rejects the request * with error code TaskIdSameAsJobReleaseTask; if you are calling the REST API * directly, the HTTP status code is 409 (Conflict). * * @param {string} * jobSchedulePatchParameter.jobSpecification.jobReleaseTask.commandLine The * command line of the Job Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.containerSettings] * The settings for the container under which the Job Release Task 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.resourceFiles] 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.environmentSettings] * A list of environment variable settings for the Job Release Task. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.maxWallClockTime] * The maximum elapsed time that the Job Release Task may run on a given * Compute Node, measured from the time the Task starts. If the Task does not * complete within the time limit, the Batch service terminates it. The default * value is 15 minutes. You may not specify a timeout longer than 15 minutes. * If you do, the Batch service rejects it with an error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.retentionTime] * The minimum time to retain the Task directory for the Job Release Task on * the Compute Node. After this time, the Batch service may delete the Task * directory and all its contents. The default is 7 days, i.e. the Task * directory will be retained for 7 days unless the Compute Node is removed or * the Job is deleted. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.jobReleaseTask.userIdentity] The * user identity under which the Job Release Task runs. If omitted, the Task * runs as a non-administrative user unique to the Task. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.commonEnvironmentSettings] A * list of common environment variable settings. These environment variables * are set for all Tasks in Jobs created under this schedule (including the Job * Manager, Job Preparation and Job Release Tasks). Individual Tasks can * override an environment setting specified here by specifying the same * setting name with a different value. * * @param {object} jobSchedulePatchParameter.jobSpecification.poolInfo The Pool * on which the Batch service runs the Tasks of Jobs created under this * schedule. * * @param {string} [jobSchedulePatchParameter.jobSpecification.poolInfo.poolId] * The ID of an existing Pool. All the Tasks of the Job will run on the * specified Pool. You must ensure that the Pool referenced by this property * exists. If the Pool does not exist at the time the Batch service tries to * schedule a Job, no Tasks for the Job will run until you create a Pool with * that id. Note that the Batch service will not reject the Job request; it * will simply not run Tasks until the Pool exists. You must specify either the * Pool ID or the auto Pool specification, but not both. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.autoPoolIdPrefix] * A prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.poolLifetimeOption * The minimum lifetime of created auto Pools, and how multiple Jobs on a * schedule are assigned to Pools. Possible values include: 'jobSchedule', * 'job' * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.keepAlive] * Whether to keep an auto Pool alive after its lifetime expires. If false, the * Batch service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool] * The Pool specification for the auto Pool. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.displayName] * The display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.resizeTimeout] * The timeout for allocation of Compute Nodes to the Pool. This timeout * applies only to manual scaling; it has no effect when enableAutoScale is set * to true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask] * A Task to run on each Compute Node as it joins the Pool. The Task runs when * the Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.userAccounts] * The list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.metadata] * A list of name-value pairs associated with the Pool as metadata. The Batch * service does not assign any meaning to metadata; it is solely for the use of * user code. * * @param {array} * [jobSchedulePatchParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobSchedulePatchParameter.jobSpecification.metadata] A list * of name-value pairs associated with each Job created under this schedule as * metadata. The Batch service does not assign any meaning to metadata; it is * solely for the use of user code. * * @param {array} [jobSchedulePatchParameter.metadata] A list of name-value * pairs associated with the Job Schedule as metadata. If you do not specify * this element, existing metadata is left unchanged. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobSchedulePatchOptions] Additional parameters for * the operation * * @param {number} [options.jobSchedulePatchOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobSchedulePatchOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobSchedulePatchOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobSchedulePatchOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.jobSchedulePatchOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobSchedulePatchOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobSchedulePatchOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobSchedulePatchOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ patch(jobScheduleId: string, jobSchedulePatchParameter: models.JobSchedulePatchParameter, options?: { jobSchedulePatchOptions? : models.JobSchedulePatchOptions, customHeaders? : { [headerName: string]: string; } }): Promise; patch(jobScheduleId: string, jobSchedulePatchParameter: models.JobSchedulePatchParameter, callback: ServiceCallback): void; patch(jobScheduleId: string, jobSchedulePatchParameter: models.JobSchedulePatchParameter, options: { jobSchedulePatchOptions? : models.JobSchedulePatchOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the properties of the specified Job Schedule. * * This fully replaces all the updatable properties of the Job Schedule. For * example, if the schedule property is not specified with this request, then * the Batch service will remove the existing schedule. Changes to a Job * Schedule only impact Jobs created by the schedule after the update has taken * place; currently running Jobs are unaffected. * * @param {string} jobScheduleId The ID of the Job Schedule to update. * * @param {object} jobScheduleUpdateParameter The parameters for the request. * * @param {object} jobScheduleUpdateParameter.schedule The schedule according * to which Jobs will be created. If you do not specify this element, it is * equivalent to passing the default schedule: that is, a single Job scheduled * to run immediately. * * @param {date} [jobScheduleUpdateParameter.schedule.doNotRunUntil] The * earliest time at which any Job may be created under this Job Schedule. If * you do not specify a doNotRunUntil time, the schedule becomes ready to * create Jobs immediately. * * @param {date} [jobScheduleUpdateParameter.schedule.doNotRunAfter] A time * after which no Job will be created under this Job Schedule. The schedule * will move to the completed state as soon as this deadline is past and there * is no active Job under this Job Schedule. If you do not specify a * doNotRunAfter time, and you are creating a recurring Job Schedule, the Job * Schedule will remain active until you explicitly terminate it. * * @param {moment.duration} [jobScheduleUpdateParameter.schedule.startWindow] * The time interval, starting from the time at which the schedule indicates a * Job should be created, within which a Job must be created. If a Job is not * created within the startWindow interval, then the 'opportunity' is lost; no * Job will be created until the next recurrence of the schedule. If the * schedule is recurring, and the startWindow is longer than the recurrence * interval, then this is equivalent to an infinite startWindow, because the * Job that is 'due' in one recurrenceInterval is not carried forward into the * next recurrence interval. The default is infinite. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {moment.duration} * [jobScheduleUpdateParameter.schedule.recurrenceInterval] The time interval * between the start times of two successive Jobs under the Job Schedule. A Job * Schedule can have at most one active Job under it at any given time. Because * a Job Schedule can have at most one active Job under it at any given time, * if it is time to create a new Job under a Job Schedule, but the previous Job * is still running, the Batch service will not create the new Job until the * previous Job finishes. If the previous Job does not finish within the * startWindow period of the new recurrenceInterval, then no new Job will be * scheduled for that interval. For recurring Jobs, you should normally specify * a jobManagerTask in the jobSpecification. If you do not use jobManagerTask, * you will need an external process to monitor when Jobs are created, add * Tasks to the Jobs and terminate the Jobs ready for the next recurrence. The * default is that the schedule does not recur: one Job is created, within the * startWindow after the doNotRunUntil time, and the schedule is complete as * soon as that Job finishes. The minimum value is 1 minute. If you specify a * lower value, the Batch service rejects the schedule with an error; if you * are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {object} jobScheduleUpdateParameter.jobSpecification Details of the * Jobs to be created on this schedule. Updates affect only Jobs that are * started after the update has taken place. Any currently active Job continues * with the older specification. * * @param {number} [jobScheduleUpdateParameter.jobSpecification.priority] The * priority of Jobs created under this schedule. Priority values can range from * -1000 to 1000, with -1000 being the lowest priority and 1000 being the * highest priority. The default value is 0. This priority is used as the * default for all Jobs under the Job Schedule. You can update a Job's priority * after it has been created using by using the update Job API. * * @param {string} [jobScheduleUpdateParameter.jobSpecification.displayName] * The display name for Jobs created under this schedule. The name need not be * unique and can contain any Unicode characters up to a maximum length of * 1024. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.usesTaskDependencies] Whether * Tasks in the Job can define dependencies on each other. The default is * false. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.onAllTasksComplete] The action * the Batch service should take when all Tasks in a Job created under this * schedule are in the completed state. Note that if a Job contains no Tasks, * then all Tasks are considered complete. This option is therefore most * commonly used with a Job Manager task; if you want to use automatic Job * termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [jobScheduleUpdateParameter.jobSpecification.onTaskFailure] * The action the Batch service should take when any Task fails in a Job * created under this schedule. A Task is considered to have failed if it have * failed if has a failureInfo. A failureInfo is set if the Task completes with * a non-zero exit code after exhausting its retry count, or if there was an * error starting the Task, for example due to a resource file download error. * The default is noaction. Possible values include: 'noAction', * 'performExitOptionsJobAction' * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.networkConfiguration] The * network configuration for the Job. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.networkConfiguration.subnetId * The ARM resource identifier of the virtual network subnet which Compute * Nodes running Tasks from the Job will join for the duration of the Task. * This will only work with a VirtualMachineConfiguration Pool. The virtual * network must be in the same region and subscription as the Azure Batch * Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes which will run Tasks from the Job. * This can be up to the number of Compute Nodes in the Pool. The * 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual * Machine Contributor' Role-Based Access Control (RBAC) role for the specified * VNet so that Azure Batch service can schedule Tasks on the Nodes. This can * be verified by checking if the specified VNet has any associated Network * Security Groups (NSG). If communication to the Nodes in the specified subnet * is denied by an NSG, then the Batch service will set the state of the * Compute Nodes to unusable. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [jobScheduleUpdateParameter.jobSpecification.constraints] * The execution constraints for Jobs created under this schedule. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.constraints.maxTaskRetryCount] * The maximum number of times each 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 each * Task once, and may then retry up to this limit. For example, if the maximum * retry count is 3, Batch tries a Task up to 4 times (one initial try and 3 * retries). If the maximum retry count is 0, the Batch service does not retry * Tasks. If the maximum retry count is -1, the Batch service retries Tasks * without limit. The default value is 0 (no retries). * * @param {object} [jobScheduleUpdateParameter.jobSpecification.jobManagerTask] * The details of a Job Manager Task to be launched when a Job is started under * this schedule. If the Job does not specify a Job Manager Task, the user must * explicitly add Tasks to the Job using the Task API. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobManagerTask.id A string that * uniquely identifies the Job Manager Task within the Job. The ID can contain * any combination of alphanumeric characters including hyphens and underscores * and cannot contain more than 64 characters. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.displayName] The * display name of the Job Manager Task. It need not be unique and can contain * any Unicode characters up to a maximum length of 1024. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobManagerTask.commandLine The * command line of the Job Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.containerSettings] * The settings for the container under which the Job Manager Task runs. If the * Pool that will run this Task has containerConfiguration set, this must be * set as well. If the Pool that will run this Task doesn't have * containerConfiguration set, this must not be set. 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.resourceFiles] A * list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.outputFiles] A * list of files that the Batch service will upload from the Compute Node after * running the command line. For multi-instance Tasks, the files will only be * uploaded from the Compute Node on which the primary Task is executed. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.environmentSettings] * A list of environment variable settings for the Job Manager Task. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.constraints] * Constraints that apply to the Job Manager Task. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.killJobOnCompletion] * Whether completion of the Job Manager Task signifies completion of the * entire Job. If true, when the Job Manager Task completes, the Batch service * marks the Job as complete. If any Tasks are still running at this time * (other than Job Release), those Tasks are terminated. If false, the * completion of the Job Manager Task does not affect the Job status. In this * case, you should either use the onAllTasksComplete attribute to terminate * the Job, or have a client or user terminate the Job explicitly. An example * of this is if the Job Manager creates a set of Tasks but then takes no * further role in their execution. The default value is true. If you are using * the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, * and using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.userIdentity] * The user identity under which the Job Manager Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.runExclusive] * Whether the Job Manager Task requires exclusive use of the Compute Node * where it runs. If true, no other Tasks will run on the same Node for as long * as the Job Manager is running. If false, other Tasks can run simultaneously * with the Job Manager on a Compute Node. The Job Manager Task counts normally * against the Compute Node's concurrent Task limit, so this is only relevant * if the Compute Node allows multiple concurrent Tasks. The default value is * true. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.applicationPackageReferences] * A list of Application Packages that the Batch service will deploy to the * Compute Node before running the command line. Application Packages are * downloaded and deployed to a shared directory, not the Task working * directory. Therefore, if a referenced Application Package is already on the * Compute Node, and is up to date, then it is not re-downloaded; the existing * copy on the Compute Node is used. If a referenced Application Package cannot * be installed, for example because the package has been deleted or because * download failed, the Task fails. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.authenticationTokenSettings] * The settings for an authentication token that the Task can use to perform * Batch service operations. If this property is set, the Batch service * provides the Task with an authentication token which can be used to * authenticate Batch service operations without requiring an Account access * key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment * variable. The operations that the Task can carry out using the token depend * on the settings. For example, a Task can request Job permissions in order to * add other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.authenticationTokenSettings.access] * The Batch resources to which the token grants access. The authentication * token grants access to a limited set of Batch service operations. Currently * the only supported value for the access property is 'job', which grants * access to all operations related to the Job which contains the Task. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.allowLowPriorityNode] * Whether the Job Manager Task may run on a low-priority Compute Node. The * default value is true. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask] The Job * Preparation Task for Jobs created under this schedule. If a Job has a Job * Preparation Task, the Batch service will run the Job Preparation Task on a * Node before starting any Tasks of that Job on that Compute Node. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.id] A string * that uniquely identifies the Job Preparation Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobpreparation'. No other Task in the Job can have the same ID as the Job * Preparation Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobPreparationTask; * if you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.commandLine * The command line of the Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.containerSettings] * The settings for the container under which the Job Preparation Task 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.resourceFiles] * A list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.environmentSettings] * A list of environment variable settings for the Job Preparation Task. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints] * Constraints that apply to the Job Preparation Task. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints.maxWallClockTime] * The maximum elapsed time that the Task may run, measured from the time the * Task starts. If the Task does not complete within the time limit, the Batch * service terminates it. If this is not specified, there is no time limit on * how long the Task may run. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints.maxTaskRetryCount] * 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 for the Task executable due to a * nonzero exit code. 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 after the first * attempt. If the maximum retry count is -1, the Batch service retries the * Task without limit. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.waitForSuccess] * Whether the Batch service should wait for the Job Preparation Task to * complete successfully before scheduling any other Tasks of the Job on the * Compute Node. A Job Preparation Task has completed successfully if it exits * with exit code 0. If true and the Job Preparation Task fails on a Node, the * Batch service retries the Job Preparation Task up to its maximum retry count * (as specified in the constraints element). If the Task has still not * completed successfully after all retries, then the Batch service will not * schedule Tasks of the Job to the Node. The Node remains active and eligible * to run Tasks of other Jobs. If false, the Batch service will not wait for * the Job Preparation Task to complete. In this case, other Tasks of the Job * can start executing on the Compute Node while the Job Preparation Task is * still running; and even if the Job Preparation Task fails, new Tasks will * continue to be scheduled on the Compute Node. The default value is true. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.userIdentity] * The user identity under which the Job Preparation Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task on Windows Compute * Nodes, or a non-administrative user unique to the Pool on Linux Compute * Nodes. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask] * The Job Release Task for Jobs created under this schedule. The primary * purpose of the Job Release Task is to undo changes to Nodes made by the Job * Preparation Task. Example activities include deleting local files, or * shutting down services that were started as part of Job preparation. A Job * Release Task cannot be specified without also specifying a Job Preparation * Task for the Job. The Batch service runs the Job Release Task on the Compute * Nodes that have run the Job Preparation Task. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.id] A string * that uniquely identifies the Job Release Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobrelease'. No other Task in the Job can have the same ID as the Job * Release Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobReleaseTask; if * you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.commandLine The * command line of the Job Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.containerSettings] * The settings for the container under which the Job Release Task 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.resourceFiles] 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.environmentSettings] * A list of environment variable settings for the Job Release Task. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.maxWallClockTime] * The maximum elapsed time that the Job Release Task may run on a given * Compute Node, measured from the time the Task starts. If the Task does not * complete within the time limit, the Batch service terminates it. The default * value is 15 minutes. You may not specify a timeout longer than 15 minutes. * If you do, the Batch service rejects it with an error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.retentionTime] * The minimum time to retain the Task directory for the Job Release Task on * the Compute Node. After this time, the Batch service may delete the Task * directory and all its contents. The default is 7 days, i.e. the Task * directory will be retained for 7 days unless the Compute Node is removed or * the Job is deleted. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.userIdentity] * The user identity under which the Job Release Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.commonEnvironmentSettings] A * list of common environment variable settings. These environment variables * are set for all Tasks in Jobs created under this schedule (including the Job * Manager, Job Preparation and Job Release Tasks). Individual Tasks can * override an environment setting specified here by specifying the same * setting name with a different value. * * @param {object} jobScheduleUpdateParameter.jobSpecification.poolInfo The * Pool on which the Batch service runs the Tasks of Jobs created under this * schedule. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.poolId] The ID of an * existing Pool. All the Tasks of the Job will run on the specified Pool. You * must ensure that the Pool referenced by this property exists. If the Pool * does not exist at the time the Batch service tries to schedule a Job, no * Tasks for the Job will run until you create a Pool with that id. Note that * the Batch service will not reject the Job request; it will simply not run * Tasks until the Pool exists. You must specify either the Pool ID or the auto * Pool specification, but not both. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.autoPoolIdPrefix] * A prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.poolLifetimeOption * The minimum lifetime of created auto Pools, and how multiple Jobs on a * schedule are assigned to Pools. Possible values include: 'jobSchedule', * 'job' * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.keepAlive] * Whether to keep an auto Pool alive after its lifetime expires. If false, the * Batch service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool] * The Pool specification for the auto Pool. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.displayName] * The display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.resizeTimeout] * The timeout for allocation of Compute Nodes to the Pool. This timeout * applies only to manual scaling; it has no effect when enableAutoScale is set * to true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask] * A Task to run on each Compute Node as it joins the Pool. The Task runs when * the Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.userAccounts] * The list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.metadata] * A list of name-value pairs associated with the Pool as metadata. The Batch * service does not assign any meaning to metadata; it is solely for the use of * user code. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobScheduleUpdateParameter.jobSpecification.metadata] A list * of name-value pairs associated with each Job created under this schedule as * metadata. The Batch service does not assign any meaning to metadata; it is * solely for the use of user code. * * @param {array} [jobScheduleUpdateParameter.metadata] A list of name-value * pairs associated with the Job Schedule as metadata. If you do not specify * this element, it takes the default value of an empty list; in effect, any * existing metadata is deleted. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleUpdateOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleUpdateOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleUpdateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleUpdateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleUpdateOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleUpdateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleUpdateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleUpdateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleUpdateOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ updateWithHttpOperationResponse(jobScheduleId: string, jobScheduleUpdateParameter: models.JobScheduleUpdateParameter, options?: { jobScheduleUpdateOptions? : models.JobScheduleUpdateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the properties of the specified Job Schedule. * * This fully replaces all the updatable properties of the Job Schedule. For * example, if the schedule property is not specified with this request, then * the Batch service will remove the existing schedule. Changes to a Job * Schedule only impact Jobs created by the schedule after the update has taken * place; currently running Jobs are unaffected. * * @param {string} jobScheduleId The ID of the Job Schedule to update. * * @param {object} jobScheduleUpdateParameter The parameters for the request. * * @param {object} jobScheduleUpdateParameter.schedule The schedule according * to which Jobs will be created. If you do not specify this element, it is * equivalent to passing the default schedule: that is, a single Job scheduled * to run immediately. * * @param {date} [jobScheduleUpdateParameter.schedule.doNotRunUntil] The * earliest time at which any Job may be created under this Job Schedule. If * you do not specify a doNotRunUntil time, the schedule becomes ready to * create Jobs immediately. * * @param {date} [jobScheduleUpdateParameter.schedule.doNotRunAfter] A time * after which no Job will be created under this Job Schedule. The schedule * will move to the completed state as soon as this deadline is past and there * is no active Job under this Job Schedule. If you do not specify a * doNotRunAfter time, and you are creating a recurring Job Schedule, the Job * Schedule will remain active until you explicitly terminate it. * * @param {moment.duration} [jobScheduleUpdateParameter.schedule.startWindow] * The time interval, starting from the time at which the schedule indicates a * Job should be created, within which a Job must be created. If a Job is not * created within the startWindow interval, then the 'opportunity' is lost; no * Job will be created until the next recurrence of the schedule. If the * schedule is recurring, and the startWindow is longer than the recurrence * interval, then this is equivalent to an infinite startWindow, because the * Job that is 'due' in one recurrenceInterval is not carried forward into the * next recurrence interval. The default is infinite. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {moment.duration} * [jobScheduleUpdateParameter.schedule.recurrenceInterval] The time interval * between the start times of two successive Jobs under the Job Schedule. A Job * Schedule can have at most one active Job under it at any given time. Because * a Job Schedule can have at most one active Job under it at any given time, * if it is time to create a new Job under a Job Schedule, but the previous Job * is still running, the Batch service will not create the new Job until the * previous Job finishes. If the previous Job does not finish within the * startWindow period of the new recurrenceInterval, then no new Job will be * scheduled for that interval. For recurring Jobs, you should normally specify * a jobManagerTask in the jobSpecification. If you do not use jobManagerTask, * you will need an external process to monitor when Jobs are created, add * Tasks to the Jobs and terminate the Jobs ready for the next recurrence. The * default is that the schedule does not recur: one Job is created, within the * startWindow after the doNotRunUntil time, and the schedule is complete as * soon as that Job finishes. The minimum value is 1 minute. If you specify a * lower value, the Batch service rejects the schedule with an error; if you * are calling the REST API directly, the HTTP status code is 400 (Bad * Request). * * @param {object} jobScheduleUpdateParameter.jobSpecification Details of the * Jobs to be created on this schedule. Updates affect only Jobs that are * started after the update has taken place. Any currently active Job continues * with the older specification. * * @param {number} [jobScheduleUpdateParameter.jobSpecification.priority] The * priority of Jobs created under this schedule. Priority values can range from * -1000 to 1000, with -1000 being the lowest priority and 1000 being the * highest priority. The default value is 0. This priority is used as the * default for all Jobs under the Job Schedule. You can update a Job's priority * after it has been created using by using the update Job API. * * @param {string} [jobScheduleUpdateParameter.jobSpecification.displayName] * The display name for Jobs created under this schedule. The name need not be * unique and can contain any Unicode characters up to a maximum length of * 1024. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.usesTaskDependencies] Whether * Tasks in the Job can define dependencies on each other. The default is * false. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.onAllTasksComplete] The action * the Batch service should take when all Tasks in a Job created under this * schedule are in the completed state. Note that if a Job contains no Tasks, * then all Tasks are considered complete. This option is therefore most * commonly used with a Job Manager task; if you want to use automatic Job * termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [jobScheduleUpdateParameter.jobSpecification.onTaskFailure] * The action the Batch service should take when any Task fails in a Job * created under this schedule. A Task is considered to have failed if it have * failed if has a failureInfo. A failureInfo is set if the Task completes with * a non-zero exit code after exhausting its retry count, or if there was an * error starting the Task, for example due to a resource file download error. * The default is noaction. Possible values include: 'noAction', * 'performExitOptionsJobAction' * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.networkConfiguration] The * network configuration for the Job. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.networkConfiguration.subnetId * The ARM resource identifier of the virtual network subnet which Compute * Nodes running Tasks from the Job will join for the duration of the Task. * This will only work with a VirtualMachineConfiguration Pool. The virtual * network must be in the same region and subscription as the Azure Batch * Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes which will run Tasks from the Job. * This can be up to the number of Compute Nodes in the Pool. The * 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual * Machine Contributor' Role-Based Access Control (RBAC) role for the specified * VNet so that Azure Batch service can schedule Tasks on the Nodes. This can * be verified by checking if the specified VNet has any associated Network * Security Groups (NSG). If communication to the Nodes in the specified subnet * is denied by an NSG, then the Batch service will set the state of the * Compute Nodes to unusable. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [jobScheduleUpdateParameter.jobSpecification.constraints] * The execution constraints for Jobs created under this schedule. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.constraints.maxWallClockTime] * The maximum elapsed time that the Job may run, measured from the time the * Job is created. If the Job does not complete within the time limit, the * Batch service terminates it and any Tasks that are still running. In this * case, the termination reason will be MaxWallClockTimeExpiry. If this * property is not specified, there is no time limit on how long the Job may * run. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.constraints.maxTaskRetryCount] * The maximum number of times each 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 each * Task once, and may then retry up to this limit. For example, if the maximum * retry count is 3, Batch tries a Task up to 4 times (one initial try and 3 * retries). If the maximum retry count is 0, the Batch service does not retry * Tasks. If the maximum retry count is -1, the Batch service retries Tasks * without limit. The default value is 0 (no retries). * * @param {object} [jobScheduleUpdateParameter.jobSpecification.jobManagerTask] * The details of a Job Manager Task to be launched when a Job is started under * this schedule. If the Job does not specify a Job Manager Task, the user must * explicitly add Tasks to the Job using the Task API. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobManagerTask.id A string that * uniquely identifies the Job Manager Task within the Job. The ID can contain * any combination of alphanumeric characters including hyphens and underscores * and cannot contain more than 64 characters. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.displayName] The * display name of the Job Manager Task. It need not be unique and can contain * any Unicode characters up to a maximum length of 1024. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobManagerTask.commandLine The * command line of the Job Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.containerSettings] * The settings for the container under which the Job Manager Task runs. If the * Pool that will run this Task has containerConfiguration set, this must be * set as well. If the Pool that will run this Task doesn't have * containerConfiguration set, this must not be set. 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.resourceFiles] A * list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.outputFiles] A * list of files that the Batch service will upload from the Compute Node after * running the command line. For multi-instance Tasks, the files will only be * uploaded from the Compute Node on which the primary Task is executed. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.environmentSettings] * A list of environment variable settings for the Job Manager Task. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.constraints] * Constraints that apply to the Job Manager Task. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.killJobOnCompletion] * Whether completion of the Job Manager Task signifies completion of the * entire Job. If true, when the Job Manager Task completes, the Batch service * marks the Job as complete. If any Tasks are still running at this time * (other than Job Release), those Tasks are terminated. If false, the * completion of the Job Manager Task does not affect the Job status. In this * case, you should either use the onAllTasksComplete attribute to terminate * the Job, or have a client or user terminate the Job explicitly. An example * of this is if the Job Manager creates a set of Tasks but then takes no * further role in their execution. The default value is true. If you are using * the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, * and using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.userIdentity] * The user identity under which the Job Manager Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.runExclusive] * Whether the Job Manager Task requires exclusive use of the Compute Node * where it runs. If true, no other Tasks will run on the same Node for as long * as the Job Manager is running. If false, other Tasks can run simultaneously * with the Job Manager on a Compute Node. The Job Manager Task counts normally * against the Compute Node's concurrent Task limit, so this is only relevant * if the Compute Node allows multiple concurrent Tasks. The default value is * true. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.applicationPackageReferences] * A list of Application Packages that the Batch service will deploy to the * Compute Node before running the command line. Application Packages are * downloaded and deployed to a shared directory, not the Task working * directory. Therefore, if a referenced Application Package is already on the * Compute Node, and is up to date, then it is not re-downloaded; the existing * copy on the Compute Node is used. If a referenced Application Package cannot * be installed, for example because the package has been deleted or because * download failed, the Task fails. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.authenticationTokenSettings] * The settings for an authentication token that the Task can use to perform * Batch service operations. If this property is set, the Batch service * provides the Task with an authentication token which can be used to * authenticate Batch service operations without requiring an Account access * key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment * variable. The operations that the Task can carry out using the token depend * on the settings. For example, a Task can request Job permissions in order to * add other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.authenticationTokenSettings.access] * The Batch resources to which the token grants access. The authentication * token grants access to a limited set of Batch service operations. Currently * the only supported value for the access property is 'job', which grants * access to all operations related to the Job which contains the Task. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobManagerTask.allowLowPriorityNode] * Whether the Job Manager Task may run on a low-priority Compute Node. The * default value is true. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask] The Job * Preparation Task for Jobs created under this schedule. If a Job has a Job * Preparation Task, the Batch service will run the Job Preparation Task on a * Node before starting any Tasks of that Job on that Compute Node. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.id] A string * that uniquely identifies the Job Preparation Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobpreparation'. No other Task in the Job can have the same ID as the Job * Preparation Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobPreparationTask; * if you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.commandLine * The command line of the Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.containerSettings] * The settings for the container under which the Job Preparation Task 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.resourceFiles] * A list of files that the Batch service will download to the Compute Node * before running the command line. Files listed under this element are located * in the Task's working directory. 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.environmentSettings] * A list of environment variable settings for the Job Preparation Task. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints] * Constraints that apply to the Job Preparation Task. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints.maxWallClockTime] * The maximum elapsed time that the Task may run, measured from the time the * Task starts. If the Task does not complete within the time limit, the Batch * service terminates it. If this is not specified, there is no time limit on * how long the Task may run. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.constraints.maxTaskRetryCount] * 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 for the Task executable due to a * nonzero exit code. 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 after the first * attempt. If the maximum retry count is -1, the Batch service retries the * Task without limit. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.waitForSuccess] * Whether the Batch service should wait for the Job Preparation Task to * complete successfully before scheduling any other Tasks of the Job on the * Compute Node. A Job Preparation Task has completed successfully if it exits * with exit code 0. If true and the Job Preparation Task fails on a Node, the * Batch service retries the Job Preparation Task up to its maximum retry count * (as specified in the constraints element). If the Task has still not * completed successfully after all retries, then the Batch service will not * schedule Tasks of the Job to the Node. The Node remains active and eligible * to run Tasks of other Jobs. If false, the Batch service will not wait for * the Job Preparation Task to complete. In this case, other Tasks of the Job * can start executing on the Compute Node while the Job Preparation Task is * still running; and even if the Job Preparation Task fails, new Tasks will * continue to be scheduled on the Compute Node. The default value is true. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.userIdentity] * The user identity under which the Job Preparation Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task on Windows Compute * Nodes, or a non-administrative user unique to the Pool on Linux Compute * Nodes. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask] * The Job Release Task for Jobs created under this schedule. The primary * purpose of the Job Release Task is to undo changes to Nodes made by the Job * Preparation Task. Example activities include deleting local files, or * shutting down services that were started as part of Job preparation. A Job * Release Task cannot be specified without also specifying a Job Preparation * Task for the Job. The Batch service runs the Job Release Task on the Compute * Nodes that have run the Job Preparation Task. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.id] A string * that uniquely identifies the Job Release Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobrelease'. No other Task in the Job can have the same ID as the Job * Release Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobReleaseTask; if * you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.commandLine The * command line of the Job Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.containerSettings] * The settings for the container under which the Job Release Task 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.resourceFiles] 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.environmentSettings] * A list of environment variable settings for the Job Release Task. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.maxWallClockTime] * The maximum elapsed time that the Job Release Task may run on a given * Compute Node, measured from the time the Task starts. If the Task does not * complete within the time limit, the Batch service terminates it. The default * value is 15 minutes. You may not specify a timeout longer than 15 minutes. * If you do, the Batch service rejects it with an error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.retentionTime] * The minimum time to retain the Task directory for the Job Release Task on * the Compute Node. After this time, the Batch service may delete the Task * directory and all its contents. The default is 7 days, i.e. the Task * directory will be retained for 7 days unless the Compute Node is removed or * the Job is deleted. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.jobReleaseTask.userIdentity] * The user identity under which the Job Release Task runs. If omitted, the * Task runs as a non-administrative user unique to the Task. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.commonEnvironmentSettings] A * list of common environment variable settings. These environment variables * are set for all Tasks in Jobs created under this schedule (including the Job * Manager, Job Preparation and Job Release Tasks). Individual Tasks can * override an environment setting specified here by specifying the same * setting name with a different value. * * @param {object} jobScheduleUpdateParameter.jobSpecification.poolInfo The * Pool on which the Batch service runs the Tasks of Jobs created under this * schedule. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.poolId] The ID of an * existing Pool. All the Tasks of the Job will run on the specified Pool. You * must ensure that the Pool referenced by this property exists. If the Pool * does not exist at the time the Batch service tries to schedule a Job, no * Tasks for the Job will run until you create a Pool with that id. Note that * the Batch service will not reject the Job request; it will simply not run * Tasks until the Pool exists. You must specify either the Pool ID or the auto * Pool specification, but not both. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.autoPoolIdPrefix] * A prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.poolLifetimeOption * The minimum lifetime of created auto Pools, and how multiple Jobs on a * schedule are assigned to Pools. Possible values include: 'jobSchedule', * 'job' * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.keepAlive] * Whether to keep an auto Pool alive after its lifetime expires. If false, the * Batch service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool] * The Pool specification for the auto Pool. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.displayName] * The display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.resizeTimeout] * The timeout for allocation of Compute Nodes to the Pool. This timeout * applies only to manual scaling; it has no effect when enableAutoScale is set * to true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask] * A Task to run on each Compute Node as it joins the Pool. The Task runs when * the Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.userAccounts] * The list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.metadata] * A list of name-value pairs associated with the Pool as metadata. The Batch * service does not assign any meaning to metadata; it is solely for the use of * user code. * * @param {array} * [jobScheduleUpdateParameter.jobSpecification.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [jobScheduleUpdateParameter.jobSpecification.metadata] A list * of name-value pairs associated with each Job created under this schedule as * metadata. The Batch service does not assign any meaning to metadata; it is * solely for the use of user code. * * @param {array} [jobScheduleUpdateParameter.metadata] A list of name-value * pairs associated with the Job Schedule as metadata. If you do not specify * this element, it takes the default value of an empty list; in effect, any * existing metadata is deleted. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleUpdateOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleUpdateOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleUpdateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleUpdateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleUpdateOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleUpdateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleUpdateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleUpdateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleUpdateOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ update(jobScheduleId: string, jobScheduleUpdateParameter: models.JobScheduleUpdateParameter, options?: { jobScheduleUpdateOptions? : models.JobScheduleUpdateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; update(jobScheduleId: string, jobScheduleUpdateParameter: models.JobScheduleUpdateParameter, callback: ServiceCallback): void; update(jobScheduleId: string, jobScheduleUpdateParameter: models.JobScheduleUpdateParameter, options: { jobScheduleUpdateOptions? : models.JobScheduleUpdateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Disables a Job Schedule. * * No new Jobs will be created until the Job Schedule is enabled again. * * @param {string} jobScheduleId The ID of the Job Schedule to disable. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleDisableOptions] Additional parameters * for the operation * * @param {number} [options.jobScheduleDisableOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleDisableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleDisableOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleDisableOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleDisableOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleDisableOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleDisableOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.jobScheduleDisableOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ disableWithHttpOperationResponse(jobScheduleId: string, options?: { jobScheduleDisableOptions? : models.JobScheduleDisableOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Disables a Job Schedule. * * No new Jobs will be created until the Job Schedule is enabled again. * * @param {string} jobScheduleId The ID of the Job Schedule to disable. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleDisableOptions] Additional parameters * for the operation * * @param {number} [options.jobScheduleDisableOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleDisableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleDisableOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleDisableOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleDisableOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleDisableOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleDisableOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.jobScheduleDisableOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ disable(jobScheduleId: string, options?: { jobScheduleDisableOptions? : models.JobScheduleDisableOptions, customHeaders? : { [headerName: string]: string; } }): Promise; disable(jobScheduleId: string, callback: ServiceCallback): void; disable(jobScheduleId: string, options: { jobScheduleDisableOptions? : models.JobScheduleDisableOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Enables a Job Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule to enable. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleEnableOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleEnableOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleEnableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleEnableOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleEnableOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleEnableOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleEnableOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleEnableOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleEnableOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ enableWithHttpOperationResponse(jobScheduleId: string, options?: { jobScheduleEnableOptions? : models.JobScheduleEnableOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Enables a Job Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule to enable. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleEnableOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleEnableOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleEnableOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleEnableOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleEnableOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleEnableOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleEnableOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleEnableOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.jobScheduleEnableOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ enable(jobScheduleId: string, options?: { jobScheduleEnableOptions? : models.JobScheduleEnableOptions, customHeaders? : { [headerName: string]: string; } }): Promise; enable(jobScheduleId: string, callback: ServiceCallback): void; enable(jobScheduleId: string, options: { jobScheduleEnableOptions? : models.JobScheduleEnableOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Terminates a Job Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule to terminates. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleTerminateOptions] Additional parameters * for the operation * * @param {number} [options.jobScheduleTerminateOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.jobScheduleTerminateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleTerminateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleTerminateOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleTerminateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleTerminateOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleTerminateOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.jobScheduleTerminateOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ terminateWithHttpOperationResponse(jobScheduleId: string, options?: { jobScheduleTerminateOptions? : models.JobScheduleTerminateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Terminates a Job Schedule. * * @param {string} jobScheduleId The ID of the Job Schedule to terminates. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleTerminateOptions] Additional parameters * for the operation * * @param {number} [options.jobScheduleTerminateOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.jobScheduleTerminateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleTerminateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleTerminateOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {string} [options.jobScheduleTerminateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.jobScheduleTerminateOptions.ifNoneMatch] An ETag * value associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.jobScheduleTerminateOptions.ifModifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has been modified since the specified time. * * @param {date} [options.jobScheduleTerminateOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ terminate(jobScheduleId: string, options?: { jobScheduleTerminateOptions? : models.JobScheduleTerminateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; terminate(jobScheduleId: string, callback: ServiceCallback): void; terminate(jobScheduleId: string, options: { jobScheduleTerminateOptions? : models.JobScheduleTerminateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Adds a Job Schedule to the specified Account. * * @param {object} cloudJobSchedule The Job Schedule to be added. * * @param {string} cloudJobSchedule.id A string that uniquely identifies the * schedule 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). * * @param {string} [cloudJobSchedule.displayName] The display name for the * schedule. The display name need not be unique and can contain any Unicode * characters up to a maximum length of 1024. * * @param {object} cloudJobSchedule.schedule The schedule according to which * Jobs will be created. * * @param {date} [cloudJobSchedule.schedule.doNotRunUntil] The earliest time at * which any Job may be created under this Job Schedule. If you do not specify * a doNotRunUntil time, the schedule becomes ready to create Jobs immediately. * * @param {date} [cloudJobSchedule.schedule.doNotRunAfter] A time after which * no Job will be created under this Job Schedule. The schedule will move to * the completed state as soon as this deadline is past and there is no active * Job under this Job Schedule. If you do not specify a doNotRunAfter time, and * you are creating a recurring Job Schedule, the Job Schedule will remain * active until you explicitly terminate it. * * @param {moment.duration} [cloudJobSchedule.schedule.startWindow] The time * interval, starting from the time at which the schedule indicates a Job * should be created, within which a Job must be created. If a Job is not * created within the startWindow interval, then the 'opportunity' is lost; no * Job will be created until the next recurrence of the schedule. If the * schedule is recurring, and the startWindow is longer than the recurrence * interval, then this is equivalent to an infinite startWindow, because the * Job that is 'due' in one recurrenceInterval is not carried forward into the * next recurrence interval. The default is infinite. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {moment.duration} [cloudJobSchedule.schedule.recurrenceInterval] The * time interval between the start times of two successive Jobs under the Job * Schedule. A Job Schedule can have at most one active Job under it at any * given time. Because a Job Schedule can have at most one active Job under it * at any given time, if it is time to create a new Job under a Job Schedule, * but the previous Job is still running, the Batch service will not create the * new Job until the previous Job finishes. If the previous Job does not finish * within the startWindow period of the new recurrenceInterval, then no new Job * will be scheduled for that interval. For recurring Jobs, you should normally * specify a jobManagerTask in the jobSpecification. If you do not use * jobManagerTask, you will need an external process to monitor when Jobs are * created, add Tasks to the Jobs and terminate the Jobs ready for the next * recurrence. The default is that the schedule does not recur: one Job is * created, within the startWindow after the doNotRunUntil time, and the * schedule is complete as soon as that Job finishes. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} cloudJobSchedule.jobSpecification The details of the Jobs to * be created on this schedule. * * @param {number} [cloudJobSchedule.jobSpecification.priority] The priority of * Jobs created under this schedule. Priority values can range from -1000 to * 1000, with -1000 being the lowest priority and 1000 being the highest * priority. The default value is 0. This priority is used as the default for * all Jobs under the Job Schedule. You can update a Job's priority after it * has been created using by using the update Job API. * * @param {string} [cloudJobSchedule.jobSpecification.displayName] The display * name for Jobs created under this schedule. The name need not be unique and * can contain any Unicode characters up to a maximum length of 1024. * * @param {boolean} [cloudJobSchedule.jobSpecification.usesTaskDependencies] * Whether Tasks in the Job can define dependencies on each other. The default * is false. * * @param {string} [cloudJobSchedule.jobSpecification.onAllTasksComplete] The * action the Batch service should take when all Tasks in a Job created under * this schedule are in the completed state. Note that if a Job contains no * Tasks, then all Tasks are considered complete. This option is therefore most * commonly used with a Job Manager task; if you want to use automatic Job * termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [cloudJobSchedule.jobSpecification.onTaskFailure] The action * the Batch service should take when any Task fails in a Job created under * this schedule. A Task is considered to have failed if it have failed if has * a failureInfo. A failureInfo is set if the Task completes with a non-zero * exit code after exhausting its retry count, or if there was an error * starting the Task, for example due to a resource file download error. The * default is noaction. Possible values include: 'noAction', * 'performExitOptionsJobAction' * * @param {object} [cloudJobSchedule.jobSpecification.networkConfiguration] The * network configuration for the Job. * * @param {string} * cloudJobSchedule.jobSpecification.networkConfiguration.subnetId The ARM * resource identifier of the virtual network subnet which Compute Nodes * running Tasks from the Job will join for the duration of the Task. This will * only work with a VirtualMachineConfiguration Pool. The virtual network must * be in the same region and subscription as the Azure Batch Account. The * specified subnet should have enough free IP addresses to accommodate the * number of Compute Nodes which will run Tasks from the Job. This can be up to * the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service * principal must have the 'Classic Virtual Machine Contributor' Role-Based * Access Control (RBAC) role for the specified VNet so that Azure Batch * service can schedule Tasks on the Nodes. This can be verified by checking if * the specified VNet has any associated Network Security Groups (NSG). If * communication to the Nodes in the specified subnet is denied by an NSG, then * the Batch service will set the state of the Compute Nodes to unusable. This * is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [cloudJobSchedule.jobSpecification.constraints] The * execution constraints for Jobs created under this schedule. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.constraints.maxWallClockTime] The maximum * elapsed time that the Job may run, measured from the time the Job is * created. If the Job does not complete within the time limit, the Batch * service terminates it and any Tasks that are still running. In this case, * the termination reason will be MaxWallClockTimeExpiry. If this property is * not specified, there is no time limit on how long the Job may run. * * @param {number} * [cloudJobSchedule.jobSpecification.constraints.maxTaskRetryCount] The * maximum number of times each 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 each Task once, * and may then retry up to this limit. For example, if the maximum retry count * is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If * the maximum retry count is 0, the Batch service does not retry Tasks. If the * maximum retry count is -1, the Batch service retries Tasks without limit. * The default value is 0 (no retries). * * @param {object} [cloudJobSchedule.jobSpecification.jobManagerTask] The * details of a Job Manager Task to be launched when a Job is started under * this schedule. If the Job does not specify a Job Manager Task, the user must * explicitly add Tasks to the Job using the Task API. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. * * @param {string} cloudJobSchedule.jobSpecification.jobManagerTask.id A string * that uniquely identifies the Job Manager Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. * * @param {string} * [cloudJobSchedule.jobSpecification.jobManagerTask.displayName] The display * name of the Job Manager Task. It need not be unique and can contain any * Unicode characters up to a maximum length of 1024. * * @param {string} cloudJobSchedule.jobSpecification.jobManagerTask.commandLine * The command line of the Job Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.containerSettings] The * settings for the container under which the Job Manager Task runs. If the * Pool that will run this Task has containerConfiguration set, this must be * set as well. If the Pool that will run this Task doesn't have * containerConfiguration set, this must not be set. 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.resourceFiles] A list of * files that the Batch service will download to the Compute Node before * running the command line. Files listed under this element are located in the * Task's working directory. 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.outputFiles] A list of * files that the Batch service will upload from the Compute Node after running * the command line. For multi-instance Tasks, the files will only be uploaded * from the Compute Node on which the primary Task is executed. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.environmentSettings] A * list of environment variable settings for the Job Manager Task. * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.constraints] Constraints * that apply to the Job Manager Task. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobManagerTask.killJobOnCompletion] * Whether completion of the Job Manager Task signifies completion of the * entire Job. If true, when the Job Manager Task completes, the Batch service * marks the Job as complete. If any Tasks are still running at this time * (other than Job Release), those Tasks are terminated. If false, the * completion of the Job Manager Task does not affect the Job status. In this * case, you should either use the onAllTasksComplete attribute to terminate * the Job, or have a client or user terminate the Job explicitly. An example * of this is if the Job Manager creates a set of Tasks but then takes no * further role in their execution. The default value is true. If you are using * the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, * and using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.userIdentity] The user * identity under which the Job Manager Task runs. If omitted, the Task runs as * a non-administrative user unique to the Task. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobManagerTask.runExclusive] Whether the * Job Manager Task requires exclusive use of the Compute Node where it runs. * If true, no other Tasks will run on the same Node for as long as the Job * Manager is running. If false, other Tasks can run simultaneously with the * Job Manager on a Compute Node. The Job Manager Task counts normally against * the Compute Node's concurrent Task limit, so this is only relevant if the * Compute Node allows multiple concurrent Tasks. The default value is true. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.applicationPackageReferences] * A list of Application Packages that the Batch service will deploy to the * Compute Node before running the command line. Application Packages are * downloaded and deployed to a shared directory, not the Task working * directory. Therefore, if a referenced Application Package is already on the * Compute Node, and is up to date, then it is not re-downloaded; the existing * copy on the Compute Node is used. If a referenced Application Package cannot * be installed, for example because the package has been deleted or because * download failed, the Task fails. * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.authenticationTokenSettings] * The settings for an authentication token that the Task can use to perform * Batch service operations. If this property is set, the Batch service * provides the Task with an authentication token which can be used to * authenticate Batch service operations without requiring an Account access * key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment * variable. The operations that the Task can carry out using the token depend * on the settings. For example, a Task can request Job permissions in order to * add other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.authenticationTokenSettings.access] * The Batch resources to which the token grants access. The authentication * token grants access to a limited set of Batch service operations. Currently * the only supported value for the access property is 'job', which grants * access to all operations related to the Job which contains the Task. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobManagerTask.allowLowPriorityNode] * Whether the Job Manager Task may run on a low-priority Compute Node. The * default value is true. * * @param {object} [cloudJobSchedule.jobSpecification.jobPreparationTask] The * Job Preparation Task for Jobs created under this schedule. If a Job has a * Job Preparation Task, the Batch service will run the Job Preparation Task on * a Node before starting any Tasks of that Job on that Compute Node. * * @param {string} [cloudJobSchedule.jobSpecification.jobPreparationTask.id] A * string that uniquely identifies the Job Preparation Task within the Job. The * ID can contain any combination of alphanumeric characters including hyphens * and underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobpreparation'. No other Task in the Job can have the same ID as the Job * Preparation Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobPreparationTask; * if you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * cloudJobSchedule.jobSpecification.jobPreparationTask.commandLine The command * line of the Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.jobPreparationTask.containerSettings] The * settings for the container under which the Job Preparation Task 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobPreparationTask.resourceFiles] A list * of files that the Batch service will download to the Compute Node before * running the command line. Files listed under this element are located in the * Task's working directory. 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobPreparationTask.environmentSettings] A * list of environment variable settings for the Job Preparation Task. * * @param {object} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints] * Constraints that apply to the Job Preparation Task. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints.maxWallClockTime] * The maximum elapsed time that the Task may run, measured from the time the * Task starts. If the Task does not complete within the time limit, the Batch * service terminates it. If this is not specified, there is no time limit on * how long the Task may run. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints.maxTaskRetryCount] * 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 for the Task executable due to a * nonzero exit code. 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 after the first * attempt. If the maximum retry count is -1, the Batch service retries the * Task without limit. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobPreparationTask.waitForSuccess] * Whether the Batch service should wait for the Job Preparation Task to * complete successfully before scheduling any other Tasks of the Job on the * Compute Node. A Job Preparation Task has completed successfully if it exits * with exit code 0. If true and the Job Preparation Task fails on a Node, the * Batch service retries the Job Preparation Task up to its maximum retry count * (as specified in the constraints element). If the Task has still not * completed successfully after all retries, then the Batch service will not * schedule Tasks of the Job to the Node. The Node remains active and eligible * to run Tasks of other Jobs. If false, the Batch service will not wait for * the Job Preparation Task to complete. In this case, other Tasks of the Job * can start executing on the Compute Node while the Job Preparation Task is * still running; and even if the Job Preparation Task fails, new Tasks will * continue to be scheduled on the Compute Node. The default value is true. * * @param {object} * [cloudJobSchedule.jobSpecification.jobPreparationTask.userIdentity] The user * identity under which the Job Preparation Task runs. If omitted, the Task * runs as a non-administrative user unique to the Task on Windows Compute * Nodes, or a non-administrative user unique to the Pool on Linux Compute * Nodes. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [cloudJobSchedule.jobSpecification.jobReleaseTask] The Job * Release Task for Jobs created under this schedule. The primary purpose of * the Job Release Task is to undo changes to Nodes made by the Job Preparation * Task. Example activities include deleting local files, or shutting down * services that were started as part of Job preparation. A Job Release Task * cannot be specified without also specifying a Job Preparation Task for the * Job. The Batch service runs the Job Release Task on the Compute Nodes that * have run the Job Preparation Task. * * @param {string} [cloudJobSchedule.jobSpecification.jobReleaseTask.id] A * string that uniquely identifies the Job Release Task within the Job. The ID * can contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobrelease'. No other Task in the Job can have the same ID as the Job * Release Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobReleaseTask; if * you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} cloudJobSchedule.jobSpecification.jobReleaseTask.commandLine * The command line of the Job Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.jobReleaseTask.containerSettings] The * settings for the container under which the Job Release Task 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobReleaseTask.resourceFiles] 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobReleaseTask.environmentSettings] A * list of environment variable settings for the Job Release Task. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobReleaseTask.maxWallClockTime] The * maximum elapsed time that the Job Release Task may run on a given Compute * Node, measured from the time the Task starts. If the Task does not complete * within the time limit, the Batch service terminates it. The default value is * 15 minutes. You may not specify a timeout longer than 15 minutes. If you do, * the Batch service rejects it with an error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobReleaseTask.retentionTime] The minimum * time to retain the Task directory for the Job Release Task on the Compute * Node. After this time, the Batch service may delete the Task directory and * all its contents. The default is 7 days, i.e. the Task directory will be * retained for 7 days unless the Compute Node is removed or the Job is * deleted. * * @param {object} * [cloudJobSchedule.jobSpecification.jobReleaseTask.userIdentity] The user * identity under which the Job Release Task runs. If omitted, the Task runs as * a non-administrative user unique to the Task. * * @param {array} [cloudJobSchedule.jobSpecification.commonEnvironmentSettings] * A list of common environment variable settings. These environment variables * are set for all Tasks in Jobs created under this schedule (including the Job * Manager, Job Preparation and Job Release Tasks). Individual Tasks can * override an environment setting specified here by specifying the same * setting name with a different value. * * @param {object} cloudJobSchedule.jobSpecification.poolInfo The Pool on which * the Batch service runs the Tasks of Jobs created under this schedule. * * @param {string} [cloudJobSchedule.jobSpecification.poolInfo.poolId] The ID * of an existing Pool. All the Tasks of the Job will run on the specified * Pool. You must ensure that the Pool referenced by this property exists. If * the Pool does not exist at the time the Batch service tries to schedule a * Job, no Tasks for the Job will run until you create a Pool with that id. * Note that the Batch service will not reject the Job request; it will simply * not run Tasks until the Pool exists. You must specify either the Pool ID or * the auto Pool specification, but not both. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.autoPoolIdPrefix] * A prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.poolLifetimeOption * The minimum lifetime of created auto Pools, and how multiple Jobs on a * schedule are assigned to Pools. Possible values include: 'jobSchedule', * 'job' * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.keepAlive] * Whether to keep an auto Pool alive after its lifetime expires. If false, the * Batch service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool] The * Pool specification for the auto Pool. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.displayName] * The display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.resizeTimeout] * The timeout for allocation of Compute Nodes to the Pool. This timeout * applies only to manual scaling; it has no effect when enableAutoScale is set * to true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask] * A Task to run on each Compute Node as it joins the Pool. The Task runs when * the Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.userAccounts] * The list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.metadata] * A list of name-value pairs associated with the Pool as metadata. The Batch * service does not assign any meaning to metadata; it is solely for the use of * user code. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [cloudJobSchedule.jobSpecification.metadata] A list of * name-value pairs associated with each Job created under this schedule as * metadata. The Batch service does not assign any meaning to metadata; it is * solely for the use of user code. * * @param {array} [cloudJobSchedule.metadata] A list of name-value pairs * associated with the schedule as metadata. The Batch service does not assign * any meaning to metadata; it is solely for the use of user code. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleAddOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleAddOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleAddOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleAddOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleAddOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addWithHttpOperationResponse(cloudJobSchedule: models.JobScheduleAddParameter, options?: { jobScheduleAddOptions? : models.JobScheduleAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a Job Schedule to the specified Account. * * @param {object} cloudJobSchedule The Job Schedule to be added. * * @param {string} cloudJobSchedule.id A string that uniquely identifies the * schedule 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). * * @param {string} [cloudJobSchedule.displayName] The display name for the * schedule. The display name need not be unique and can contain any Unicode * characters up to a maximum length of 1024. * * @param {object} cloudJobSchedule.schedule The schedule according to which * Jobs will be created. * * @param {date} [cloudJobSchedule.schedule.doNotRunUntil] The earliest time at * which any Job may be created under this Job Schedule. If you do not specify * a doNotRunUntil time, the schedule becomes ready to create Jobs immediately. * * @param {date} [cloudJobSchedule.schedule.doNotRunAfter] A time after which * no Job will be created under this Job Schedule. The schedule will move to * the completed state as soon as this deadline is past and there is no active * Job under this Job Schedule. If you do not specify a doNotRunAfter time, and * you are creating a recurring Job Schedule, the Job Schedule will remain * active until you explicitly terminate it. * * @param {moment.duration} [cloudJobSchedule.schedule.startWindow] The time * interval, starting from the time at which the schedule indicates a Job * should be created, within which a Job must be created. If a Job is not * created within the startWindow interval, then the 'opportunity' is lost; no * Job will be created until the next recurrence of the schedule. If the * schedule is recurring, and the startWindow is longer than the recurrence * interval, then this is equivalent to an infinite startWindow, because the * Job that is 'due' in one recurrenceInterval is not carried forward into the * next recurrence interval. The default is infinite. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {moment.duration} [cloudJobSchedule.schedule.recurrenceInterval] The * time interval between the start times of two successive Jobs under the Job * Schedule. A Job Schedule can have at most one active Job under it at any * given time. Because a Job Schedule can have at most one active Job under it * at any given time, if it is time to create a new Job under a Job Schedule, * but the previous Job is still running, the Batch service will not create the * new Job until the previous Job finishes. If the previous Job does not finish * within the startWindow period of the new recurrenceInterval, then no new Job * will be scheduled for that interval. For recurring Jobs, you should normally * specify a jobManagerTask in the jobSpecification. If you do not use * jobManagerTask, you will need an external process to monitor when Jobs are * created, add Tasks to the Jobs and terminate the Jobs ready for the next * recurrence. The default is that the schedule does not recur: one Job is * created, within the startWindow after the doNotRunUntil time, and the * schedule is complete as soon as that Job finishes. The minimum value is 1 * minute. If you specify a lower value, the Batch service rejects the schedule * with an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} cloudJobSchedule.jobSpecification The details of the Jobs to * be created on this schedule. * * @param {number} [cloudJobSchedule.jobSpecification.priority] The priority of * Jobs created under this schedule. Priority values can range from -1000 to * 1000, with -1000 being the lowest priority and 1000 being the highest * priority. The default value is 0. This priority is used as the default for * all Jobs under the Job Schedule. You can update a Job's priority after it * has been created using by using the update Job API. * * @param {string} [cloudJobSchedule.jobSpecification.displayName] The display * name for Jobs created under this schedule. The name need not be unique and * can contain any Unicode characters up to a maximum length of 1024. * * @param {boolean} [cloudJobSchedule.jobSpecification.usesTaskDependencies] * Whether Tasks in the Job can define dependencies on each other. The default * is false. * * @param {string} [cloudJobSchedule.jobSpecification.onAllTasksComplete] The * action the Batch service should take when all Tasks in a Job created under * this schedule are in the completed state. Note that if a Job contains no * Tasks, then all Tasks are considered complete. This option is therefore most * commonly used with a Job Manager task; if you want to use automatic Job * termination without a Job Manager, you should initially set * onAllTasksComplete to noaction and update the Job properties to set * onAllTasksComplete to terminatejob once you have finished adding Tasks. The * default is noaction. Possible values include: 'noAction', 'terminateJob' * * @param {string} [cloudJobSchedule.jobSpecification.onTaskFailure] The action * the Batch service should take when any Task fails in a Job created under * this schedule. A Task is considered to have failed if it have failed if has * a failureInfo. A failureInfo is set if the Task completes with a non-zero * exit code after exhausting its retry count, or if there was an error * starting the Task, for example due to a resource file download error. The * default is noaction. Possible values include: 'noAction', * 'performExitOptionsJobAction' * * @param {object} [cloudJobSchedule.jobSpecification.networkConfiguration] The * network configuration for the Job. * * @param {string} * cloudJobSchedule.jobSpecification.networkConfiguration.subnetId The ARM * resource identifier of the virtual network subnet which Compute Nodes * running Tasks from the Job will join for the duration of the Task. This will * only work with a VirtualMachineConfiguration Pool. The virtual network must * be in the same region and subscription as the Azure Batch Account. The * specified subnet should have enough free IP addresses to accommodate the * number of Compute Nodes which will run Tasks from the Job. This can be up to * the number of Compute Nodes in the Pool. The 'MicrosoftAzureBatch' service * principal must have the 'Classic Virtual Machine Contributor' Role-Based * Access Control (RBAC) role for the specified VNet so that Azure Batch * service can schedule Tasks on the Nodes. This can be verified by checking if * the specified VNet has any associated Network Security Groups (NSG). If * communication to the Nodes in the specified subnet is denied by an NSG, then * the Batch service will set the state of the Compute Nodes to unusable. This * is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * If the specified VNet has any associated Network Security Groups (NSG), then * a few reserved system ports must be enabled for inbound communication from * the Azure Batch service. For Pools created with a Virtual Machine * configuration, enable ports 29876 and 29877, as well as port 22 for Linux * and port 3389 for Windows. Port 443 is also required to be open for outbound * connections for communications to Azure Storage. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {object} [cloudJobSchedule.jobSpecification.constraints] The * execution constraints for Jobs created under this schedule. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.constraints.maxWallClockTime] The maximum * elapsed time that the Job may run, measured from the time the Job is * created. If the Job does not complete within the time limit, the Batch * service terminates it and any Tasks that are still running. In this case, * the termination reason will be MaxWallClockTimeExpiry. If this property is * not specified, there is no time limit on how long the Job may run. * * @param {number} * [cloudJobSchedule.jobSpecification.constraints.maxTaskRetryCount] The * maximum number of times each 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 each Task once, * and may then retry up to this limit. For example, if the maximum retry count * is 3, Batch tries a Task up to 4 times (one initial try and 3 retries). If * the maximum retry count is 0, the Batch service does not retry Tasks. If the * maximum retry count is -1, the Batch service retries Tasks without limit. * The default value is 0 (no retries). * * @param {object} [cloudJobSchedule.jobSpecification.jobManagerTask] The * details of a Job Manager Task to be launched when a Job is started under * this schedule. If the Job does not specify a Job Manager Task, the user must * explicitly add Tasks to the Job using the Task API. If the Job does specify * a Job Manager Task, the Batch service creates the Job Manager Task when the * Job is created, and will try to schedule the Job Manager Task before * scheduling other Tasks in the Job. * * @param {string} cloudJobSchedule.jobSpecification.jobManagerTask.id A string * that uniquely identifies the Job Manager Task within the Job. The ID can * contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. * * @param {string} * [cloudJobSchedule.jobSpecification.jobManagerTask.displayName] The display * name of the Job Manager Task. It need not be unique and can contain any * Unicode characters up to a maximum length of 1024. * * @param {string} cloudJobSchedule.jobSpecification.jobManagerTask.commandLine * The command line of the Job Manager Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.containerSettings] The * settings for the container under which the Job Manager Task runs. If the * Pool that will run this Task has containerConfiguration set, this must be * set as well. If the Pool that will run this Task doesn't have * containerConfiguration set, this must not be set. 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.resourceFiles] A list of * files that the Batch service will download to the Compute Node before * running the command line. Files listed under this element are located in the * Task's working directory. 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.outputFiles] A list of * files that the Batch service will upload from the Compute Node after running * the command line. For multi-instance Tasks, the files will only be uploaded * from the Compute Node on which the primary Task is executed. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.environmentSettings] A * list of environment variable settings for the Job Manager Task. * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.constraints] Constraints * that apply to the Job Manager Task. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobManagerTask.killJobOnCompletion] * Whether completion of the Job Manager Task signifies completion of the * entire Job. If true, when the Job Manager Task completes, the Batch service * marks the Job as complete. If any Tasks are still running at this time * (other than Job Release), those Tasks are terminated. If false, the * completion of the Job Manager Task does not affect the Job status. In this * case, you should either use the onAllTasksComplete attribute to terminate * the Job, or have a client or user terminate the Job explicitly. An example * of this is if the Job Manager creates a set of Tasks but then takes no * further role in their execution. The default value is true. If you are using * the onAllTasksComplete and onTaskFailure attributes to control Job lifetime, * and using the Job Manager Task only to create the Tasks for the Job (not to * monitor progress), then it is important to set killJobOnCompletion to false. * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.userIdentity] The user * identity under which the Job Manager Task runs. If omitted, the Task runs as * a non-administrative user unique to the Task. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobManagerTask.runExclusive] Whether the * Job Manager Task requires exclusive use of the Compute Node where it runs. * If true, no other Tasks will run on the same Node for as long as the Job * Manager is running. If false, other Tasks can run simultaneously with the * Job Manager on a Compute Node. The Job Manager Task counts normally against * the Compute Node's concurrent Task limit, so this is only relevant if the * Compute Node allows multiple concurrent Tasks. The default value is true. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.applicationPackageReferences] * A list of Application Packages that the Batch service will deploy to the * Compute Node before running the command line. Application Packages are * downloaded and deployed to a shared directory, not the Task working * directory. Therefore, if a referenced Application Package is already on the * Compute Node, and is up to date, then it is not re-downloaded; the existing * copy on the Compute Node is used. If a referenced Application Package cannot * be installed, for example because the package has been deleted or because * download failed, the Task fails. * * @param {object} * [cloudJobSchedule.jobSpecification.jobManagerTask.authenticationTokenSettings] * The settings for an authentication token that the Task can use to perform * Batch service operations. If this property is set, the Batch service * provides the Task with an authentication token which can be used to * authenticate Batch service operations without requiring an Account access * key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment * variable. The operations that the Task can carry out using the token depend * on the settings. For example, a Task can request Job permissions in order to * add other Tasks to the Job, or check the status of the Job or of other Tasks * under the Job. * * @param {array} * [cloudJobSchedule.jobSpecification.jobManagerTask.authenticationTokenSettings.access] * The Batch resources to which the token grants access. The authentication * token grants access to a limited set of Batch service operations. Currently * the only supported value for the access property is 'job', which grants * access to all operations related to the Job which contains the Task. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobManagerTask.allowLowPriorityNode] * Whether the Job Manager Task may run on a low-priority Compute Node. The * default value is true. * * @param {object} [cloudJobSchedule.jobSpecification.jobPreparationTask] The * Job Preparation Task for Jobs created under this schedule. If a Job has a * Job Preparation Task, the Batch service will run the Job Preparation Task on * a Node before starting any Tasks of that Job on that Compute Node. * * @param {string} [cloudJobSchedule.jobSpecification.jobPreparationTask.id] A * string that uniquely identifies the Job Preparation Task within the Job. The * ID can contain any combination of alphanumeric characters including hyphens * and underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobpreparation'. No other Task in the Job can have the same ID as the Job * Preparation Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobPreparationTask; * if you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} * cloudJobSchedule.jobSpecification.jobPreparationTask.commandLine The command * line of the Job Preparation Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.jobPreparationTask.containerSettings] The * settings for the container under which the Job Preparation Task 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobPreparationTask.resourceFiles] A list * of files that the Batch service will download to the Compute Node before * running the command line. Files listed under this element are located in the * Task's working directory. 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobPreparationTask.environmentSettings] A * list of environment variable settings for the Job Preparation Task. * * @param {object} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints] * Constraints that apply to the Job Preparation Task. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints.maxWallClockTime] * The maximum elapsed time that the Task may run, measured from the time the * Task starts. If the Task does not complete within the time limit, the Batch * service terminates it. If this is not specified, there is no time limit on * how long the Task may run. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints.retentionTime] * The minimum time to retain the Task directory on the Compute Node where it * ran, from the time it completes execution. After this time, the Batch * service may delete the Task directory and all its contents. The default is 7 * days, i.e. the Task directory will be retained for 7 days unless the Compute * Node is removed or the Job is deleted. * * @param {number} * [cloudJobSchedule.jobSpecification.jobPreparationTask.constraints.maxTaskRetryCount] * 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 for the Task executable due to a * nonzero exit code. 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 after the first * attempt. If the maximum retry count is -1, the Batch service retries the * Task without limit. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobPreparationTask.waitForSuccess] * Whether the Batch service should wait for the Job Preparation Task to * complete successfully before scheduling any other Tasks of the Job on the * Compute Node. A Job Preparation Task has completed successfully if it exits * with exit code 0. If true and the Job Preparation Task fails on a Node, the * Batch service retries the Job Preparation Task up to its maximum retry count * (as specified in the constraints element). If the Task has still not * completed successfully after all retries, then the Batch service will not * schedule Tasks of the Job to the Node. The Node remains active and eligible * to run Tasks of other Jobs. If false, the Batch service will not wait for * the Job Preparation Task to complete. In this case, other Tasks of the Job * can start executing on the Compute Node while the Job Preparation Task is * still running; and even if the Job Preparation Task fails, new Tasks will * continue to be scheduled on the Compute Node. The default value is true. * * @param {object} * [cloudJobSchedule.jobSpecification.jobPreparationTask.userIdentity] The user * identity under which the Job Preparation Task runs. If omitted, the Task * runs as a non-administrative user unique to the Task on Windows Compute * Nodes, or a non-administrative user unique to the Pool on Linux Compute * Nodes. * * @param {boolean} * [cloudJobSchedule.jobSpecification.jobPreparationTask.rerunOnNodeRebootAfterSuccess] * Whether the Batch service should rerun the Job Preparation Task after a * Compute Node reboots. The Job Preparation Task is always rerun if a Compute * Node is reimaged, or if the Job Preparation Task did not complete (e.g. * because the reboot occurred while the Task was running). Therefore, you * should always write a Job Preparation Task to be idempotent and to behave * correctly if run multiple times. The default value is true. * * @param {object} [cloudJobSchedule.jobSpecification.jobReleaseTask] The Job * Release Task for Jobs created under this schedule. The primary purpose of * the Job Release Task is to undo changes to Nodes made by the Job Preparation * Task. Example activities include deleting local files, or shutting down * services that were started as part of Job preparation. A Job Release Task * cannot be specified without also specifying a Job Preparation Task for the * Job. The Batch service runs the Job Release Task on the Compute Nodes that * have run the Job Preparation Task. * * @param {string} [cloudJobSchedule.jobSpecification.jobReleaseTask.id] A * string that uniquely identifies the Job Release Task within the Job. The ID * can contain any combination of alphanumeric characters including hyphens and * underscores and cannot contain more than 64 characters. If you do not * specify this property, the Batch service assigns a default value of * 'jobrelease'. No other Task in the Job can have the same ID as the Job * Release Task. If you try to submit a Task with the same id, the Batch * service rejects the request with error code TaskIdSameAsJobReleaseTask; if * you are calling the REST API directly, the HTTP status code is 409 * (Conflict). * * @param {string} cloudJobSchedule.jobSpecification.jobReleaseTask.commandLine * The command line of the Job Release Task. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.jobReleaseTask.containerSettings] The * settings for the container under which the Job Release Task 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobReleaseTask.resourceFiles] 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. * * @param {array} * [cloudJobSchedule.jobSpecification.jobReleaseTask.environmentSettings] A * list of environment variable settings for the Job Release Task. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobReleaseTask.maxWallClockTime] The * maximum elapsed time that the Job Release Task may run on a given Compute * Node, measured from the time the Task starts. If the Task does not complete * within the time limit, the Batch service terminates it. The default value is * 15 minutes. You may not specify a timeout longer than 15 minutes. If you do, * the Batch service rejects it with an error; if you are calling the REST API * directly, the HTTP status code is 400 (Bad Request). * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.jobReleaseTask.retentionTime] The minimum * time to retain the Task directory for the Job Release Task on the Compute * Node. After this time, the Batch service may delete the Task directory and * all its contents. The default is 7 days, i.e. the Task directory will be * retained for 7 days unless the Compute Node is removed or the Job is * deleted. * * @param {object} * [cloudJobSchedule.jobSpecification.jobReleaseTask.userIdentity] The user * identity under which the Job Release Task runs. If omitted, the Task runs as * a non-administrative user unique to the Task. * * @param {array} [cloudJobSchedule.jobSpecification.commonEnvironmentSettings] * A list of common environment variable settings. These environment variables * are set for all Tasks in Jobs created under this schedule (including the Job * Manager, Job Preparation and Job Release Tasks). Individual Tasks can * override an environment setting specified here by specifying the same * setting name with a different value. * * @param {object} cloudJobSchedule.jobSpecification.poolInfo The Pool on which * the Batch service runs the Tasks of Jobs created under this schedule. * * @param {string} [cloudJobSchedule.jobSpecification.poolInfo.poolId] The ID * of an existing Pool. All the Tasks of the Job will run on the specified * Pool. You must ensure that the Pool referenced by this property exists. If * the Pool does not exist at the time the Batch service tries to schedule a * Job, no Tasks for the Job will run until you create a Pool with that id. * Note that the Batch service will not reject the Job request; it will simply * not run Tasks until the Pool exists. You must specify either the Pool ID or * the auto Pool specification, but not both. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification] * Characteristics for a temporary 'auto pool'. The Batch service will create * this auto Pool when the Job is submitted. If auto Pool creation fails, the * Batch service moves the Job to a completed state, and the Pool creation * error is set in the Job's scheduling error property. The Batch service * manages the lifetime (both creation and, unless keepAlive is specified, * deletion) of the auto Pool. Any user actions that affect the lifetime of the * auto Pool while the Job is active will result in unexpected behavior. You * must specify either the Pool ID or the auto Pool specification, but not * both. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.autoPoolIdPrefix] * A prefix to be added to the unique identifier when a Pool is automatically * created. The Batch service assigns each auto Pool a unique identifier on * creation. To distinguish between Pools created for different purposes, you * can specify this element to add a prefix to the ID that is assigned. The * prefix can be up to 20 characters long. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.poolLifetimeOption * The minimum lifetime of created auto Pools, and how multiple Jobs on a * schedule are assigned to Pools. Possible values include: 'jobSchedule', * 'job' * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.keepAlive] * Whether to keep an auto Pool alive after its lifetime expires. If false, the * Batch service deletes the Pool once its lifetime (as determined by the * poolLifetimeOption setting) expires; that is, when the Job or Job Schedule * completes. If true, the Batch service does not delete the Pool * automatically. It is up to the user to delete auto Pools created with this * option. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool] The * Pool specification for the auto Pool. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.displayName] * The display name for the Pool. The display name need not be unique and can * contain any Unicode characters up to a maximum length of 1024. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.vmSize * The size of the 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://docs.microsoft.com/azure/batch/batch-pool-vm-sizes). * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration] * The cloud service configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure PaaS VMs. This property * and virtualMachineConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). This property cannot be specified if the Batch * Account was created with its poolAllocationMode property set to * 'UserSubscription'. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osFamily * The Azure Guest OS family to be installed on the virtual machines in the * Pool. Possible values are: * 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. * 3 - OS Family 3, equivalent to Windows Server 2012. * 4 - OS Family 4, equivalent to Windows Server 2012 R2. * 5 - OS Family 5, equivalent to Windows Server 2016. * 6 - OS Family 6, equivalent to Windows Server 2019. For more information, * see Azure Guest OS Releases * (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.cloudServiceConfiguration.osVersion] * The Azure Guest OS version to be installed on the virtual machines in the * Pool. The default value is * which specifies the latest operating system * version for the specified OS family. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration] * The virtual machine configuration for the Pool. This property must be * specified if the Pool needs to be created with Azure IaaS VMs. This property * and cloudServiceConfiguration are mutually exclusive and one of the * properties must be specified. If neither is specified then the Batch service * returns an error; if you are calling the REST API directly, the HTTP status * code is 400 (Bad Request). * * @param {object} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference * A reference to the Azure Virtual Machines Marketplace Image or the custom * Virtual Machine Image to use. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.publisher] * The publisher of the Azure Virtual Machines Marketplace Image. For example, * Canonical or MicrosoftWindowsServer. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.offer] * The offer type of the Azure Virtual Machines Marketplace Image. For example, * UbuntuServer or WindowsServer. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.sku] * The SKU of the Azure Virtual Machines Marketplace Image. For example, * 18.04-LTS or 2019-Datacenter. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.version] * The version of the Azure Virtual Machines Marketplace Image. A value of * 'latest' can be specified to select the latest version of an Image. If * omitted, the default is 'latest'. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.imageReference.virtualMachineImageId] * The ARM resource identifier of the Shared Image Gallery Image. Compute Nodes * in the Pool will be created using this Image Id. This is of the * form/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}. * This property is mutually exclusive with other ImageReference properties. * For Virtual Machine Image it must be in the same region and subscription as * the Azure Batch account. The Shared Image Gallery Image must have replicas * in the same region as the Azure Batch account. For information about the * firewall settings for the Batch Compute Node agent to communicate with the * Batch service see * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.nodeAgentSKUId * The SKU of the Batch Compute Node agent to be provisioned on Compute Nodes * in the Pool. The Batch Compute Node agent is a program that runs on each * Compute Node in the Pool, and provides the command-and-control interface * between the Compute Node and the Batch service. There are different * implementations of the Compute Node agent, known as SKUs, for different * operating systems. You must specify a Compute Node agent SKU which matches * the selected Image reference. To get the list of supported Compute Node * agent SKUs along with their list of verified Image references, see the 'List * supported Compute Node agent SKUs' operation. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration] * Windows operating system settings on the virtual machine. This property must * not be specified if the imageReference property specifies a Linux OS Image. * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.windowsConfiguration.enableAutomaticUpdates] * Whether automatic updates are enabled on the virtual machine. If omitted, * the default value is true. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.dataDisks] * The configuration for data disks attached to the Compute Nodes in the Pool. * This property must be specified if the Compute Nodes in the Pool need to * have empty data disks attached to them. This cannot be updated. Each Compute * Node gets its own disk (the disk is not a file share). Existing disks cannot * be attached, each attached disk is empty. When the Compute Node is removed * from the Pool, the disk and all data associated with it is also deleted. The * disk is not formatted after being attached, it must be formatted before use * - for more information see * https://docs.microsoft.com/en-us/azure/virtual-machines/linux/classic/attach-disk#initialize-a-new-data-disk-in-linux * and * https://docs.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps#add-an-empty-data-disk-to-a-virtual-machine. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.licenseType] * The type of on-premises license to be used when deploying the operating * system. This only applies to Images that contain the Windows operating * system, and should only be used when you hold valid on-premises licenses for * the Compute Nodes which will be deployed. If omitted, no on-premises * licensing discount is applied. Values are: * * Windows_Server - The on-premises license is for Windows Server. * Windows_Client - The on-premises license is for Windows Client. * * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration] * The container configuration for the Pool. If specified, setup is performed * on each Compute Node in the Pool to allow Tasks to run in containers. All * regular Tasks and Job manager Tasks run on this Pool must specify the * containerSettings property, and all other Tasks may specify it. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerImageNames] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.containerConfiguration.containerRegistries] * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration] * The disk encryption configuration for the pool. If specified, encryption is * performed on each node in the pool during node provisioning. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.virtualMachineConfiguration.diskEncryptionConfiguration.targets] * The list of disk targets Batch Service will encrypt on the compute node. If * omitted, no disks on the compute nodes in the pool will be encrypted. On * Linux pool, only "TemporaryDisk" is supported; on Windows pool, "OsDisk" and * "TemporaryDisk" must be specified. * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.maxTasksPerNode] * The maximum number of Tasks that can run concurrently 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy] * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.taskSchedulingPolicy.nodeFillType * How Tasks are distributed across Compute Nodes in a Pool. If not specified, * the default is spread. Possible values include: 'spread', 'pack' * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.resizeTimeout] * The timeout for allocation of Compute Nodes to the Pool. This timeout * applies only to manual scaling; it has no effect when enableAutoScale is set * to true. The default value is 15 minutes. The minimum value is 5 minutes. If * you specify a value less than 5 minutes, the Batch service rejects the * request with an error; if you are calling the REST API directly, the HTTP * status code is 400 (Bad Request). * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.targetDedicatedNodes] * The desired number of dedicated Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.targetLowPriorityNodes] * The desired number of low-priority Compute Nodes in the Pool. This property * must not be specified if enableAutoScale is set to true. If enableAutoScale * is set to false, then you must set either targetDedicatedNodes, * targetLowPriorityNodes, or both. * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.enableAutoScale] * Whether the Pool size should automatically adjust over time. If false, at * least one of targetDedicateNodes and targetLowPriorityNodes must be * specified. If true, the autoScaleFormula element is required. The Pool * automatically resizes according to the formula. The default value is false. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleFormula] * The formula for the desired number of Compute Nodes in the Pool. This * property must not be specified if enableAutoScale is set to false. It is * required if enableAutoScale is set to true. The formula is checked for * validity before the Pool is created. If the formula is not valid, the Batch * service rejects the request with detailed error information. * * @param {moment.duration} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.autoScaleEvaluationInterval] * The time interval at which to automatically adjust the Pool size according * to the autoscale formula. The default value is 15 minutes. The minimum and * maximum value are 5 minutes and 168 hours respectively. If you specify a * value less than 5 minutes or greater than 168 hours, the Batch service * rejects the request with an invalid property value error; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.enableInterNodeCommunication] * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration] * The network configuration for the Pool. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.subnetId] * The ARM resource identifier of the virtual network subnet which the Compute * Nodes of the Pool will join. This is of the form * /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}. * The virtual network must be in the same region and subscription as the Azure * Batch Account. The specified subnet should have enough free IP addresses to * accommodate the number of Compute Nodes in the Pool. If the subnet doesn't * have enough free IP addresses, the Pool will partially allocate Nodes and a * resize error will occur. The 'MicrosoftAzureBatch' service principal must * have the 'Classic Virtual Machine Contributor' Role-Based Access Control * (RBAC) role for the specified VNet. The specified subnet must allow * communication from the Azure Batch service to be able to schedule Tasks on * the Nodes. This can be verified by checking if the specified VNet has any * associated Network Security Groups (NSG). If communication to the Nodes in * the specified subnet is denied by an NSG, then the Batch service will set * the state of the Compute Nodes to unusable. For Pools created with * virtualMachineConfiguration only ARM virtual networks * ('Microsoft.Network/virtualNetworks') are supported, but for Pools created * with cloudServiceConfiguration both ARM and classic virtual networks are * supported. If the specified VNet has any associated Network Security Groups * (NSG), then a few reserved system ports must be enabled for inbound * communication. For Pools created with a virtual machine configuration, * enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for * Windows. For Pools created with a cloud service configuration, enable ports * 10100, 20100, and 30100. Also enable outbound connections to Azure Storage * on port 443. For more details see: * https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.dynamicVNetAssignmentScope] * The scope of dynamic vnet assignment. Possible values include: 'none', 'job' * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration] * The configuration for endpoints on Compute Nodes in the Batch Pool. Pool * endpoint configuration is only supported on Pools with the * virtualMachineConfiguration property. * * @param {array} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.endpointConfiguration.inboundNATPools * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration] * The Public IPAddress configuration for Compute Nodes in the Batch Pool. * Public IP configuration property is only supported on Pools with the * virtualMachineConfiguration property. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.provision] * The provisioning type for Public IP Addresses for the Pool. The default * value is BatchManaged. Possible values include: 'batchManaged', * 'userManaged', 'noPublicIPAddresses' * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.networkConfiguration.publicIPAddressConfiguration.ipAddressIds] * The list of public IPs which the Batch service will use when provisioning * Compute Nodes. The number of IPs specified here limits the maximum size of * the Pool - 50 dedicated nodes or 20 low-priority nodes can be allocated for * each public IP. For example, a pool needing 150 dedicated VMs would need at * least 3 public IPs specified. Each element of this collection is of the * form: * /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/publicIPAddresses/{ip}. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask] * A Task to run on each Compute Node as it joins the Pool. The Task runs when * the Compute Node is added to the Pool or when the Compute Node is restarted. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.commandLine * 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings] * 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. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.containerRunOptions] * 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. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.imageName * 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. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry] * The private registry which contains the container Image. This setting can be * omitted if was already provided at Pool creation. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.registryServer] * The registry URL. If omitted, the default is "docker.io". * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.userName * The user name to log into the registry server. * * @param {string} * cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.registry.password * The password to log into the registry server. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.containerSettings.workingDirectory] * The location of the container Task working directory. The default is * 'taskWorkingDirectory'. Possible values include: 'taskWorkingDirectory', * 'containerImageDefault' * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.resourceFiles] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.environmentSettings] * A list of environment variable settings for the StartTask. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity] * The user identity under which the StartTask runs. If omitted, the Task runs * as a non-administrative user unique to the Task. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.userName] * The name of the user identity under which the Task is run. The userName and * autoUser properties are mutually exclusive; you must specify one but not * both. * * @param {object} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser] * The auto user under which the Task is run. The userName and autoUser * properties are mutually exclusive; you must specify one but not both. * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.scope] * 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, or if certificates have been specified * on the pool which should not be accessible by normal tasks but should be * accessible by StartTasks. Possible values include: 'task', 'pool' * * @param {string} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.userIdentity.autoUser.elevationLevel] * The elevation level of the auto user. The default value is nonAdmin. * Possible values include: 'nonAdmin', 'admin' * * @param {number} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.maxTaskRetryCount] * 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. * * @param {boolean} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.startTask.waitForSuccess] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.certificateReferences] * A list of Certificates to be installed on each Compute Node in the Pool. For * Windows Nodes, the Batch service installs the Certificates to the specified * Certificate store and location. For Linux Compute Nodes, the Certificates * are stored in a directory inside the Task working directory and an * environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the Task to * query for this location. For Certificates with visibility of 'remoteUser', a * 'certs' directory is created in the user's home directory (e.g., * /home/{user-name}/certs) and Certificates are placed in that directory. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationPackageReferences] * 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. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.applicationLicenses] * The list of application licenses the Batch service will make available on * each Compute Node in the Pool. The list of application licenses must be a * subset of available Batch service application licenses. If a license is * requested which is not supported, Pool creation will fail. The permitted * licenses available on the Pool are 'maya', 'vray', '3dsmax', 'arnold'. An * additional charge applies for each application license added to the Pool. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.userAccounts] * The list of user Accounts to be created on each Compute Node in the Pool. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.metadata] * A list of name-value pairs associated with the Pool as metadata. The Batch * service does not assign any meaning to metadata; it is solely for the use of * user code. * * @param {array} * [cloudJobSchedule.jobSpecification.poolInfo.autoPoolSpecification.pool.mountConfiguration] * A list of file systems to mount on each node in the pool. This supports * Azure Files, NFS, CIFS/SMB, and Blobfuse. * * @param {array} [cloudJobSchedule.jobSpecification.metadata] A list of * name-value pairs associated with each Job created under this schedule as * metadata. The Batch service does not assign any meaning to metadata; it is * solely for the use of user code. * * @param {array} [cloudJobSchedule.metadata] A list of name-value pairs * associated with the schedule as metadata. The Batch service does not assign * any meaning to metadata; it is solely for the use of user code. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleAddOptions] Additional parameters for * the operation * * @param {number} [options.jobScheduleAddOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleAddOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleAddOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleAddOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ add(cloudJobSchedule: models.JobScheduleAddParameter, options?: { jobScheduleAddOptions? : models.JobScheduleAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise; add(cloudJobSchedule: models.JobScheduleAddParameter, callback: ServiceCallback): void; add(cloudJobSchedule: models.JobScheduleAddParameter, options: { jobScheduleAddOptions? : models.JobScheduleAddOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Job Schedules in the specified Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleListOptions] Additional parameters for * the operation * * @param {string} [options.jobScheduleListOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. * * @param {string} [options.jobScheduleListOptions.select] An OData $select * clause. * * @param {string} [options.jobScheduleListOptions.expand] An OData $expand * clause. * * @param {number} [options.jobScheduleListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 Job Schedules * can be returned. * * @param {number} [options.jobScheduleListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(options?: { jobScheduleListOptions? : models.JobScheduleListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Job Schedules in the specified Account. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleListOptions] Additional parameters for * the operation * * @param {string} [options.jobScheduleListOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. * * @param {string} [options.jobScheduleListOptions.select] An OData $select * clause. * * @param {string} [options.jobScheduleListOptions.expand] An OData $expand * clause. * * @param {number} [options.jobScheduleListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 Job Schedules * can be returned. * * @param {number} [options.jobScheduleListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.jobScheduleListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobScheduleListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobScheduleListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobScheduleListResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(options?: { jobScheduleListOptions? : models.JobScheduleListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(callback: ServiceCallback): void; list(options: { jobScheduleListOptions? : models.JobScheduleListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Job Schedules in the specified Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.jobScheduleListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { jobScheduleListNextOptions? : models.JobScheduleListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Job Schedules in the specified Account. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.jobScheduleListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.jobScheduleListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.jobScheduleListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.jobScheduleListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudJobScheduleListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudJobScheduleListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudJobScheduleListResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { jobScheduleListNextOptions? : models.JobScheduleListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { jobScheduleListNextOptions? : models.JobScheduleListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * Task * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface Task { /** * @summary Adds a Task to the specified Job. * * The maximum lifetime of a Task from addition to completion is 180 days. If a * Task has not completed within 180 days of being added it will be terminated * by the Batch service and left in whatever state it was in at that time. * * @param {string} jobId The ID of the Job to which the Task is to be added. * * @param {object} task The Task to be added. * * @param {string} task.id A string that uniquely identifies the Task within * the Job. 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 a Job that differ only by case). * * @param {string} [task.displayName] A display name for the Task. The display * name need not be unique and can contain any Unicode characters up to a * maximum length of 1024. * * @param {string} task.commandLine The command line of the Task. For * multi-instance Tasks, the command line is executed as the primary Task, * after the primary Task and all subtasks have finished executing the * coordination command line. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [task.containerSettings] The settings for the container * under which the Task runs. If the Pool that will run this Task has * containerConfiguration set, this must be set as well. If the Pool that will * run this Task doesn't have containerConfiguration set, this must not be set. * 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. * * @param {string} [task.containerSettings.containerRunOptions] 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. * * @param {string} task.containerSettings.imageName 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. * * @param {object} [task.containerSettings.registry] The private registry which * contains the container Image. This setting can be omitted if was already * provided at Pool creation. * * @param {string} [task.containerSettings.registry.registryServer] The * registry URL. If omitted, the default is "docker.io". * * @param {string} task.containerSettings.registry.userName The user name to * log into the registry server. * * @param {string} task.containerSettings.registry.password The password to log * into the registry server. * * @param {string} [task.containerSettings.workingDirectory] The location of * the container Task working directory. The default is 'taskWorkingDirectory'. * Possible values include: 'taskWorkingDirectory', 'containerImageDefault' * * @param {object} [task.exitConditions] How the Batch service should respond * when the Task completes. * * @param {array} [task.exitConditions.exitCodes] A list of individual Task * exit codes and how the Batch service should respond to them. * * @param {array} [task.exitConditions.exitCodeRanges] A list of Task exit code * ranges and how the Batch service should respond to them. * * @param {object} [task.exitConditions.preProcessingError] How the Batch * service should respond if the Task fails to start due to an error. * * @param {object} [task.exitConditions.fileUploadError] How the Batch service * should respond if a file upload error occurs. If the Task exited with an * exit code that was specified via exitCodes or exitCodeRanges, and then * encountered a file upload error, then the action specified by the exit code * takes precedence. * * @param {object} [task.exitConditions.default] How the Batch service should * respond if the Task fails with an exit condition not covered by any of the * other properties. This value is used if the Task exits with any nonzero exit * code not listed in the exitCodes or exitCodeRanges collection, with a * pre-processing error if the preProcessingError property is not present, or * with a file upload error if the fileUploadError property is not present. If * you want non-default behavior on exit code 0, you must list it explicitly * using the exitCodes or exitCodeRanges collection. * * @param {string} [task.exitConditions.default.jobAction] An action to take on * the Job containing the Task, if the Task completes with the given exit * condition and the Job's onTaskFailed property is * 'performExitOptionsJobAction'. The default is none for exit code 0 and * terminate for all other exit conditions. If the Job's onTaskFailed property * is noaction, then specifying this property returns an error and the add Task * request fails with an invalid property value error; if you are calling the * REST API directly, the HTTP status code is 400 (Bad Request). Possible * values include: 'none', 'disable', 'terminate' * * @param {string} [task.exitConditions.default.dependencyAction] An action * that the Batch service performs on Tasks that depend on this Task. Possible * values are 'satisfy' (allowing dependent tasks to progress) and 'block' * (dependent tasks continue to wait). Batch does not yet support cancellation * of dependent tasks. Possible values include: 'satisfy', 'block' * * @param {array} [task.resourceFiles] A list of files that the Batch service * will download to the Compute Node before running the command line. For * multi-instance Tasks, the resource files will only be downloaded to the * Compute Node on which the primary Task is executed. 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. * * @param {array} [task.outputFiles] A list of files that the Batch service * will upload from the Compute Node after running the command line. For * multi-instance Tasks, the files will only be uploaded from the Compute Node * on which the primary Task is executed. * * @param {array} [task.environmentSettings] A list of environment variable * settings for the Task. * * @param {object} [task.affinityInfo] A locality hint that can be used by the * Batch service to select a Compute Node on which to start the new Task. * * @param {string} task.affinityInfo.affinityId An opaque string representing * the location of a Compute Node or a Task that has run previously. You can * pass the affinityId of a Node to indicate that this Task needs to run on * that 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. * * @param {object} [task.constraints] The execution constraints that apply to * this Task. If you do not specify constraints, the maxTaskRetryCount is the * maxTaskRetryCount specified for the Job, the maxWallClockTime is infinite, * and the retentionTime is 7 days. * * @param {moment.duration} [task.constraints.maxWallClockTime] The maximum * elapsed time that the Task may run, measured from the time the Task starts. * If the Task does not complete within the time limit, the Batch service * terminates it. If this is not specified, there is no time limit on how long * the Task may run. * * @param {moment.duration} [task.constraints.retentionTime] The minimum time * to retain the Task directory on the Compute Node where it ran, from the time * it completes execution. After this time, the Batch service may delete the * Task directory and all its contents. The default is 7 days, i.e. the Task * directory will be retained for 7 days unless the Compute Node is removed or * the Job is deleted. * * @param {number} [task.constraints.maxTaskRetryCount] 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 for the Task executable due to a nonzero exit code. 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 after the first attempt. If the maximum * retry count is -1, the Batch service retries the Task without limit. * * @param {object} [task.userIdentity] The user identity under which the Task * runs. If omitted, the Task runs as a non-administrative user unique to the * Task. * * @param {string} [task.userIdentity.userName] The name of the user identity * under which the Task is run. The userName and autoUser properties are * mutually exclusive; you must specify one but not both. * * @param {object} [task.userIdentity.autoUser] The auto user under which the * Task is run. The userName and autoUser properties are mutually exclusive; * you must specify one but not both. * * @param {string} [task.userIdentity.autoUser.scope] 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, or if certificates have been specified on the pool which should * not be accessible by normal tasks but should be accessible by StartTasks. * Possible values include: 'task', 'pool' * * @param {string} [task.userIdentity.autoUser.elevationLevel] The elevation * level of the auto user. The default value is nonAdmin. Possible values * include: 'nonAdmin', 'admin' * * @param {object} [task.multiInstanceSettings] An object that indicates that * the Task is a multi-instance Task, and contains information about how to run * the multi-instance Task. * * @param {number} [task.multiInstanceSettings.numberOfInstances] The number of * Compute Nodes required by the Task. If omitted, the default is 1. * * @param {string} task.multiInstanceSettings.coordinationCommandLine The * command line to run on all the Compute Nodes to enable them to coordinate * when the primary runs the main Task command. A typical coordination command * line launches a background service and verifies that the service is ready to * process inter-node messages. * * @param {array} [task.multiInstanceSettings.commonResourceFiles] A list of * files that the Batch service will download before running the coordination * command line. The difference between common resource files and Task resource * files is that common resource files are downloaded for all subtasks * including the primary, whereas Task resource files are downloaded only for * the primary. Also note that these resource files are not downloaded to the * Task working directory, but instead are downloaded to the Task root * directory (one directory above the working directory). 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. * * @param {object} [task.dependsOn] The Tasks that this Task depends on. This * Task will not be scheduled until all Tasks that it depends on have completed * successfully. If any of those Tasks fail and exhaust their retry counts, * this Task will never be scheduled. If the Job does not have * usesTaskDependencies set to true, and this element is present, the request * fails with error code TaskDependenciesNotSpecifiedOnJob. * * @param {array} [task.dependsOn.taskIds] The list of Task IDs that this Task * depends on. All Tasks in this list must complete successfully before the * dependent Task can be scheduled. The taskIds collection is limited to 64000 * characters total (i.e. the combined length of all Task IDs). If the taskIds * collection exceeds the maximum length, the Add Task request fails with error * code TaskDependencyListTooLong. In this case consider using Task ID ranges * instead. * * @param {array} [task.dependsOn.taskIdRanges] The list of Task ID ranges that * this Task depends on. All Tasks in all ranges must complete successfully * before the dependent Task can be scheduled. * * @param {array} [task.applicationPackageReferences] A list of Packages that * the Batch service will deploy to the Compute Node before running the command * line. Application packages are downloaded and deployed to a shared * directory, not the Task working directory. Therefore, if a referenced * package is already on the Node, and is up to date, then it is not * re-downloaded; the existing copy on the Compute Node is used. If a * referenced Package cannot be installed, for example because the package has * been deleted or because download failed, the Task fails. * * @param {object} [task.authenticationTokenSettings] The settings for an * authentication token that the Task can use to perform Batch service * operations. If this property is set, the Batch service provides the Task * with an authentication token which can be used to authenticate Batch service * operations without requiring an Account access key. The token is provided * via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations * that the Task can carry out using the token depend on the settings. For * example, a Task can request Job permissions in order to add other Tasks to * the Job, or check the status of the Job or of other Tasks under the Job. * * @param {array} [task.authenticationTokenSettings.access] The Batch resources * to which the token grants access. The authentication token grants access to * a limited set of Batch service operations. Currently the only supported * value for the access property is 'job', which grants access to all * operations related to the Job which contains the Task. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskAddOptions] Additional parameters for the * operation * * @param {number} [options.taskAddOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskAddOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskAddOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.taskAddOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addWithHttpOperationResponse(jobId: string, task: models.TaskAddParameter, options?: { taskAddOptions? : models.TaskAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a Task to the specified Job. * * The maximum lifetime of a Task from addition to completion is 180 days. If a * Task has not completed within 180 days of being added it will be terminated * by the Batch service and left in whatever state it was in at that time. * * @param {string} jobId The ID of the Job to which the Task is to be added. * * @param {object} task The Task to be added. * * @param {string} task.id A string that uniquely identifies the Task within * the Job. 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 a Job that differ only by case). * * @param {string} [task.displayName] A display name for the Task. The display * name need not be unique and can contain any Unicode characters up to a * maximum length of 1024. * * @param {string} task.commandLine The command line of the Task. For * multi-instance Tasks, the command line is executed as the primary Task, * after the primary Task and all subtasks have finished executing the * coordination command line. 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://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables). * * @param {object} [task.containerSettings] The settings for the container * under which the Task runs. If the Pool that will run this Task has * containerConfiguration set, this must be set as well. If the Pool that will * run this Task doesn't have containerConfiguration set, this must not be set. * 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. * * @param {string} [task.containerSettings.containerRunOptions] 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. * * @param {string} task.containerSettings.imageName 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. * * @param {object} [task.containerSettings.registry] The private registry which * contains the container Image. This setting can be omitted if was already * provided at Pool creation. * * @param {string} [task.containerSettings.registry.registryServer] The * registry URL. If omitted, the default is "docker.io". * * @param {string} task.containerSettings.registry.userName The user name to * log into the registry server. * * @param {string} task.containerSettings.registry.password The password to log * into the registry server. * * @param {string} [task.containerSettings.workingDirectory] The location of * the container Task working directory. The default is 'taskWorkingDirectory'. * Possible values include: 'taskWorkingDirectory', 'containerImageDefault' * * @param {object} [task.exitConditions] How the Batch service should respond * when the Task completes. * * @param {array} [task.exitConditions.exitCodes] A list of individual Task * exit codes and how the Batch service should respond to them. * * @param {array} [task.exitConditions.exitCodeRanges] A list of Task exit code * ranges and how the Batch service should respond to them. * * @param {object} [task.exitConditions.preProcessingError] How the Batch * service should respond if the Task fails to start due to an error. * * @param {object} [task.exitConditions.fileUploadError] How the Batch service * should respond if a file upload error occurs. If the Task exited with an * exit code that was specified via exitCodes or exitCodeRanges, and then * encountered a file upload error, then the action specified by the exit code * takes precedence. * * @param {object} [task.exitConditions.default] How the Batch service should * respond if the Task fails with an exit condition not covered by any of the * other properties. This value is used if the Task exits with any nonzero exit * code not listed in the exitCodes or exitCodeRanges collection, with a * pre-processing error if the preProcessingError property is not present, or * with a file upload error if the fileUploadError property is not present. If * you want non-default behavior on exit code 0, you must list it explicitly * using the exitCodes or exitCodeRanges collection. * * @param {string} [task.exitConditions.default.jobAction] An action to take on * the Job containing the Task, if the Task completes with the given exit * condition and the Job's onTaskFailed property is * 'performExitOptionsJobAction'. The default is none for exit code 0 and * terminate for all other exit conditions. If the Job's onTaskFailed property * is noaction, then specifying this property returns an error and the add Task * request fails with an invalid property value error; if you are calling the * REST API directly, the HTTP status code is 400 (Bad Request). Possible * values include: 'none', 'disable', 'terminate' * * @param {string} [task.exitConditions.default.dependencyAction] An action * that the Batch service performs on Tasks that depend on this Task. Possible * values are 'satisfy' (allowing dependent tasks to progress) and 'block' * (dependent tasks continue to wait). Batch does not yet support cancellation * of dependent tasks. Possible values include: 'satisfy', 'block' * * @param {array} [task.resourceFiles] A list of files that the Batch service * will download to the Compute Node before running the command line. For * multi-instance Tasks, the resource files will only be downloaded to the * Compute Node on which the primary Task is executed. 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. * * @param {array} [task.outputFiles] A list of files that the Batch service * will upload from the Compute Node after running the command line. For * multi-instance Tasks, the files will only be uploaded from the Compute Node * on which the primary Task is executed. * * @param {array} [task.environmentSettings] A list of environment variable * settings for the Task. * * @param {object} [task.affinityInfo] A locality hint that can be used by the * Batch service to select a Compute Node on which to start the new Task. * * @param {string} task.affinityInfo.affinityId An opaque string representing * the location of a Compute Node or a Task that has run previously. You can * pass the affinityId of a Node to indicate that this Task needs to run on * that 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. * * @param {object} [task.constraints] The execution constraints that apply to * this Task. If you do not specify constraints, the maxTaskRetryCount is the * maxTaskRetryCount specified for the Job, the maxWallClockTime is infinite, * and the retentionTime is 7 days. * * @param {moment.duration} [task.constraints.maxWallClockTime] The maximum * elapsed time that the Task may run, measured from the time the Task starts. * If the Task does not complete within the time limit, the Batch service * terminates it. If this is not specified, there is no time limit on how long * the Task may run. * * @param {moment.duration} [task.constraints.retentionTime] The minimum time * to retain the Task directory on the Compute Node where it ran, from the time * it completes execution. After this time, the Batch service may delete the * Task directory and all its contents. The default is 7 days, i.e. the Task * directory will be retained for 7 days unless the Compute Node is removed or * the Job is deleted. * * @param {number} [task.constraints.maxTaskRetryCount] 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 for the Task executable due to a nonzero exit code. 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 after the first attempt. If the maximum * retry count is -1, the Batch service retries the Task without limit. * * @param {object} [task.userIdentity] The user identity under which the Task * runs. If omitted, the Task runs as a non-administrative user unique to the * Task. * * @param {string} [task.userIdentity.userName] The name of the user identity * under which the Task is run. The userName and autoUser properties are * mutually exclusive; you must specify one but not both. * * @param {object} [task.userIdentity.autoUser] The auto user under which the * Task is run. The userName and autoUser properties are mutually exclusive; * you must specify one but not both. * * @param {string} [task.userIdentity.autoUser.scope] 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, or if certificates have been specified on the pool which should * not be accessible by normal tasks but should be accessible by StartTasks. * Possible values include: 'task', 'pool' * * @param {string} [task.userIdentity.autoUser.elevationLevel] The elevation * level of the auto user. The default value is nonAdmin. Possible values * include: 'nonAdmin', 'admin' * * @param {object} [task.multiInstanceSettings] An object that indicates that * the Task is a multi-instance Task, and contains information about how to run * the multi-instance Task. * * @param {number} [task.multiInstanceSettings.numberOfInstances] The number of * Compute Nodes required by the Task. If omitted, the default is 1. * * @param {string} task.multiInstanceSettings.coordinationCommandLine The * command line to run on all the Compute Nodes to enable them to coordinate * when the primary runs the main Task command. A typical coordination command * line launches a background service and verifies that the service is ready to * process inter-node messages. * * @param {array} [task.multiInstanceSettings.commonResourceFiles] A list of * files that the Batch service will download before running the coordination * command line. The difference between common resource files and Task resource * files is that common resource files are downloaded for all subtasks * including the primary, whereas Task resource files are downloaded only for * the primary. Also note that these resource files are not downloaded to the * Task working directory, but instead are downloaded to the Task root * directory (one directory above the working directory). 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. * * @param {object} [task.dependsOn] The Tasks that this Task depends on. This * Task will not be scheduled until all Tasks that it depends on have completed * successfully. If any of those Tasks fail and exhaust their retry counts, * this Task will never be scheduled. If the Job does not have * usesTaskDependencies set to true, and this element is present, the request * fails with error code TaskDependenciesNotSpecifiedOnJob. * * @param {array} [task.dependsOn.taskIds] The list of Task IDs that this Task * depends on. All Tasks in this list must complete successfully before the * dependent Task can be scheduled. The taskIds collection is limited to 64000 * characters total (i.e. the combined length of all Task IDs). If the taskIds * collection exceeds the maximum length, the Add Task request fails with error * code TaskDependencyListTooLong. In this case consider using Task ID ranges * instead. * * @param {array} [task.dependsOn.taskIdRanges] The list of Task ID ranges that * this Task depends on. All Tasks in all ranges must complete successfully * before the dependent Task can be scheduled. * * @param {array} [task.applicationPackageReferences] A list of Packages that * the Batch service will deploy to the Compute Node before running the command * line. Application packages are downloaded and deployed to a shared * directory, not the Task working directory. Therefore, if a referenced * package is already on the Node, and is up to date, then it is not * re-downloaded; the existing copy on the Compute Node is used. If a * referenced Package cannot be installed, for example because the package has * been deleted or because download failed, the Task fails. * * @param {object} [task.authenticationTokenSettings] The settings for an * authentication token that the Task can use to perform Batch service * operations. If this property is set, the Batch service provides the Task * with an authentication token which can be used to authenticate Batch service * operations without requiring an Account access key. The token is provided * via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations * that the Task can carry out using the token depend on the settings. For * example, a Task can request Job permissions in order to add other Tasks to * the Job, or check the status of the Job or of other Tasks under the Job. * * @param {array} [task.authenticationTokenSettings.access] The Batch resources * to which the token grants access. The authentication token grants access to * a limited set of Batch service operations. Currently the only supported * value for the access property is 'job', which grants access to all * operations related to the Job which contains the Task. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskAddOptions] Additional parameters for the * operation * * @param {number} [options.taskAddOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskAddOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskAddOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.taskAddOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ add(jobId: string, task: models.TaskAddParameter, options?: { taskAddOptions? : models.TaskAddOptions, customHeaders? : { [headerName: string]: string; } }): Promise; add(jobId: string, task: models.TaskAddParameter, callback: ServiceCallback): void; add(jobId: string, task: models.TaskAddParameter, options: { taskAddOptions? : models.TaskAddOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Tasks that are associated with the specified Job. * * For multi-instance Tasks, information such as affinityId, executionInfo and * nodeInfo refer to the primary Task. Use the list subtasks API to retrieve * information about subtasks. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskListOptions] Additional parameters for the * operation * * @param {string} [options.taskListOptions.filter] An OData $filter clause. * For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. * * @param {string} [options.taskListOptions.select] An OData $select clause. * * @param {string} [options.taskListOptions.expand] An OData $expand clause. * * @param {number} [options.taskListOptions.maxResults] The maximum number of * items to return in the response. A maximum of 1000 Tasks can be returned. * * @param {number} [options.taskListOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskListOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskListOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.taskListOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(jobId: string, options?: { taskListOptions? : models.TaskListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Tasks that are associated with the specified Job. * * For multi-instance Tasks, information such as affinityId, executionInfo and * nodeInfo refer to the primary Task. Use the list subtasks API to retrieve * information about subtasks. * * @param {string} jobId The ID of the Job. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskListOptions] Additional parameters for the * operation * * @param {string} [options.taskListOptions.filter] An OData $filter clause. * For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. * * @param {string} [options.taskListOptions.select] An OData $select clause. * * @param {string} [options.taskListOptions.expand] An OData $expand clause. * * @param {number} [options.taskListOptions.maxResults] The maximum number of * items to return in the response. A maximum of 1000 Tasks can be returned. * * @param {number} [options.taskListOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskListOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskListOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.taskListOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudTaskListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudTaskListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudTaskListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(jobId: string, options?: { taskListOptions? : models.TaskListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(jobId: string, callback: ServiceCallback): void; list(jobId: string, options: { taskListOptions? : models.TaskListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Adds a collection of Tasks to the specified Job. * * Note that each Task must have a unique ID. The Batch service may not return * the results for each Task in the same order the Tasks were submitted in this * request. If the server times out or the connection is closed during the * request, the request may have been partially or fully processed, or not at * all. In such cases, the user should re-issue the request. Note that it is up * to the user to correctly handle failures when re-issuing a request. For * example, you should use the same Task IDs during a retry so that if the * prior operation succeeded, the retry will not create extra Tasks * unexpectedly. If the response contains any Tasks which failed to add, a * client can retry the request. In a retry, it is most efficient to resubmit * only Tasks that failed to add, and to omit Tasks that were successfully * added on the first attempt. The maximum lifetime of a Task from addition to * completion is 180 days. If a Task has not completed within 180 days of being * added it will be terminated by the Batch service and left in whatever state * it was in at that time. * * @param {string} jobId The ID of the Job to which the Task collection is to * be added. * * @param {array} value The collection of Tasks to add. The maximum count of * Tasks is 100. The total serialized size of this collection must be less than * 1MB. If it is greater than 1MB (for example if each Task has 100's of * resource files or environment variables), the request will fail with code * 'RequestBodyTooLarge' and should be retried again with fewer Tasks. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskAddCollectionOptions] Additional parameters for * the operation * * @param {number} [options.taskAddCollectionOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskAddCollectionOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskAddCollectionOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskAddCollectionOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addCollectionWithHttpOperationResponse(jobId: string, value: models.TaskAddParameter[], options?: { taskAddCollectionOptions? : models.TaskAddCollectionOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a collection of Tasks to the specified Job. * * Note that each Task must have a unique ID. The Batch service may not return * the results for each Task in the same order the Tasks were submitted in this * request. If the server times out or the connection is closed during the * request, the request may have been partially or fully processed, or not at * all. In such cases, the user should re-issue the request. Note that it is up * to the user to correctly handle failures when re-issuing a request. For * example, you should use the same Task IDs during a retry so that if the * prior operation succeeded, the retry will not create extra Tasks * unexpectedly. If the response contains any Tasks which failed to add, a * client can retry the request. In a retry, it is most efficient to resubmit * only Tasks that failed to add, and to omit Tasks that were successfully * added on the first attempt. The maximum lifetime of a Task from addition to * completion is 180 days. If a Task has not completed within 180 days of being * added it will be terminated by the Batch service and left in whatever state * it was in at that time. * * @param {string} jobId The ID of the Job to which the Task collection is to * be added. * * @param {array} value The collection of Tasks to add. The maximum count of * Tasks is 100. The total serialized size of this collection must be less than * 1MB. If it is greater than 1MB (for example if each Task has 100's of * resource files or environment variables), the request will fail with code * 'RequestBodyTooLarge' and should be retried again with fewer Tasks. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskAddCollectionOptions] Additional parameters for * the operation * * @param {number} [options.taskAddCollectionOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskAddCollectionOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskAddCollectionOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskAddCollectionOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {TaskAddCollectionResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {TaskAddCollectionResult} [result] - The deserialized result object if an error did not occur. * See {@link TaskAddCollectionResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ addCollection(jobId: string, value: models.TaskAddParameter[], options?: { taskAddCollectionOptions? : models.TaskAddCollectionOptions, customHeaders? : { [headerName: string]: string; } }): Promise; addCollection(jobId: string, value: models.TaskAddParameter[], callback: ServiceCallback): void; addCollection(jobId: string, value: models.TaskAddParameter[], options: { taskAddCollectionOptions? : models.TaskAddCollectionOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes a Task from the specified Job. * * When a Task is deleted, all of the files in its directory on the Compute * Node where it ran are also deleted (regardless of the retention time). For * multi-instance Tasks, the delete Task operation applies synchronously to the * primary task; subtasks and their files are then deleted asynchronously in * the background. * * @param {string} jobId The ID of the Job from which to delete the Task. * * @param {string} taskId The ID of the Task to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskDeleteMethodOptions] Additional parameters for * the operation * * @param {number} [options.taskDeleteMethodOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskDeleteMethodOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskDeleteMethodOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskDeleteMethodOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.taskDeleteMethodOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskDeleteMethodOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskDeleteMethodOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteMethodWithHttpOperationResponse(jobId: string, taskId: string, options?: { taskDeleteMethodOptions? : models.TaskDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes a Task from the specified Job. * * When a Task is deleted, all of the files in its directory on the Compute * Node where it ran are also deleted (regardless of the retention time). For * multi-instance Tasks, the delete Task operation applies synchronously to the * primary task; subtasks and their files are then deleted asynchronously in * the background. * * @param {string} jobId The ID of the Job from which to delete the Task. * * @param {string} taskId The ID of the Task to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskDeleteMethodOptions] Additional parameters for * the operation * * @param {number} [options.taskDeleteMethodOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskDeleteMethodOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskDeleteMethodOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskDeleteMethodOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskDeleteMethodOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.taskDeleteMethodOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskDeleteMethodOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskDeleteMethodOptions.ifUnmodifiedSince] A * timestamp indicating the last modified time of the resource known to the * client. The operation will be performed only if the resource on the service * has not been modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteMethod(jobId: string, taskId: string, options?: { taskDeleteMethodOptions? : models.TaskDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteMethod(jobId: string, taskId: string, callback: ServiceCallback): void; deleteMethod(jobId: string, taskId: string, options: { taskDeleteMethodOptions? : models.TaskDeleteMethodOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets information about the specified Task. * * For multi-instance Tasks, information such as affinityId, executionInfo and * nodeInfo refer to the primary Task. Use the list subtasks API to retrieve * information about subtasks. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task to get information about. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskGetOptions] Additional parameters for the * operation * * @param {string} [options.taskGetOptions.select] An OData $select clause. * * @param {string} [options.taskGetOptions.expand] An OData $expand clause. * * @param {number} [options.taskGetOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskGetOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskGetOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.taskGetOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskGetOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.taskGetOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskGetOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(jobId: string, taskId: string, options?: { taskGetOptions? : models.TaskGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets information about the specified Task. * * For multi-instance Tasks, information such as affinityId, executionInfo and * nodeInfo refer to the primary Task. Use the list subtasks API to retrieve * information about subtasks. * * @param {string} jobId The ID of the Job that contains the Task. * * @param {string} taskId The ID of the Task to get information about. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskGetOptions] Additional parameters for the * operation * * @param {string} [options.taskGetOptions.select] An OData $select clause. * * @param {string} [options.taskGetOptions.expand] An OData $expand clause. * * @param {number} [options.taskGetOptions.timeout] The maximum time that the * server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskGetOptions.clientRequestId] The caller-generated * request identity, in the form of a GUID with no decoration such as curly * braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskGetOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.taskGetOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskGetOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.taskGetOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskGetOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskGetOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudTask} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudTask} [result] - The deserialized result object if an error did not occur. * See {@link CloudTask} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(jobId: string, taskId: string, options?: { taskGetOptions? : models.TaskGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(jobId: string, taskId: string, callback: ServiceCallback): void; get(jobId: string, taskId: string, options: { taskGetOptions? : models.TaskGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * Updates the properties of the specified Task. * * @param {string} jobId The ID of the Job containing the Task. * * @param {string} taskId The ID of the Task to update. * * @param {object} [options] Optional Parameters. * * @param {object} [options.constraints] Constraints that apply to this Task. * If omitted, the Task is given the default constraints. For multi-instance * Tasks, updating the retention time applies only to the primary Task and not * subtasks. * * @param {moment.duration} [options.constraints.maxWallClockTime] The maximum * elapsed time that the Task may run, measured from the time the Task starts. * If the Task does not complete within the time limit, the Batch service * terminates it. If this is not specified, there is no time limit on how long * the Task may run. * * @param {moment.duration} [options.constraints.retentionTime] The minimum * time to retain the Task directory on the Compute Node where it ran, from the * time it completes execution. After this time, the Batch service may delete * the Task directory and all its contents. The default is 7 days, i.e. the * Task directory will be retained for 7 days unless the Compute Node is * removed or the Job is deleted. * * @param {number} [options.constraints.maxTaskRetryCount] 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 for the Task executable due to a nonzero exit code. 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 after the first attempt. If the maximum * retry count is -1, the Batch service retries the Task without limit. * * @param {object} [options.taskUpdateOptions] Additional parameters for the * operation * * @param {number} [options.taskUpdateOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskUpdateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskUpdateOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.taskUpdateOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskUpdateOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.taskUpdateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskUpdateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskUpdateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ updateWithHttpOperationResponse(jobId: string, taskId: string, options?: { constraints? : models.TaskConstraints, taskUpdateOptions? : models.TaskUpdateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * Updates the properties of the specified Task. * * @param {string} jobId The ID of the Job containing the Task. * * @param {string} taskId The ID of the Task to update. * * @param {object} [options] Optional Parameters. * * @param {object} [options.constraints] Constraints that apply to this Task. * If omitted, the Task is given the default constraints. For multi-instance * Tasks, updating the retention time applies only to the primary Task and not * subtasks. * * @param {moment.duration} [options.constraints.maxWallClockTime] The maximum * elapsed time that the Task may run, measured from the time the Task starts. * If the Task does not complete within the time limit, the Batch service * terminates it. If this is not specified, there is no time limit on how long * the Task may run. * * @param {moment.duration} [options.constraints.retentionTime] The minimum * time to retain the Task directory on the Compute Node where it ran, from the * time it completes execution. After this time, the Batch service may delete * the Task directory and all its contents. The default is 7 days, i.e. the * Task directory will be retained for 7 days unless the Compute Node is * removed or the Job is deleted. * * @param {number} [options.constraints.maxTaskRetryCount] 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 for the Task executable due to a nonzero exit code. 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 after the first attempt. If the maximum * retry count is -1, the Batch service retries the Task without limit. * * @param {object} [options.taskUpdateOptions] Additional parameters for the * operation * * @param {number} [options.taskUpdateOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskUpdateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskUpdateOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.taskUpdateOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskUpdateOptions.ifMatch] An ETag value associated * with the version of the resource known to the client. The operation will be * performed only if the resource's current ETag on the service exactly matches * the value specified by the client. * * @param {string} [options.taskUpdateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskUpdateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskUpdateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ update(jobId: string, taskId: string, options?: { constraints? : models.TaskConstraints, taskUpdateOptions? : models.TaskUpdateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; update(jobId: string, taskId: string, callback: ServiceCallback): void; update(jobId: string, taskId: string, options: { constraints? : models.TaskConstraints, taskUpdateOptions? : models.TaskUpdateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the subtasks that are associated with the specified * multi-instance Task. * * If the Task is not a multi-instance Task then this returns an empty * collection. * * @param {string} jobId The ID of the Job. * * @param {string} taskId The ID of the Task. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskListSubtasksOptions] Additional parameters for * the operation * * @param {string} [options.taskListSubtasksOptions.select] An OData $select * clause. * * @param {number} [options.taskListSubtasksOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskListSubtasksOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskListSubtasksOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskListSubtasksOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listSubtasksWithHttpOperationResponse(jobId: string, taskId: string, options?: { taskListSubtasksOptions? : models.TaskListSubtasksOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the subtasks that are associated with the specified * multi-instance Task. * * If the Task is not a multi-instance Task then this returns an empty * collection. * * @param {string} jobId The ID of the Job. * * @param {string} taskId The ID of the Task. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskListSubtasksOptions] Additional parameters for * the operation * * @param {string} [options.taskListSubtasksOptions.select] An OData $select * clause. * * @param {number} [options.taskListSubtasksOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskListSubtasksOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskListSubtasksOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskListSubtasksOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudTaskListSubtasksResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudTaskListSubtasksResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudTaskListSubtasksResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listSubtasks(jobId: string, taskId: string, options?: { taskListSubtasksOptions? : models.TaskListSubtasksOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listSubtasks(jobId: string, taskId: string, callback: ServiceCallback): void; listSubtasks(jobId: string, taskId: string, options: { taskListSubtasksOptions? : models.TaskListSubtasksOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Terminates the specified Task. * * When the Task has been terminated, it moves to the completed state. For * multi-instance Tasks, the terminate Task operation applies synchronously to * the primary task; subtasks are then terminated asynchronously in the * background. * * @param {string} jobId The ID of the Job containing the Task. * * @param {string} taskId The ID of the Task to terminate. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskTerminateOptions] Additional parameters for the * operation * * @param {number} [options.taskTerminateOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskTerminateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskTerminateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskTerminateOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskTerminateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.taskTerminateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskTerminateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskTerminateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ terminateWithHttpOperationResponse(jobId: string, taskId: string, options?: { taskTerminateOptions? : models.TaskTerminateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Terminates the specified Task. * * When the Task has been terminated, it moves to the completed state. For * multi-instance Tasks, the terminate Task operation applies synchronously to * the primary task; subtasks are then terminated asynchronously in the * background. * * @param {string} jobId The ID of the Job containing the Task. * * @param {string} taskId The ID of the Task to terminate. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskTerminateOptions] Additional parameters for the * operation * * @param {number} [options.taskTerminateOptions.timeout] The maximum time that * the server can spend processing the request, in seconds. The default is 30 * seconds. * * @param {uuid} [options.taskTerminateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskTerminateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskTerminateOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskTerminateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.taskTerminateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskTerminateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskTerminateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ terminate(jobId: string, taskId: string, options?: { taskTerminateOptions? : models.TaskTerminateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; terminate(jobId: string, taskId: string, callback: ServiceCallback): void; terminate(jobId: string, taskId: string, options: { taskTerminateOptions? : models.TaskTerminateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Reactivates a Task, allowing it to run again even if its retry * count has been exhausted. * * Reactivation makes a Task eligible to be retried again up to its maximum * retry count. The Task's state is changed to active. As the Task is no longer * in the completed state, any previous exit code or failure information is no * longer available after reactivation. Each time a Task is reactivated, its * retry count is reset to 0. Reactivation will fail for Tasks that are not * completed or that previously completed successfully (with an exit code of * 0). Additionally, it will fail if the Job has completed (or is terminating * or deleting). * * @param {string} jobId The ID of the Job containing the Task. * * @param {string} taskId The ID of the Task to reactivate. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskReactivateOptions] Additional parameters for * the operation * * @param {number} [options.taskReactivateOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskReactivateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskReactivateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskReactivateOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskReactivateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.taskReactivateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskReactivateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskReactivateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ reactivateWithHttpOperationResponse(jobId: string, taskId: string, options?: { taskReactivateOptions? : models.TaskReactivateOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Reactivates a Task, allowing it to run again even if its retry * count has been exhausted. * * Reactivation makes a Task eligible to be retried again up to its maximum * retry count. The Task's state is changed to active. As the Task is no longer * in the completed state, any previous exit code or failure information is no * longer available after reactivation. Each time a Task is reactivated, its * retry count is reset to 0. Reactivation will fail for Tasks that are not * completed or that previously completed successfully (with an exit code of * 0). Additionally, it will fail if the Job has completed (or is terminating * or deleting). * * @param {string} jobId The ID of the Job containing the Task. * * @param {string} taskId The ID of the Task to reactivate. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskReactivateOptions] Additional parameters for * the operation * * @param {number} [options.taskReactivateOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.taskReactivateOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskReactivateOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.taskReactivateOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {string} [options.taskReactivateOptions.ifMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service exactly matches the value specified by the client. * * @param {string} [options.taskReactivateOptions.ifNoneMatch] An ETag value * associated with the version of the resource known to the client. The * operation will be performed only if the resource's current ETag on the * service does not match the value specified by the client. * * @param {date} [options.taskReactivateOptions.ifModifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has been * modified since the specified time. * * @param {date} [options.taskReactivateOptions.ifUnmodifiedSince] A timestamp * indicating the last modified time of the resource known to the client. The * operation will be performed only if the resource on the service has not been * modified since the specified time. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ reactivate(jobId: string, taskId: string, options?: { taskReactivateOptions? : models.TaskReactivateOptions, customHeaders? : { [headerName: string]: string; } }): Promise; reactivate(jobId: string, taskId: string, callback: ServiceCallback): void; reactivate(jobId: string, taskId: string, options: { taskReactivateOptions? : models.TaskReactivateOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists all of the Tasks that are associated with the specified Job. * * For multi-instance Tasks, information such as affinityId, executionInfo and * nodeInfo refer to the primary Task. Use the list subtasks API to retrieve * information about subtasks. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskListNextOptions] Additional parameters for the * operation * * @param {uuid} [options.taskListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskListNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.taskListNextOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { taskListNextOptions? : models.TaskListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists all of the Tasks that are associated with the specified Job. * * For multi-instance Tasks, information such as affinityId, executionInfo and * nodeInfo refer to the primary Task. Use the list subtasks API to retrieve * information about subtasks. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.taskListNextOptions] Additional parameters for the * operation * * @param {uuid} [options.taskListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.taskListNextOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.taskListNextOptions.ocpDate] The time the request was * issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {CloudTaskListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {CloudTaskListResult} [result] - The deserialized result object if an error did not occur. * See {@link CloudTaskListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { taskListNextOptions? : models.TaskListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { taskListNextOptions? : models.TaskListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; } /** * @class * ComputeNodeOperations * __NOTE__: An instance of this class is automatically created for an * instance of the BatchServiceClient. */ export interface ComputeNodeOperations { /** * @summary Adds a user Account to the specified Compute Node. * * You can add a user Account to a Compute Node only when it is in the idle or * running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the machine on which you want to create a * user Account. * * @param {object} user The user Account to be created. * * @param {string} user.name The user name of the Account. * * @param {boolean} [user.isAdmin] Whether the Account should be an * administrator on the Compute Node. The default value is false. * * @param {date} [user.expiryTime] The time at which the Account should expire. * If omitted, the default is 1 day from the current time. For Linux Compute * Nodes, the expiryTime has a precision up to a day. * * @param {string} [user.password] The password of the Account. The password is * required for Windows Compute Nodes (those created with * 'cloudServiceConfiguration', or created with 'virtualMachineConfiguration' * using a Windows Image reference). For Linux Compute Nodes, the password can * optionally be specified along with the sshPublicKey property. * * @param {string} [user.sshPublicKey] The SSH public key that can be used for * remote login to the Compute Node. The public key should be compatible with * OpenSSH encoding and should be base 64 encoded. This property can be * specified only for Linux Compute Nodes. If this is specified for a Windows * Compute Node, then the Batch service rejects the request; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeAddUserOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeAddUserOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeAddUserOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeAddUserOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeAddUserOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ addUserWithHttpOperationResponse(poolId: string, nodeId: string, user: models.ComputeNodeUser, options?: { computeNodeAddUserOptions? : models.ComputeNodeAddUserOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Adds a user Account to the specified Compute Node. * * You can add a user Account to a Compute Node only when it is in the idle or * running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the machine on which you want to create a * user Account. * * @param {object} user The user Account to be created. * * @param {string} user.name The user name of the Account. * * @param {boolean} [user.isAdmin] Whether the Account should be an * administrator on the Compute Node. The default value is false. * * @param {date} [user.expiryTime] The time at which the Account should expire. * If omitted, the default is 1 day from the current time. For Linux Compute * Nodes, the expiryTime has a precision up to a day. * * @param {string} [user.password] The password of the Account. The password is * required for Windows Compute Nodes (those created with * 'cloudServiceConfiguration', or created with 'virtualMachineConfiguration' * using a Windows Image reference). For Linux Compute Nodes, the password can * optionally be specified along with the sshPublicKey property. * * @param {string} [user.sshPublicKey] The SSH public key that can be used for * remote login to the Compute Node. The public key should be compatible with * OpenSSH encoding and should be base 64 encoded. This property can be * specified only for Linux Compute Nodes. If this is specified for a Windows * Compute Node, then the Batch service rejects the request; if you are calling * the REST API directly, the HTTP status code is 400 (Bad Request). * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeAddUserOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeAddUserOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeAddUserOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeAddUserOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeAddUserOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ addUser(poolId: string, nodeId: string, user: models.ComputeNodeUser, options?: { computeNodeAddUserOptions? : models.ComputeNodeAddUserOptions, customHeaders? : { [headerName: string]: string; } }): Promise; addUser(poolId: string, nodeId: string, user: models.ComputeNodeUser, callback: ServiceCallback): void; addUser(poolId: string, nodeId: string, user: models.ComputeNodeUser, options: { computeNodeAddUserOptions? : models.ComputeNodeAddUserOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Deletes a user Account from the specified Compute Node. * * You can delete a user Account to a Compute Node only when it is in the idle * or running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the machine on which you want to delete a * user Account. * * @param {string} userName The name of the user Account to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeDeleteUserOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeDeleteUserOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.computeNodeDeleteUserOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeDeleteUserOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.computeNodeDeleteUserOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ deleteUserWithHttpOperationResponse(poolId: string, nodeId: string, userName: string, options?: { computeNodeDeleteUserOptions? : models.ComputeNodeDeleteUserOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Deletes a user Account from the specified Compute Node. * * You can delete a user Account to a Compute Node only when it is in the idle * or running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the machine on which you want to delete a * user Account. * * @param {string} userName The name of the user Account to delete. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeDeleteUserOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeDeleteUserOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.computeNodeDeleteUserOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeDeleteUserOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.computeNodeDeleteUserOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ deleteUser(poolId: string, nodeId: string, userName: string, options?: { computeNodeDeleteUserOptions? : models.ComputeNodeDeleteUserOptions, customHeaders? : { [headerName: string]: string; } }): Promise; deleteUser(poolId: string, nodeId: string, userName: string, callback: ServiceCallback): void; deleteUser(poolId: string, nodeId: string, userName: string, options: { computeNodeDeleteUserOptions? : models.ComputeNodeDeleteUserOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Updates the password and expiration time of a user Account on the * specified Compute Node. * * This operation replaces of all the updatable properties of the Account. For * example, if the expiryTime element is not specified, the current value is * replaced with the default value, not left unmodified. You can update a user * Account on a Compute Node only when it is in the idle or running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the machine on which you want to update a * user Account. * * @param {string} userName The name of the user Account to update. * * @param {object} nodeUpdateUserParameter The parameters for the request. * * @param {string} [nodeUpdateUserParameter.password] The password of the * Account. The password is required for Windows Compute Nodes (those created * with 'cloudServiceConfiguration', or created with * 'virtualMachineConfiguration' using a Windows Image reference). For Linux * Compute Nodes, the password can optionally be specified along with the * sshPublicKey property. If omitted, any existing password is removed. * * @param {date} [nodeUpdateUserParameter.expiryTime] The time at which the * Account should expire. If omitted, the default is 1 day from the current * time. For Linux Compute Nodes, the expiryTime has a precision up to a day. * * @param {string} [nodeUpdateUserParameter.sshPublicKey] The SSH public key * that can be used for remote login to the Compute Node. The public key should * be compatible with OpenSSH encoding and should be base 64 encoded. This * property can be specified only for Linux Compute Nodes. If this is specified * for a Windows Compute Node, then the Batch service rejects the request; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). If omitted, any existing SSH public key is removed. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeUpdateUserOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeUpdateUserOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.computeNodeUpdateUserOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeUpdateUserOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.computeNodeUpdateUserOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ updateUserWithHttpOperationResponse(poolId: string, nodeId: string, userName: string, nodeUpdateUserParameter: models.NodeUpdateUserParameter, options?: { computeNodeUpdateUserOptions? : models.ComputeNodeUpdateUserOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Updates the password and expiration time of a user Account on the * specified Compute Node. * * This operation replaces of all the updatable properties of the Account. For * example, if the expiryTime element is not specified, the current value is * replaced with the default value, not left unmodified. You can update a user * Account on a Compute Node only when it is in the idle or running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the machine on which you want to update a * user Account. * * @param {string} userName The name of the user Account to update. * * @param {object} nodeUpdateUserParameter The parameters for the request. * * @param {string} [nodeUpdateUserParameter.password] The password of the * Account. The password is required for Windows Compute Nodes (those created * with 'cloudServiceConfiguration', or created with * 'virtualMachineConfiguration' using a Windows Image reference). For Linux * Compute Nodes, the password can optionally be specified along with the * sshPublicKey property. If omitted, any existing password is removed. * * @param {date} [nodeUpdateUserParameter.expiryTime] The time at which the * Account should expire. If omitted, the default is 1 day from the current * time. For Linux Compute Nodes, the expiryTime has a precision up to a day. * * @param {string} [nodeUpdateUserParameter.sshPublicKey] The SSH public key * that can be used for remote login to the Compute Node. The public key should * be compatible with OpenSSH encoding and should be base 64 encoded. This * property can be specified only for Linux Compute Nodes. If this is specified * for a Windows Compute Node, then the Batch service rejects the request; if * you are calling the REST API directly, the HTTP status code is 400 (Bad * Request). If omitted, any existing SSH public key is removed. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeUpdateUserOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeUpdateUserOptions.timeout] The maximum * time that the server can spend processing the request, in seconds. The * default is 30 seconds. * * @param {uuid} [options.computeNodeUpdateUserOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeUpdateUserOptions.returnClientRequestId] Whether the * server should return the client-request-id in the response. * * @param {date} [options.computeNodeUpdateUserOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ updateUser(poolId: string, nodeId: string, userName: string, nodeUpdateUserParameter: models.NodeUpdateUserParameter, options?: { computeNodeUpdateUserOptions? : models.ComputeNodeUpdateUserOptions, customHeaders? : { [headerName: string]: string; } }): Promise; updateUser(poolId: string, nodeId: string, userName: string, nodeUpdateUserParameter: models.NodeUpdateUserParameter, callback: ServiceCallback): void; updateUser(poolId: string, nodeId: string, userName: string, nodeUpdateUserParameter: models.NodeUpdateUserParameter, options: { computeNodeUpdateUserOptions? : models.ComputeNodeUpdateUserOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets information about the specified Compute Node. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that you want to get * information about. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeGetOptions] Additional parameters for * the operation * * @param {string} [options.computeNodeGetOptions.select] An OData $select * clause. * * @param {number} [options.computeNodeGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getWithHttpOperationResponse(poolId: string, nodeId: string, options?: { computeNodeGetOptions? : models.ComputeNodeGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets information about the specified Compute Node. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that you want to get * information about. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeGetOptions] Additional parameters for * the operation * * @param {string} [options.computeNodeGetOptions.select] An OData $select * clause. * * @param {number} [options.computeNodeGetOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeGetOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeGetOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeGetOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ComputeNode} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ComputeNode} [result] - The deserialized result object if an error did not occur. * See {@link ComputeNode} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ get(poolId: string, nodeId: string, options?: { computeNodeGetOptions? : models.ComputeNodeGetOptions, customHeaders? : { [headerName: string]: string; } }): Promise; get(poolId: string, nodeId: string, callback: ServiceCallback): void; get(poolId: string, nodeId: string, options: { computeNodeGetOptions? : models.ComputeNodeGetOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Restarts the specified Compute Node. * * You can restart a Compute Node only if it is in an idle or running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that you want to restart. * * @param {object} [options] Optional Parameters. * * @param {string} [options.nodeRebootOption] When to reboot the Compute Node * and what to do with currently running Tasks. The default value is requeue. * Possible values include: 'requeue', 'terminate', 'taskCompletion', * 'retainedData' * * @param {object} [options.computeNodeRebootOptions] Additional parameters for * the operation * * @param {number} [options.computeNodeRebootOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeRebootOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeRebootOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeRebootOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ rebootWithHttpOperationResponse(poolId: string, nodeId: string, options?: { nodeRebootOption? : string, computeNodeRebootOptions? : models.ComputeNodeRebootOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Restarts the specified Compute Node. * * You can restart a Compute Node only if it is in an idle or running state. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that you want to restart. * * @param {object} [options] Optional Parameters. * * @param {string} [options.nodeRebootOption] When to reboot the Compute Node * and what to do with currently running Tasks. The default value is requeue. * Possible values include: 'requeue', 'terminate', 'taskCompletion', * 'retainedData' * * @param {object} [options.computeNodeRebootOptions] Additional parameters for * the operation * * @param {number} [options.computeNodeRebootOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeRebootOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeRebootOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeRebootOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ reboot(poolId: string, nodeId: string, options?: { nodeRebootOption? : string, computeNodeRebootOptions? : models.ComputeNodeRebootOptions, customHeaders? : { [headerName: string]: string; } }): Promise; reboot(poolId: string, nodeId: string, callback: ServiceCallback): void; reboot(poolId: string, nodeId: string, options: { nodeRebootOption? : string, computeNodeRebootOptions? : models.ComputeNodeRebootOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Reinstalls the operating system on the specified Compute Node. * * You can reinstall the operating system on a Compute Node only if it is in an * idle or running state. This API can be invoked only on Pools created with * the cloud service configuration property. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that you want to restart. * * @param {object} [options] Optional Parameters. * * @param {string} [options.nodeReimageOption] When to reimage the Compute Node * and what to do with currently running Tasks. The default value is requeue. * Possible values include: 'requeue', 'terminate', 'taskCompletion', * 'retainedData' * * @param {object} [options.computeNodeReimageOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeReimageOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeReimageOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeReimageOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeReimageOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ reimageWithHttpOperationResponse(poolId: string, nodeId: string, options?: { nodeReimageOption? : string, computeNodeReimageOptions? : models.ComputeNodeReimageOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Reinstalls the operating system on the specified Compute Node. * * You can reinstall the operating system on a Compute Node only if it is in an * idle or running state. This API can be invoked only on Pools created with * the cloud service configuration property. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node that you want to restart. * * @param {object} [options] Optional Parameters. * * @param {string} [options.nodeReimageOption] When to reimage the Compute Node * and what to do with currently running Tasks. The default value is requeue. * Possible values include: 'requeue', 'terminate', 'taskCompletion', * 'retainedData' * * @param {object} [options.computeNodeReimageOptions] Additional parameters * for the operation * * @param {number} [options.computeNodeReimageOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeReimageOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeReimageOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeReimageOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ reimage(poolId: string, nodeId: string, options?: { nodeReimageOption? : string, computeNodeReimageOptions? : models.ComputeNodeReimageOptions, customHeaders? : { [headerName: string]: string; } }): Promise; reimage(poolId: string, nodeId: string, callback: ServiceCallback): void; reimage(poolId: string, nodeId: string, options: { nodeReimageOption? : string, computeNodeReimageOptions? : models.ComputeNodeReimageOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Disables Task scheduling on the specified Compute Node. * * You can disable Task scheduling on a Compute Node only if its current * scheduling state is enabled. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node on which you want to * disable Task scheduling. * * @param {object} [options] Optional Parameters. * * @param {string} [options.nodeDisableSchedulingOption] What to do with * currently running Tasks when disabling Task scheduling on the Compute Node. * The default value is requeue. Possible values include: 'requeue', * 'terminate', 'taskCompletion' * * @param {object} [options.computeNodeDisableSchedulingOptions] Additional * parameters for the operation * * @param {number} [options.computeNodeDisableSchedulingOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.computeNodeDisableSchedulingOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeDisableSchedulingOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.computeNodeDisableSchedulingOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ disableSchedulingWithHttpOperationResponse(poolId: string, nodeId: string, options?: { nodeDisableSchedulingOption? : string, computeNodeDisableSchedulingOptions? : models.ComputeNodeDisableSchedulingOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Disables Task scheduling on the specified Compute Node. * * You can disable Task scheduling on a Compute Node only if its current * scheduling state is enabled. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node on which you want to * disable Task scheduling. * * @param {object} [options] Optional Parameters. * * @param {string} [options.nodeDisableSchedulingOption] What to do with * currently running Tasks when disabling Task scheduling on the Compute Node. * The default value is requeue. Possible values include: 'requeue', * 'terminate', 'taskCompletion' * * @param {object} [options.computeNodeDisableSchedulingOptions] Additional * parameters for the operation * * @param {number} [options.computeNodeDisableSchedulingOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.computeNodeDisableSchedulingOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeDisableSchedulingOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.computeNodeDisableSchedulingOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ disableScheduling(poolId: string, nodeId: string, options?: { nodeDisableSchedulingOption? : string, computeNodeDisableSchedulingOptions? : models.ComputeNodeDisableSchedulingOptions, customHeaders? : { [headerName: string]: string; } }): Promise; disableScheduling(poolId: string, nodeId: string, callback: ServiceCallback): void; disableScheduling(poolId: string, nodeId: string, options: { nodeDisableSchedulingOption? : string, computeNodeDisableSchedulingOptions? : models.ComputeNodeDisableSchedulingOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Enables Task scheduling on the specified Compute Node. * * You can enable Task scheduling on a Compute Node only if its current * scheduling state is disabled * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node on which you want to * enable Task scheduling. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeEnableSchedulingOptions] Additional * parameters for the operation * * @param {number} [options.computeNodeEnableSchedulingOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.computeNodeEnableSchedulingOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeEnableSchedulingOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.computeNodeEnableSchedulingOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ enableSchedulingWithHttpOperationResponse(poolId: string, nodeId: string, options?: { computeNodeEnableSchedulingOptions? : models.ComputeNodeEnableSchedulingOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Enables Task scheduling on the specified Compute Node. * * You can enable Task scheduling on a Compute Node only if its current * scheduling state is disabled * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node on which you want to * enable Task scheduling. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeEnableSchedulingOptions] Additional * parameters for the operation * * @param {number} [options.computeNodeEnableSchedulingOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.computeNodeEnableSchedulingOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeEnableSchedulingOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.computeNodeEnableSchedulingOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {null} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {null} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ enableScheduling(poolId: string, nodeId: string, options?: { computeNodeEnableSchedulingOptions? : models.ComputeNodeEnableSchedulingOptions, customHeaders? : { [headerName: string]: string; } }): Promise; enableScheduling(poolId: string, nodeId: string, callback: ServiceCallback): void; enableScheduling(poolId: string, nodeId: string, options: { computeNodeEnableSchedulingOptions? : models.ComputeNodeEnableSchedulingOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets the settings required for remote login to a Compute Node. * * Before you can remotely login to a Compute Node using the remote login * settings, you must create a user Account on the Compute Node. This API can * be invoked only on Pools created with the virtual machine configuration * property. For Pools created with a cloud service configuration, see the * GetRemoteDesktop API. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node for which to obtain the * remote login settings. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeGetRemoteLoginSettingsOptions] * Additional parameters for the operation * * @param {number} [options.computeNodeGetRemoteLoginSettingsOptions.timeout] * The maximum time that the server can spend processing the request, in * seconds. The default is 30 seconds. * * @param {uuid} * [options.computeNodeGetRemoteLoginSettingsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeGetRemoteLoginSettingsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeGetRemoteLoginSettingsOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getRemoteLoginSettingsWithHttpOperationResponse(poolId: string, nodeId: string, options?: { computeNodeGetRemoteLoginSettingsOptions? : models.ComputeNodeGetRemoteLoginSettingsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets the settings required for remote login to a Compute Node. * * Before you can remotely login to a Compute Node using the remote login * settings, you must create a user Account on the Compute Node. This API can * be invoked only on Pools created with the virtual machine configuration * property. For Pools created with a cloud service configuration, see the * GetRemoteDesktop API. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node for which to obtain the * remote login settings. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeGetRemoteLoginSettingsOptions] * Additional parameters for the operation * * @param {number} [options.computeNodeGetRemoteLoginSettingsOptions.timeout] * The maximum time that the server can spend processing the request, in * seconds. The default is 30 seconds. * * @param {uuid} * [options.computeNodeGetRemoteLoginSettingsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeGetRemoteLoginSettingsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeGetRemoteLoginSettingsOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ComputeNodeGetRemoteLoginSettingsResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ComputeNodeGetRemoteLoginSettingsResult} [result] - The deserialized result object if an error did not occur. * See {@link ComputeNodeGetRemoteLoginSettingsResult} for * more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getRemoteLoginSettings(poolId: string, nodeId: string, options?: { computeNodeGetRemoteLoginSettingsOptions? : models.ComputeNodeGetRemoteLoginSettingsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getRemoteLoginSettings(poolId: string, nodeId: string, callback: ServiceCallback): void; getRemoteLoginSettings(poolId: string, nodeId: string, options: { computeNodeGetRemoteLoginSettingsOptions? : models.ComputeNodeGetRemoteLoginSettingsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Gets the Remote Desktop Protocol file for the specified Compute * Node. * * Before you can access a Compute Node by using the RDP file, you must create * a user Account on the Compute Node. This API can only be invoked on Pools * created with a cloud service configuration. For Pools created with a virtual * machine configuration, see the GetRemoteLoginSettings API. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node for which you want to get * the Remote Desktop Protocol file. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeGetRemoteDesktopOptions] Additional * parameters for the operation * * @param {number} [options.computeNodeGetRemoteDesktopOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.computeNodeGetRemoteDesktopOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeGetRemoteDesktopOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.computeNodeGetRemoteDesktopOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ getRemoteDesktopWithHttpOperationResponse(poolId: string, nodeId: string, options?: { computeNodeGetRemoteDesktopOptions? : models.ComputeNodeGetRemoteDesktopOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Gets the Remote Desktop Protocol file for the specified Compute * Node. * * Before you can access a Compute Node by using the RDP file, you must create * a user Account on the Compute Node. This API can only be invoked on Pools * created with a cloud service configuration. For Pools created with a virtual * machine configuration, see the GetRemoteLoginSettings API. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node for which you want to get * the Remote Desktop Protocol file. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeGetRemoteDesktopOptions] Additional * parameters for the operation * * @param {number} [options.computeNodeGetRemoteDesktopOptions.timeout] The * maximum time that the server can spend processing the request, in seconds. * The default is 30 seconds. * * @param {uuid} [options.computeNodeGetRemoteDesktopOptions.clientRequestId] * The caller-generated request identity, in the form of a GUID with no * decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeGetRemoteDesktopOptions.returnClientRequestId] Whether * the server should return the client-request-id in the response. * * @param {date} [options.computeNodeGetRemoteDesktopOptions.ocpDate] The time * the request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {Object} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {Object} [result] - The deserialized result object if an error did not occur. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ getRemoteDesktop(poolId: string, nodeId: string, options?: { computeNodeGetRemoteDesktopOptions? : models.ComputeNodeGetRemoteDesktopOptions, customHeaders? : { [headerName: string]: string; } }): Promise; getRemoteDesktop(poolId: string, nodeId: string, callback: ServiceCallback): void; getRemoteDesktop(poolId: string, nodeId: string, options: { computeNodeGetRemoteDesktopOptions? : models.ComputeNodeGetRemoteDesktopOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Upload Azure Batch service log files from the specified Compute * Node to Azure Blob Storage. * * This is for gathering Azure Batch service log files in an automated fashion * from Compute Nodes if you are experiencing an error and wish to escalate to * Azure support. The Azure Batch service log files should be shared with Azure * support to aid in debugging issues with the Batch service. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node from which you want to * upload the Azure Batch service log files. * * @param {object} uploadBatchServiceLogsConfiguration The Azure Batch service * log files upload configuration. * * @param {string} uploadBatchServiceLogsConfiguration.containerUrl The URL of * the container within Azure Blob Storage to which to upload the Batch Service * log file(s). The URL must include a Shared Access Signature (SAS) granting * write permissions to the container. The SAS duration must allow enough time * for the upload to finish. The start time for SAS is optional and recommended * to not be specified. * * @param {date} uploadBatchServiceLogsConfiguration.startTime The start of the * time range from which to upload Batch Service log file(s). Any log file * containing a log message in the time range will be uploaded. This means that * the operation might retrieve more logs than have been requested since the * entire log file is always uploaded, but the operation should not retrieve * fewer logs than have been requested. * * @param {date} [uploadBatchServiceLogsConfiguration.endTime] The end of the * time range from which to upload Batch Service log file(s). Any log file * containing a log message in the time range will be uploaded. This means that * the operation might retrieve more logs than have been requested since the * entire log file is always uploaded, but the operation should not retrieve * fewer logs than have been requested. If omitted, the default is to upload * all logs available after the startTime. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeUploadBatchServiceLogsOptions] * Additional parameters for the operation * * @param {number} [options.computeNodeUploadBatchServiceLogsOptions.timeout] * The maximum time that the server can spend processing the request, in * seconds. The default is 30 seconds. * * @param {uuid} * [options.computeNodeUploadBatchServiceLogsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeUploadBatchServiceLogsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeUploadBatchServiceLogsOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ uploadBatchServiceLogsWithHttpOperationResponse(poolId: string, nodeId: string, uploadBatchServiceLogsConfiguration: models.UploadBatchServiceLogsConfiguration, options?: { computeNodeUploadBatchServiceLogsOptions? : models.ComputeNodeUploadBatchServiceLogsOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Upload Azure Batch service log files from the specified Compute * Node to Azure Blob Storage. * * This is for gathering Azure Batch service log files in an automated fashion * from Compute Nodes if you are experiencing an error and wish to escalate to * Azure support. The Azure Batch service log files should be shared with Azure * support to aid in debugging issues with the Batch service. * * @param {string} poolId The ID of the Pool that contains the Compute Node. * * @param {string} nodeId The ID of the Compute Node from which you want to * upload the Azure Batch service log files. * * @param {object} uploadBatchServiceLogsConfiguration The Azure Batch service * log files upload configuration. * * @param {string} uploadBatchServiceLogsConfiguration.containerUrl The URL of * the container within Azure Blob Storage to which to upload the Batch Service * log file(s). The URL must include a Shared Access Signature (SAS) granting * write permissions to the container. The SAS duration must allow enough time * for the upload to finish. The start time for SAS is optional and recommended * to not be specified. * * @param {date} uploadBatchServiceLogsConfiguration.startTime The start of the * time range from which to upload Batch Service log file(s). Any log file * containing a log message in the time range will be uploaded. This means that * the operation might retrieve more logs than have been requested since the * entire log file is always uploaded, but the operation should not retrieve * fewer logs than have been requested. * * @param {date} [uploadBatchServiceLogsConfiguration.endTime] The end of the * time range from which to upload Batch Service log file(s). Any log file * containing a log message in the time range will be uploaded. This means that * the operation might retrieve more logs than have been requested since the * entire log file is always uploaded, but the operation should not retrieve * fewer logs than have been requested. If omitted, the default is to upload * all logs available after the startTime. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeUploadBatchServiceLogsOptions] * Additional parameters for the operation * * @param {number} [options.computeNodeUploadBatchServiceLogsOptions.timeout] * The maximum time that the server can spend processing the request, in * seconds. The default is 30 seconds. * * @param {uuid} * [options.computeNodeUploadBatchServiceLogsOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} * [options.computeNodeUploadBatchServiceLogsOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeUploadBatchServiceLogsOptions.ocpDate] The * time the request was issued. Client libraries typically set this to the * current system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {UploadBatchServiceLogsResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {UploadBatchServiceLogsResult} [result] - The deserialized result object if an error did not occur. * See {@link UploadBatchServiceLogsResult} for more * information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ uploadBatchServiceLogs(poolId: string, nodeId: string, uploadBatchServiceLogsConfiguration: models.UploadBatchServiceLogsConfiguration, options?: { computeNodeUploadBatchServiceLogsOptions? : models.ComputeNodeUploadBatchServiceLogsOptions, customHeaders? : { [headerName: string]: string; } }): Promise; uploadBatchServiceLogs(poolId: string, nodeId: string, uploadBatchServiceLogsConfiguration: models.UploadBatchServiceLogsConfiguration, callback: ServiceCallback): void; uploadBatchServiceLogs(poolId: string, nodeId: string, uploadBatchServiceLogsConfiguration: models.UploadBatchServiceLogsConfiguration, options: { computeNodeUploadBatchServiceLogsOptions? : models.ComputeNodeUploadBatchServiceLogsOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the Compute Nodes in the specified Pool. * * @param {string} poolId The ID of the Pool from which you want to list * Compute Nodes. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeListOptions] Additional parameters for * the operation * * @param {string} [options.computeNodeListOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. * * @param {string} [options.computeNodeListOptions.select] An OData $select * clause. * * @param {number} [options.computeNodeListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 Compute Nodes * can be returned. * * @param {number} [options.computeNodeListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listWithHttpOperationResponse(poolId: string, options?: { computeNodeListOptions? : models.ComputeNodeListOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the Compute Nodes in the specified Pool. * * @param {string} poolId The ID of the Pool from which you want to list * Compute Nodes. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeListOptions] Additional parameters for * the operation * * @param {string} [options.computeNodeListOptions.filter] An OData $filter * clause. For more information on constructing this filter, see * https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. * * @param {string} [options.computeNodeListOptions.select] An OData $select * clause. * * @param {number} [options.computeNodeListOptions.maxResults] The maximum * number of items to return in the response. A maximum of 1000 Compute Nodes * can be returned. * * @param {number} [options.computeNodeListOptions.timeout] The maximum time * that the server can spend processing the request, in seconds. The default is * 30 seconds. * * @param {uuid} [options.computeNodeListOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeListOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeListOptions.ocpDate] The time the request * was issued. Client libraries typically set this to the current system clock * time; set it explicitly if you are calling the REST API directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ComputeNodeListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ComputeNodeListResult} [result] - The deserialized result object if an error did not occur. * See {@link ComputeNodeListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ list(poolId: string, options?: { computeNodeListOptions? : models.ComputeNodeListOptions, customHeaders? : { [headerName: string]: string; } }): Promise; list(poolId: string, callback: ServiceCallback): void; list(poolId: string, options: { computeNodeListOptions? : models.ComputeNodeListOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; /** * @summary Lists the Compute Nodes in the specified Pool. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.computeNodeListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @returns {Promise} A promise is returned * * @resolve {HttpOperationResponse} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. */ listNextWithHttpOperationResponse(nextPageLink: string, options?: { computeNodeListNextOptions? : models.ComputeNodeListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise>; /** * @summary Lists the Compute Nodes in the specified Pool. * * @param {string} nextPageLink The NextLink from the previous successful call * to List operation. * * @param {object} [options] Optional Parameters. * * @param {object} [options.computeNodeListNextOptions] Additional parameters * for the operation * * @param {uuid} [options.computeNodeListNextOptions.clientRequestId] The * caller-generated request identity, in the form of a GUID with no decoration * such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. * * @param {boolean} [options.computeNodeListNextOptions.returnClientRequestId] * Whether the server should return the client-request-id in the response. * * @param {date} [options.computeNodeListNextOptions.ocpDate] The time the * request was issued. Client libraries typically set this to the current * system clock time; set it explicitly if you are calling the REST API * directly. * * @param {object} [options.customHeaders] Headers that will be added to the * request * * @param {ServiceCallback} [optionalCallback] - The optional callback. * * @returns {ServiceCallback|Promise} If a callback was passed as the last * parameter then it returns the callback else returns a Promise. * * {Promise} A promise is returned. * * @resolve {ComputeNodeListResult} - The deserialized result object. * * @reject {Error|ServiceError} - The error object. * * {ServiceCallback} optionalCallback(err, result, request, response) * * {Error|ServiceError} err - The Error object if an error occurred, null otherwise. * * {ComputeNodeListResult} [result] - The deserialized result object if an error did not occur. * See {@link ComputeNodeListResult} for more information. * * {WebResource} [request] - The HTTP Request object if an error did not occur. * * {http.IncomingMessage} [response] - The HTTP Response stream if an error did not occur. */ listNext(nextPageLink: string, options?: { computeNodeListNextOptions? : models.ComputeNodeListNextOptions, customHeaders? : { [headerName: string]: string; } }): Promise; listNext(nextPageLink: string, callback: ServiceCallback): void; listNext(nextPageLink: string, options: { computeNodeListNextOptions? : models.ComputeNodeListNextOptions, customHeaders? : { [headerName: string]: string; } }, callback: ServiceCallback): void; }