diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4815d996d902..3a64afe528a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2776,62 +2776,65 @@ importers: specifier: ^2.3.1 version: link:../../core/core-client-rest '@azure/core-auth': - specifier: ^1.6.0 + specifier: ^1.9.0 version: link:../../core/core-auth '@azure/core-rest-pipeline': - specifier: ^1.5.0 + specifier: ^1.20.0 version: link:../../core/core-rest-pipeline + '@azure/core-util': + specifier: ^1.12.0 + version: link:../../core/core-util '@azure/logger': - specifier: ^1.0.0 + specifier: ^1.2.0 version: link:../../core/logger - moment: - specifier: ~2.30.1 - version: 2.30.1 tslib: - specifier: ^2.6.2 + specifier: ^2.8.1 version: 2.8.1 devDependencies: '@azure-tools/test-credential': - specifier: workspace:^ + specifier: ^2.0.0 version: link:../../test-utils/test-credential '@azure-tools/test-recorder': - specifier: workspace:^ + specifier: ^4.1.0 version: link:../../test-utils/recorder - '@azure/core-util': - specifier: workspace:^ - version: link:../../core/core-util + '@azure-tools/test-utils-vitest': + specifier: ^1.0.0 + version: 1.0.0(@types/debug@4.1.12)(@types/node@20.19.17)(@vitest/browser@3.2.4)(jsdom@16.7.0)(msw@2.7.3(@types/node@20.19.17)(typescript@5.8.3))(terser@5.39.0)(tsx@4.20.5)(yaml@2.8.1) '@azure/dev-tool': - specifier: workspace:^ + specifier: ^1.0.0 version: link:../../../common/tools/dev-tool '@azure/eslint-plugin-azure-sdk': - specifier: workspace:^ + specifier: ^3.0.0 version: link:../../../common/tools/eslint-plugin-azure-sdk '@azure/identity': - specifier: catalog:internal - version: 4.11.1 + specifier: ^4.9.0 + version: link:../../identity/identity '@types/node': - specifier: 'catalog:' + specifier: ^20.0.0 version: 20.19.17 '@vitest/browser': - specifier: catalog:testing + specifier: ^3.0.9 version: 3.2.4(msw@2.7.3(@types/node@20.19.17)(typescript@5.8.3))(playwright@1.55.0)(vite@7.1.7(@types/node@20.19.17)(terser@5.39.0)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4) '@vitest/coverage-istanbul': - specifier: catalog:testing + specifier: ^3.0.9 version: 3.2.4(vitest@3.2.4) dotenv: - specifier: catalog:testing + specifier: ^16.0.0 version: 16.6.1 eslint: - specifier: 'catalog:' + specifier: ^9.9.0 version: 9.36.0 + moment: + specifier: ^2.30.1 + version: 2.30.1 playwright: - specifier: catalog:testing + specifier: ^1.52.0 version: 1.55.0 typescript: specifier: ~5.8.2 version: 5.8.3 vitest: - specifier: catalog:testing + specifier: ^3.0.9 version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.17)(@vitest/browser@3.2.4)(jsdom@16.7.0)(msw@2.7.3(@types/node@20.19.17)(typescript@5.8.3))(terser@5.39.0)(tsx@4.20.5)(yaml@2.8.1) sdk/billing/arm-billing: @@ -29929,56 +29932,67 @@ packages: resolution: {integrity: sha512-aL6hRwu0k7MTUESgkg7QHY6CoqPgr6gdQXRJI1/VbFlUMwsSzPGSR7sG5d+MCbYnJmJwThc2ol3nixj1fvI/zQ==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.52.0': resolution: {integrity: sha512-BTs0M5s1EJejgIBJhCeiFo7GZZ2IXWkFGcyZhxX4+8usnIo5Mti57108vjXFIQmmJaRyDwmV59Tw64Ap1dkwMw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.52.0': resolution: {integrity: sha512-uj672IVOU9m08DBGvoPKPi/J8jlVgjh12C9GmjjBxCTQc3XtVmRkRKyeHSmIKQpvJ7fIm1EJieBUcnGSzDVFyw==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.52.0': resolution: {integrity: sha512-/+IVbeDMDCtB/HP/wiWsSzduD10SEGzIZX2945KSgZRNi4TSkjHqRJtNTVtVb8IRwhJ65ssI56krlLik+zFWkw==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.52.0': resolution: {integrity: sha512-U1vVzvSWtSMWKKrGoROPBXMh3Vwn93TA9V35PldokHGqiUbF6erSzox/5qrSMKp6SzakvyjcPiVF8yB1xKr9Pg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-gnu@4.52.0': resolution: {integrity: sha512-X/4WfuBAdQRH8cK3DYl8zC00XEE6aM472W+QCycpQJeLWVnHfkv7RyBFVaTqNUMsTgIX8ihMjCvFF9OUgeABzw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.52.0': resolution: {integrity: sha512-xIRYc58HfWDBZoLmWfWXg2Sq8VCa2iJ32B7mqfWnkx5mekekl0tMe7FHpY8I72RXEcUkaWawRvl3qA55og+cwQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.52.0': resolution: {integrity: sha512-mbsoUey05WJIOz8U1WzNdf+6UMYGwE3fZZnQqsM22FZ3wh1N887HT6jAOjXs6CNEK3Ntu2OBsyQDXfIjouI4dw==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.52.0': resolution: {integrity: sha512-qP6aP970bucEi5KKKR4AuPFd8aTx9EF6BvutvYxmZuWLJHmnq4LvBfp0U+yFDMGwJ+AIJEH5sIP+SNypauMWzg==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.52.0': resolution: {integrity: sha512-nmSVN+F2i1yKZ7rJNKO3G7ZzmxJgoQBQZ/6c4MuS553Grmr7WqR7LLDcYG53Z2m9409z3JLt4sCOhLdbKQ3HmA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.52.0': resolution: {integrity: sha512-2d0qRo33G6TfQVjaMR71P+yJVGODrt5V6+T0BDYH4EMfGgdC/2HWDVjSSFw888GSzAZUwuska3+zxNUCDco6rQ==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openharmony-arm64@4.52.0': resolution: {integrity: sha512-A1JalX4MOaFAAyGgpO7XP5khquv/7xKzLIyLmhNrbiCxWpMlnsTYr8dnsWM7sEeotNmxvSOEL7F65j0HXFcFsw==} diff --git a/sdk/batch/batch-rest/CHANGELOG.md b/sdk/batch/batch-rest/CHANGELOG.md index 53ea87b3ffd3..1195f58898e2 100644 --- a/sdk/batch/batch-rest/CHANGELOG.md +++ b/sdk/batch/batch-rest/CHANGELOG.md @@ -1,5 +1,49 @@ # Release History +## 1.0.0-beta.4 (Unreleased) + +### Breaking Changes + +- **Removed Certificate Management APIs and Types:** + - Removed all certificate management operations and types, including: + - `CreateCertificate`, `CreateCertificateParameters`, `CreateCertificate201Response`, `DeleteCertificate`, `DeleteCertificateParameters`, `DeleteCertificate202Response`, `CancelCertificateDeletion`, `CancelCertificateDeletionParameters`, `ListCertificates`, `ListCertificatesParameters`, `ListCertificates200Response`, `GetCertificate`, `GetCertificateParameters`, `GetCertificate200Response`, and all related types such as `BatchCertificate`, `BatchCertificateOutput`, `BatchCertificateReference`, `BatchCertificateReferenceOutput`, etc. + - Removed all related response types, query/parameter types, and helper functions for certificate operations. + - Removed certificate-related fields from model types, such as `certificateReferences` and `targetNodeCommunicationMode` from `BatchPoolCreateOptions`, `BatchPoolSpecification`, `BatchPoolSpecificationOutput`, `BatchPoolUpdateOptions`, and `BatchPoolReplaceOptions`. + +- **Removed/Changed Node Communication Mode:** + - Removed `BatchNodeCommunicationMode` and related types and fields from all models. + +### Features Added + +- **Job level FIFO** + - Added `BatchJobDefaultOrder` and `BatchJobDefaultOrderOutput` types. + - Extended `BatchTaskSchedulingPolicy` and `BatchTaskSchedulingPolicyOutput` with a new `jobDefaultOrder` property to support job-level FIFO scheduling. + +- **CMK support on Pools** + - Added `DiskCustomerManagedKey`, `DiskCustomerManagedKeyOutput`, `DiskEncryptionSetParameters`, and `DiskEncryptionSetParametersOutput` for customer-managed key (CMK) support on pools. + - Extended `DiskEncryptionConfiguration` and `DiskEncryptionConfigurationOutput` with a new `customerManagedKey` property. + - Extended `ManagedDisk` and `ManagedDiskOutput` with a new `diskEncryptionSet` property. + - Added `BatchPoolIdentityReference` and `BatchPoolIdentityReferenceOutput` for referencing managed identities in disk encryption scenarios. + +- **IPv6 support on Pools** + - Added `ipv6Address` to `BatchNodeOutput`. + - Added `ipv6RemoteLoginIPAddress` and `ipv6RemoteLoginPort` to `BatchNodeRemoteLoginSettingsOutput`. + +- **Metadata Security Protocol Support on Pools** + - Added `HostEndpointSettings`, `HostEndpointSettingsOutput`, `HostEndpointSettingsModeTypes`, and `HostEndpointSettingsModeTypesOutput`. + - Added `ProxyAgentSettings` and `ProxyAgentSettingsOutput`. + - Extended `SecurityProfile` and `SecurityProfileOutput` with a new `proxyAgentSettings` property for metadata security protocol support. + +- **IP Tag Support** + - Added `IPFamily`, `IPFamilyOutput`, `IPTag`, and `IPTagOutput` types. + - Extended `BatchPublicIpAddressConfiguration` and `BatchPublicIpAddressConfigurationOutput` with new `ipFamilies` and `ipTags` properties for IP tag support. + +### Other Changes + +- Many model output types now have required (non-optional) and/or `readonly` properties for improved type safety and clarity. For example, fields like `creationTime`, `id`, `eTag`, `state`, `stateTransitionTime`, and `url` in `BatchJobOutput`, `BatchJobScheduleOutput`, `BatchNodeOutput`, `BatchPoolOutput`, and `BatchTaskOutput` are now required and/or readonly. +- Removed all certificate-related routes from the client path definitions. +- Removed all `isUnexpected` helper functions for certificate-related responses. + ## 1.0.0-beta.3 (2025-07-18) ### Breaking Changes diff --git a/sdk/batch/batch-rest/assets.json b/sdk/batch/batch-rest/assets.json index 49ae52aa555c..ac71cebdb9e1 100644 --- a/sdk/batch/batch-rest/assets.json +++ b/sdk/batch/batch-rest/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "js", "TagPrefix": "js/batch/batch-rest", - "Tag": "js/batch/batch-rest_f23a4f3e48" + "Tag": "js/batch/batch-rest_e4c1ef6eeb" } diff --git a/sdk/batch/batch-rest/generated/batchClient.ts b/sdk/batch/batch-rest/generated/batchClient.ts index 2afc33fe3dc6..0239aa0ad001 100644 --- a/sdk/batch/batch-rest/generated/batchClient.ts +++ b/sdk/batch/batch-rest/generated/batchClient.ts @@ -22,7 +22,7 @@ export interface BatchClientOptions extends ClientOptions { export default function createClient( endpointParam: string, credentials: TokenCredential, - { apiVersion = "2024-07-01.20.0", ...options }: BatchClientOptions = {}, + { apiVersion = "2025-06-01", ...options }: BatchClientOptions = {}, ): BatchClient { const endpointUrl = options.endpoint ?? `${endpointParam}`; const userAgentInfo = `azsdk-js-batch-rest/1.0.0-beta.1`; diff --git a/sdk/batch/batch-rest/generated/clientDefinitions.ts b/sdk/batch/batch-rest/generated/clientDefinitions.ts index 5fe954eb4a3d..2d2cea9db3fa 100644 --- a/sdk/batch/batch-rest/generated/clientDefinitions.ts +++ b/sdk/batch/batch-rest/generated/clientDefinitions.ts @@ -32,11 +32,6 @@ import type { ListJobsFromScheduleParameters, ListJobPreparationAndReleaseTaskStatusParameters, GetJobTaskCountsParameters, - CreateCertificateParameters, - ListCertificatesParameters, - CancelCertificateDeletionParameters, - DeleteCertificateParameters, - GetCertificateParameters, JobScheduleExistsParameters, DeleteJobScheduleParameters, GetJobScheduleParameters, @@ -142,16 +137,6 @@ import type { ListJobPreparationAndReleaseTaskStatusDefaultResponse, GetJobTaskCounts200Response, GetJobTaskCountsDefaultResponse, - CreateCertificate201Response, - CreateCertificateDefaultResponse, - ListCertificates200Response, - ListCertificatesDefaultResponse, - CancelCertificateDeletion204Response, - CancelCertificateDeletionDefaultResponse, - DeleteCertificate202Response, - DeleteCertificateDefaultResponse, - GetCertificate200Response, - GetCertificateDefaultResponse, JobScheduleExists200Response, JobScheduleExists404Response, JobScheduleExistsDefaultResponse, @@ -295,7 +280,7 @@ export interface CreatePool { post( options: CreatePoolParameters, ): StreamableMethod; - /** Lists all of the Pools which be mounted. */ + /** Lists all of the Pools in the specified Account. */ get( options?: ListPoolsParameters, ): StreamableMethod; @@ -596,64 +581,6 @@ export interface GetJobTaskCounts { >; } -export interface CreateCertificate { - /** Creates a Certificate to the specified Account. */ - post( - options: CreateCertificateParameters, - ): StreamableMethod< - CreateCertificate201Response | CreateCertificateDefaultResponse - >; - /** Lists all of the Certificates that have been added to the specified Account. */ - get( - options?: ListCertificatesParameters, - ): StreamableMethod< - ListCertificates200Response | ListCertificatesDefaultResponse - >; -} - -export interface CancelCertificateDeletion { - /** - * 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. - */ - post( - options?: CancelCertificateDeletionParameters, - ): StreamableMethod< - | CancelCertificateDeletion204Response - | CancelCertificateDeletionDefaultResponse - >; -} - -export interface DeleteCertificate { - /** - * 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. - */ - delete( - options?: DeleteCertificateParameters, - ): StreamableMethod< - DeleteCertificate202Response | DeleteCertificateDefaultResponse - >; - /** Gets information about the specified Certificate. */ - get( - options?: GetCertificateParameters, - ): StreamableMethod< - GetCertificate200Response | GetCertificateDefaultResponse - >; -} - export interface JobScheduleExists { /** Checks the specified Job Schedule exists. */ head( @@ -1122,20 +1049,6 @@ export interface Routes { ): ListJobPreparationAndReleaseTaskStatus; /** Resource for '/jobs/\{jobId\}/taskcounts' has methods for the following verbs: get */ (path: "/jobs/{jobId}/taskcounts", jobId: string): GetJobTaskCounts; - /** Resource for '/certificates' has methods for the following verbs: post, get */ - (path: "/certificates"): CreateCertificate; - /** Resource for '/certificates(thumbprintAlgorithm=\{thumbprintAlgorithm\},thumbprint=\{thumbprint\})/canceldelete' has methods for the following verbs: post */ - ( - path: "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete", - thumbprintAlgorithm: string, - thumbprint: string, - ): CancelCertificateDeletion; - /** Resource for '/certificates(thumbprintAlgorithm=\{thumbprintAlgorithm\},thumbprint=\{thumbprint\})' has methods for the following verbs: delete, get */ - ( - path: "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})", - thumbprintAlgorithm: string, - thumbprint: string, - ): DeleteCertificate; /** Resource for '/jobschedules/\{jobScheduleId\}' has methods for the following verbs: head, delete, get, patch, put */ ( path: "/jobschedules/{jobScheduleId}", diff --git a/sdk/batch/batch-rest/generated/isUnexpected.ts b/sdk/batch/batch-rest/generated/isUnexpected.ts index 208a95748748..fdd6610241b6 100644 --- a/sdk/batch/batch-rest/generated/isUnexpected.ts +++ b/sdk/batch/batch-rest/generated/isUnexpected.ts @@ -63,16 +63,6 @@ import type { ListJobPreparationAndReleaseTaskStatusDefaultResponse, GetJobTaskCounts200Response, GetJobTaskCountsDefaultResponse, - CreateCertificate201Response, - CreateCertificateDefaultResponse, - ListCertificates200Response, - ListCertificatesDefaultResponse, - CancelCertificateDeletion204Response, - CancelCertificateDeletionDefaultResponse, - DeleteCertificate202Response, - DeleteCertificateDefaultResponse, - GetCertificate200Response, - GetCertificateDefaultResponse, JobScheduleExists200Response, JobScheduleExists404Response, JobScheduleExistsDefaultResponse, @@ -191,14 +181,6 @@ const responseMap: Record = { "GET /jobschedules/{jobScheduleId}/jobs": ["200"], "GET /jobs/{jobId}/jobpreparationandreleasetaskstatus": ["200"], "GET /jobs/{jobId}/taskcounts": ["200"], - "POST /certificates": ["201"], - "GET /certificates": ["200"], - "POST /certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete": - ["204"], - "DELETE /certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})": - ["202"], - "GET /certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})": - ["200"], "HEAD /jobschedules/{jobScheduleId}": ["200", "404"], "DELETE /jobschedules/{jobScheduleId}": ["202"], "GET /jobschedules/{jobScheduleId}": ["200"], @@ -348,23 +330,6 @@ export function isUnexpected( export function isUnexpected( response: GetJobTaskCounts200Response | GetJobTaskCountsDefaultResponse, ): response is GetJobTaskCountsDefaultResponse; -export function isUnexpected( - response: CreateCertificate201Response | CreateCertificateDefaultResponse, -): response is CreateCertificateDefaultResponse; -export function isUnexpected( - response: ListCertificates200Response | ListCertificatesDefaultResponse, -): response is ListCertificatesDefaultResponse; -export function isUnexpected( - response: - | CancelCertificateDeletion204Response - | CancelCertificateDeletionDefaultResponse, -): response is CancelCertificateDeletionDefaultResponse; -export function isUnexpected( - response: DeleteCertificate202Response | DeleteCertificateDefaultResponse, -): response is DeleteCertificateDefaultResponse; -export function isUnexpected( - response: GetCertificate200Response | GetCertificateDefaultResponse, -): response is GetCertificateDefaultResponse; export function isUnexpected( response: | JobScheduleExists200Response @@ -571,16 +536,6 @@ export function isUnexpected( | ListJobPreparationAndReleaseTaskStatusDefaultResponse | GetJobTaskCounts200Response | GetJobTaskCountsDefaultResponse - | CreateCertificate201Response - | CreateCertificateDefaultResponse - | ListCertificates200Response - | ListCertificatesDefaultResponse - | CancelCertificateDeletion204Response - | CancelCertificateDeletionDefaultResponse - | DeleteCertificate202Response - | DeleteCertificateDefaultResponse - | GetCertificate200Response - | GetCertificateDefaultResponse | JobScheduleExists200Response | JobScheduleExists404Response | JobScheduleExistsDefaultResponse @@ -697,11 +652,6 @@ export function isUnexpected( | ListJobsFromScheduleDefaultResponse | ListJobPreparationAndReleaseTaskStatusDefaultResponse | GetJobTaskCountsDefaultResponse - | CreateCertificateDefaultResponse - | ListCertificatesDefaultResponse - | CancelCertificateDeletionDefaultResponse - | DeleteCertificateDefaultResponse - | GetCertificateDefaultResponse | JobScheduleExistsDefaultResponse | DeleteJobScheduleDefaultResponse | GetJobScheduleDefaultResponse diff --git a/sdk/batch/batch-rest/generated/models.ts b/sdk/batch/batch-rest/generated/models.ts index c0112cc0168d..96d04e50417f 100644 --- a/sdk/batch/batch-rest/generated/models.ts +++ b/sdk/batch/batch-rest/generated/models.ts @@ -13,8 +13,6 @@ export interface BatchPoolCreateOptions { virtualMachineConfiguration?: VirtualMachineConfiguration; /** 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). */ resizeTimeout?: string; - /** The user-specified tags associated with the pool. The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - resourceTags?: Record; /** 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. */ targetDedicatedNodes?: number; /** The desired number of Spot/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. */ @@ -31,13 +29,6 @@ export interface BatchPoolCreateOptions { networkConfiguration?: NetworkConfiguration; /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). 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. */ applicationPackageReferences?: Array; /** The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256. */ @@ -50,12 +41,6 @@ export interface BatchPoolCreateOptions { metadata?: Array; /** Mount storage using specified file system for the entire lifetime of the pool. Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system. */ mountConfiguration?: Array; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicy; } @@ -145,6 +130,8 @@ export interface DataDisk { caching?: CachingType; /** The initial disk size in gigabytes. */ diskSizeGB: number; + /** The managed disk parameters. */ + managedDisk?: ManagedDisk; /** * The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". * @@ -153,6 +140,36 @@ export interface DataDisk { storageAccountType?: StorageAccountType; } +/** The managed disk parameters. */ +export interface ManagedDisk { + /** Specifies the customer managed disk encryption set resource id for the managed disk. It can be set only in UserSubscription mode. */ + diskEncryptionSet?: DiskEncryptionSetParameters; + /** + * The storage account type for managed disk. + * + * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" + */ + storageAccountType?: StorageAccountType; + /** Specifies the security profile settings for the managed disk. */ + securityProfile?: BatchVmDiskSecurityProfile; +} + +/** The ARM resource id of the disk encryption set. */ +export interface DiskEncryptionSetParameters { + /** The ARM resource id of the disk encryption set. The resource must be in the same subscription as the Batch account. */ + id?: string; +} + +/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ +export interface BatchVmDiskSecurityProfile { + /** + * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. + * + * Possible values: "DiskWithVMGuestState", "NonPersistedTPM", "VMGuestStateOnly" + */ + securityEncryptionType?: SecurityEncryptionTypes; +} + /** The configuration for container-enabled Pools. */ export interface BatchContainerConfiguration { /** @@ -194,10 +211,28 @@ export interface BatchNodeIdentityReference { * Azure Compute Gallery Image. */ export interface DiskEncryptionConfiguration { + /** The Customer Managed Key reference to encrypt the OS Disk. Customer Managed Key will encrypt OS Disk by EncryptionAtRest, and by default we will encrypt the data disk as well. It can be used only when the pool is configured with an identity and OsDisk is set as one of the targets of DiskEncryption. */ + customerManagedKey?: DiskCustomerManagedKey; /** The list of disk targets Batch Service will encrypt on the compute node. The list of disk targets Batch Service will encrypt on the compute node. */ targets?: DiskEncryptionTarget[]; } +/** The Customer Managed Key reference to encrypt the Disk. */ +export interface DiskCustomerManagedKey { + /** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the KeyVault. */ + identityReference?: BatchPoolIdentityReference; + /** Fully versioned Key Url pointing to a key in KeyVault. Version segment of the Url is required regardless of rotationToLatestKeyVersionEnabled value. */ + keyUrl?: string; + /** Set this flag to true to enable auto-updating of the Disk Encryption to the latest key version. Default is false. */ + rotationToLatestKeyVersionEnabled?: boolean; +} + +/** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the key vault. */ +export interface BatchPoolIdentityReference { + /** The ARM resource id of the user assigned identity. This reference must be included in the pool identities. */ + resourceId?: string; +} + /** * For regional placement, nodes in the pool will be allocated in the same region. * For zonal placement, nodes in the pool will be spread across different zones @@ -265,32 +300,12 @@ export interface BatchDiffDiskSettings { placement?: DiffDiskPlacement; } -/** The managed disk parameters. */ -export interface ManagedDisk { - /** - * The storage account type for managed disk. - * - * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" - */ - storageAccountType?: StorageAccountType; - /** Specifies the security profile settings for the managed disk. */ - securityProfile?: BatchVmDiskSecurityProfile; -} - -/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ -export interface BatchVmDiskSecurityProfile { - /** - * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. - * - * Possible values: "NonPersistedTPM", "VMGuestStateOnly" - */ - securityEncryptionType?: SecurityEncryptionTypes; -} - /** Specifies the security profile settings for the virtual machine or virtual machine scale set. */ export interface SecurityProfile { /** This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. For more information on encryption at host requirements, please refer to https://learn.microsoft.com/azure/virtual-machines/disk-encryption#supported-vm-sizes. */ encryptionAtHost?: boolean; + /** Specifies ProxyAgent settings while creating the virtual machine. */ + proxyAgentSettings?: ProxyAgentSettings; /** * Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. * @@ -301,6 +316,28 @@ export interface SecurityProfile { uefiSettings?: BatchUefiSettings; } +/** Specifies ProxyAgent settings while creating the virtual machine. */ +export interface ProxyAgentSettings { + /** Specifies whether Metadata Security Protocol feature should be enabled on the virtual machine or virtual machine scale set. Default is False. */ + enabled?: boolean; + /** Settings for the IMDS endpoint. */ + imds?: HostEndpointSettings; + /** Settings for the WireServer endpoint. */ + wireServer?: HostEndpointSettings; +} + +/** Specifies particular host endpoint settings. */ +export interface HostEndpointSettings { + /** Specifies the reference to the InVMAccessControlProfileVersion resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}. */ + inVMAccessControlProfileReferenceId?: string; + /** + * Specifies the access control policy execution mode. + * + * Possible values: "Audit", "Enforce" + */ + mode?: HostEndpointSettingsModeTypes; +} + /** Specifies the security settings like secure boot and vTPM used while creating the virtual machine. */ export interface BatchUefiSettings { /** Specifies whether secure boot should be enabled on the virtual machine. */ @@ -389,8 +426,20 @@ export interface BatchPublicIpAddressConfiguration { * Possible values: "batchmanaged", "usermanaged", "nopublicipaddresses" */ provision?: IpAddressProvisioningType; + /** The IP families used to specify IP versions available to the pool. IP families are used to determine single-stack or dual-stack pools. For single-stack, the expected value is IPv4. For dual-stack, the expected values are IPv4 and IPv6. */ + ipFamilies?: IPFamily[]; /** 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 - 100 dedicated nodes or 100 Spot/Low-priority nodes can be allocated for each public IP. For example, a pool needing 250 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}. */ ipAddressIds?: string[]; + /** A list of IP tags associated with the public IP addresses of the Pool. IP tags are used to categorize and filter public IP addresses for billing and management purposes. */ + ipTags?: Array; +} + +/** Contains the IP tag associated with the public IP address. */ +export interface IPTag { + /** The IP Tag type. Example: FirstPartyUsage. */ + ipTagType?: string; + /** The value of the IP tag associated with the public IP. Example: SQL. */ + tag?: string; } /** @@ -492,7 +541,7 @@ export interface UserIdentity { /** Specifies the options for the auto user that runs an Azure Batch Task. */ export interface AutoUserSpecification { /** - * 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. + * 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. * * Possible values: "task", "pool" */ @@ -505,24 +554,6 @@ export interface AutoUserSpecification { elevationLevel?: ElevationLevel; } -/** A reference to a Certificate to be installed on Compute Nodes in a Pool. Warning: This object is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. */ -export interface BatchCertificateReference { - /** The thumbprint of the Certificate. */ - thumbprint: string; - /** The algorithm with which the thumbprint is associated. This must be sha1. */ - thumbprintAlgorithm: string; - /** - * The location of the Certificate store on the Compute Node into which to install the Certificate. The default value is currentuser. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). 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. - * - * Possible values: "currentuser", "localmachine" - */ - storeLocation?: BatchCertificateStoreLocation; - /** The name of the Certificate store on the Compute Node into which to install the Certificate. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My. */ - storeName?: string; - /** Which user Accounts on the Compute Node should have access to the private data of the Certificate. You can specify more than one visibility in this collection. The default is all Accounts. */ - visibility?: BatchCertificateVisibility[]; -} - /** A reference to an Package to be deployed to Compute Nodes. */ export interface BatchApplicationPackageReference { /** The ID of the application to deploy. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). */ @@ -533,6 +564,12 @@ export interface BatchApplicationPackageReference { /** Specifies how Tasks should be distributed across Compute Nodes. */ export interface BatchTaskSchedulingPolicy { + /** + * The order for scheduling tasks from different jobs with the same priority. If not specified, the default is none. + * + * Possible values: "none", "creationtime" + */ + jobDefaultOrder?: BatchJobDefaultOrder; /** * How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread. * @@ -723,35 +760,18 @@ export interface BatchPoolUpdateOptions { enableInterNodeCommunication?: boolean; /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** 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. */ applicationPackageReferences?: Array; /** 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. */ metadata?: Array; /** The virtual machine configuration for the Pool. This property must be specified.

This field can be updated only when the pool is empty. */ virtualMachineConfiguration?: VirtualMachineConfiguration; - /** - * The desired node communication mode for the pool. If this element is present, it replaces the existing targetNodeCommunicationMode configured on the Pool. If omitted, any existing metadata is left unchanged. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; /** The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.

This field can be updated only when the pool is empty. */ taskSlotsPerNode?: number; /** How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread.

This field can be updated only when the pool is empty. */ taskSchedulingPolicy?: BatchTaskSchedulingPolicy; /** The network configuration for the Pool. This field can be updated only when the pool is empty. */ networkConfiguration?: NetworkConfiguration; - /** The user-specified tags associated with the pool. The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'.

This field can be updated only when the pool is empty. */ - resourceTags?: Record; /** The list of user Accounts to be created on each Compute Node in the Pool. This field can be updated only when the pool is empty. */ userAccounts?: Array; /** Mount storage using specified file system for the entire lifetime of the pool. Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system.

This field can be updated only when the pool is empty. */ @@ -794,25 +814,10 @@ export interface BatchPoolResizeOptions { export interface BatchPoolReplaceOptions { /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences: Array; /** 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. */ applicationPackageReferences: Array; /** 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. */ metadata: Array; - /** - * The desired node communication mode for the pool. This setting replaces any existing targetNodeCommunication setting on the Pool. If omitted, the existing setting is default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; } /** Parameters for removing nodes from an Azure Batch Pool. */ @@ -833,9 +838,9 @@ export interface BatchNodeRemoveOptions { export interface BatchJob { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. */ constraints?: BatchJobConstraints; @@ -1121,8 +1126,6 @@ export interface BatchPoolSpecification { taskSchedulingPolicy?: BatchTaskSchedulingPolicy; /** 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). */ resizeTimeout?: string; - /** The user-specified tags associated with the pool.The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - resourceTags?: string; /** 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. */ targetDedicatedNodes?: number; /** The desired number of Spot/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. */ @@ -1139,12 +1142,6 @@ export interface BatchPoolSpecification { networkConfiguration?: NetworkConfiguration; /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. - * Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). 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. */ applicationPackageReferences?: Array; /** The list of user Accounts to be created on each Compute Node in the Pool. */ @@ -1153,17 +1150,11 @@ export interface BatchPoolSpecification { metadata?: Array; /** A list of file systems to mount on each node in the pool. This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. */ mountConfiguration?: Array; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicy; } -/** The network configuration for the Job. */ +/** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ export interface BatchJobNetworkConfiguration { /** 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. 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://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. */ subnetId: string; @@ -1237,9 +1228,9 @@ export interface BatchJobStatistics { export interface BatchJobUpdateOptions { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. If omitted, the existing execution constraints are left unchanged. */ constraints?: BatchJobConstraints; @@ -1253,7 +1244,7 @@ export interface BatchJobUpdateOptions { onAllTasksComplete?: BatchAllTasksCompleteMode; /** A list of name-value pairs associated with the Job as metadata. If omitted, the existing Job metadata is left unchanged. */ metadata?: Array; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfiguration; } @@ -1283,9 +1274,9 @@ export interface BatchJobCreateOptions { usesTaskDependencies?: boolean; /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. */ constraints?: BatchJobConstraints; @@ -1311,7 +1302,7 @@ export interface BatchJobCreateOptions { * Possible values: "noaction", "performexitoptionsjobaction" */ onTaskFailure?: BatchTaskFailureMode; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfiguration; /** 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. */ metadata?: Array; @@ -1343,37 +1334,6 @@ export interface BatchTaskFailureInfo { details?: Array; } -/** - * A Certificate that can be installed on Compute Nodes and can be used to - * authenticate operations on the machine. - */ -export interface BatchCertificate { - /** 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). */ - thumbprint: string; - /** The algorithm used to derive the thumbprint. This must be sha1. */ - thumbprintAlgorithm: string; - /** The base64-encoded contents of the Certificate. The maximum size is 10KB. */ - data: string; - /** - * The format of the Certificate data. - * - * Possible values: "pfx", "cer" - */ - certificateFormat?: BatchCertificateFormat; - /** The password to access the Certificate's private key. This must be omitted if the Certificate format is cer. */ - password?: string; -} - -/** An error encountered by the Batch service when deleting a Certificate. */ -export interface BatchCertificateDeleteError { - /** An identifier for the Certificate deletion error. Codes are invariant and are intended to be consumed programmatically. */ - code?: string; - /** A message describing the Certificate deletion error, intended to be suitable for display in a user interface. */ - message?: string; - /** A list of additional error details related to the Certificate deletion error. This list includes details such as the active Pools and Compute Nodes referencing this Certificate. However, if a large number of resources reference the Certificate, the list contains only about the first hundred. */ - values?: Array; -} - /** * A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a * specification used to create each Job. @@ -1406,9 +1366,9 @@ export interface BatchJobScheduleConfiguration { export interface BatchJobSpecification { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** 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. */ displayName?: string; @@ -1426,7 +1386,7 @@ export interface BatchJobSpecification { * Possible values: "noaction", "performexitoptionsjobaction" */ onTaskFailure?: BatchTaskFailureMode; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfiguration; /** The execution constraints for Jobs created under this schedule. */ constraints?: BatchJobConstraints; @@ -1830,6 +1790,8 @@ export interface UploadBatchServiceLogsOptions { export type CachingType = string; /** Alias for StorageAccountType */ export type StorageAccountType = string; +/** Alias for SecurityEncryptionTypes */ +export type SecurityEncryptionTypes = string; /** Alias for ContainerType */ export type ContainerType = string; /** Alias for DiskEncryptionTarget */ @@ -1838,8 +1800,8 @@ export type DiskEncryptionTarget = string; export type BatchNodePlacementPolicyType = string; /** Alias for DiffDiskPlacement */ export type DiffDiskPlacement = string; -/** Alias for SecurityEncryptionTypes */ -export type SecurityEncryptionTypes = string; +/** Alias for HostEndpointSettingsModeTypes */ +export type HostEndpointSettingsModeTypes = string; /** Alias for SecurityTypes */ export type SecurityTypes = string; /** Alias for DynamicVNetAssignmentScope */ @@ -1850,6 +1812,8 @@ export type InboundEndpointProtocol = string; export type NetworkSecurityGroupRuleAccess = string; /** Alias for IpAddressProvisioningType */ export type IpAddressProvisioningType = string; +/** Alias for IPFamily */ +export type IPFamily = string; /** Alias for ContainerWorkingDirectory */ export type ContainerWorkingDirectory = string; /** Alias for ContainerHostDataPath */ @@ -1858,16 +1822,12 @@ export type ContainerHostDataPath = string; export type AutoUserScope = string; /** Alias for ElevationLevel */ export type ElevationLevel = string; -/** Alias for BatchCertificateStoreLocation */ -export type BatchCertificateStoreLocation = string; -/** Alias for BatchCertificateVisibility */ -export type BatchCertificateVisibility = string; +/** Alias for BatchJobDefaultOrder */ +export type BatchJobDefaultOrder = string; /** Alias for BatchNodeFillType */ export type BatchNodeFillType = string; /** Alias for LoginMode */ export type LoginMode = string; -/** Alias for BatchNodeCommunicationMode */ -export type BatchNodeCommunicationMode = string; /** Alias for UpgradeMode */ export type UpgradeMode = string; /** Alias for BatchNodeDeallocationOption */ @@ -1890,10 +1850,6 @@ export type BatchErrorSourceCategory = string; export type DisableBatchJobOption = string; /** Alias for BatchTaskExecutionResult */ export type BatchTaskExecutionResult = string; -/** Alias for BatchCertificateState */ -export type BatchCertificateState = string; -/** Alias for BatchCertificateFormat */ -export type BatchCertificateFormat = string; /** Alias for BatchJobScheduleState */ export type BatchJobScheduleState = string; /** Alias for BatchJobActionKind */ diff --git a/sdk/batch/batch-rest/generated/outputModels.ts b/sdk/batch/batch-rest/generated/outputModels.ts index 8238f4f294be..28f96475ba1a 100644 --- a/sdk/batch/batch-rest/generated/outputModels.ts +++ b/sdk/batch/batch-rest/generated/outputModels.ts @@ -154,6 +154,8 @@ export interface DataDiskOutput { caching?: CachingTypeOutput; /** The initial disk size in gigabytes. */ diskSizeGB: number; + /** The managed disk parameters. */ + managedDisk?: ManagedDiskOutput; /** * The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". * @@ -162,6 +164,36 @@ export interface DataDiskOutput { storageAccountType?: StorageAccountTypeOutput; } +/** The managed disk parameters. */ +export interface ManagedDiskOutput { + /** Specifies the customer managed disk encryption set resource id for the managed disk. It can be set only in UserSubscription mode. */ + diskEncryptionSet?: DiskEncryptionSetParametersOutput; + /** + * The storage account type for managed disk. + * + * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" + */ + storageAccountType?: StorageAccountTypeOutput; + /** Specifies the security profile settings for the managed disk. */ + securityProfile?: BatchVmDiskSecurityProfileOutput; +} + +/** The ARM resource id of the disk encryption set. */ +export interface DiskEncryptionSetParametersOutput { + /** The ARM resource id of the disk encryption set. The resource must be in the same subscription as the Batch account. */ + id?: string; +} + +/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ +export interface BatchVmDiskSecurityProfileOutput { + /** + * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. + * + * Possible values: "DiskWithVMGuestState", "NonPersistedTPM", "VMGuestStateOnly" + */ + securityEncryptionType?: SecurityEncryptionTypesOutput; +} + /** The configuration for container-enabled Pools. */ export interface BatchContainerConfigurationOutput { /** @@ -203,10 +235,28 @@ export interface BatchNodeIdentityReferenceOutput { * Azure Compute Gallery Image. */ export interface DiskEncryptionConfigurationOutput { + /** The Customer Managed Key reference to encrypt the OS Disk. Customer Managed Key will encrypt OS Disk by EncryptionAtRest, and by default we will encrypt the data disk as well. It can be used only when the pool is configured with an identity and OsDisk is set as one of the targets of DiskEncryption. */ + customerManagedKey?: DiskCustomerManagedKeyOutput; /** The list of disk targets Batch Service will encrypt on the compute node. The list of disk targets Batch Service will encrypt on the compute node. */ targets?: DiskEncryptionTargetOutput[]; } +/** The Customer Managed Key reference to encrypt the Disk. */ +export interface DiskCustomerManagedKeyOutput { + /** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the KeyVault. */ + identityReference?: BatchPoolIdentityReferenceOutput; + /** Fully versioned Key Url pointing to a key in KeyVault. Version segment of the Url is required regardless of rotationToLatestKeyVersionEnabled value. */ + keyUrl?: string; + /** Set this flag to true to enable auto-updating of the Disk Encryption to the latest key version. Default is false. */ + rotationToLatestKeyVersionEnabled?: boolean; +} + +/** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the key vault. */ +export interface BatchPoolIdentityReferenceOutput { + /** The ARM resource id of the user assigned identity. This reference must be included in the pool identities. */ + resourceId?: string; +} + /** * For regional placement, nodes in the pool will be allocated in the same region. * For zonal placement, nodes in the pool will be spread across different zones @@ -274,32 +324,12 @@ export interface BatchDiffDiskSettingsOutput { placement?: DiffDiskPlacementOutput; } -/** The managed disk parameters. */ -export interface ManagedDiskOutput { - /** - * The storage account type for managed disk. - * - * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" - */ - storageAccountType?: StorageAccountTypeOutput; - /** Specifies the security profile settings for the managed disk. */ - securityProfile?: BatchVmDiskSecurityProfileOutput; -} - -/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ -export interface BatchVmDiskSecurityProfileOutput { - /** - * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. - * - * Possible values: "NonPersistedTPM", "VMGuestStateOnly" - */ - securityEncryptionType?: SecurityEncryptionTypesOutput; -} - /** Specifies the security profile settings for the virtual machine or virtual machine scale set. */ export interface SecurityProfileOutput { /** This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. For more information on encryption at host requirements, please refer to https://learn.microsoft.com/azure/virtual-machines/disk-encryption#supported-vm-sizes. */ encryptionAtHost?: boolean; + /** Specifies ProxyAgent settings while creating the virtual machine. */ + proxyAgentSettings?: ProxyAgentSettingsOutput; /** * Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. * @@ -310,6 +340,28 @@ export interface SecurityProfileOutput { uefiSettings?: BatchUefiSettingsOutput; } +/** Specifies ProxyAgent settings while creating the virtual machine. */ +export interface ProxyAgentSettingsOutput { + /** Specifies whether Metadata Security Protocol feature should be enabled on the virtual machine or virtual machine scale set. Default is False. */ + enabled?: boolean; + /** Settings for the IMDS endpoint. */ + imds?: HostEndpointSettingsOutput; + /** Settings for the WireServer endpoint. */ + wireServer?: HostEndpointSettingsOutput; +} + +/** Specifies particular host endpoint settings. */ +export interface HostEndpointSettingsOutput { + /** Specifies the reference to the InVMAccessControlProfileVersion resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}. */ + inVMAccessControlProfileReferenceId?: string; + /** + * Specifies the access control policy execution mode. + * + * Possible values: "Audit", "Enforce" + */ + mode?: HostEndpointSettingsModeTypesOutput; +} + /** Specifies the security settings like secure boot and vTPM used while creating the virtual machine. */ export interface BatchUefiSettingsOutput { /** Specifies whether secure boot should be enabled on the virtual machine. */ @@ -398,8 +450,20 @@ export interface BatchPublicIpAddressConfigurationOutput { * Possible values: "batchmanaged", "usermanaged", "nopublicipaddresses" */ provision?: IpAddressProvisioningTypeOutput; + /** The IP families used to specify IP versions available to the pool. IP families are used to determine single-stack or dual-stack pools. For single-stack, the expected value is IPv4. For dual-stack, the expected values are IPv4 and IPv6. */ + ipFamilies?: IPFamilyOutput[]; /** 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 - 100 dedicated nodes or 100 Spot/Low-priority nodes can be allocated for each public IP. For example, a pool needing 250 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}. */ ipAddressIds?: string[]; + /** A list of IP tags associated with the public IP addresses of the Pool. IP tags are used to categorize and filter public IP addresses for billing and management purposes. */ + ipTags?: Array; +} + +/** Contains the IP tag associated with the public IP address. */ +export interface IPTagOutput { + /** The IP Tag type. Example: FirstPartyUsage. */ + ipTagType?: string; + /** The value of the IP tag associated with the public IP. Example: SQL. */ + tag?: string; } /** @@ -501,7 +565,7 @@ export interface UserIdentityOutput { /** Specifies the options for the auto user that runs an Azure Batch Task. */ export interface AutoUserSpecificationOutput { /** - * 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. + * 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. * * Possible values: "task", "pool" */ @@ -514,24 +578,6 @@ export interface AutoUserSpecificationOutput { elevationLevel?: ElevationLevelOutput; } -/** A reference to a Certificate to be installed on Compute Nodes in a Pool. Warning: This object is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. */ -export interface BatchCertificateReferenceOutput { - /** The thumbprint of the Certificate. */ - thumbprint: string; - /** The algorithm with which the thumbprint is associated. This must be sha1. */ - thumbprintAlgorithm: string; - /** - * The location of the Certificate store on the Compute Node into which to install the Certificate. The default value is currentuser. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). 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. - * - * Possible values: "currentuser", "localmachine" - */ - storeLocation?: BatchCertificateStoreLocationOutput; - /** The name of the Certificate store on the Compute Node into which to install the Certificate. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My. */ - storeName?: string; - /** Which user Accounts on the Compute Node should have access to the private data of the Certificate. You can specify more than one visibility in this collection. The default is all Accounts. */ - visibility?: BatchCertificateVisibilityOutput[]; -} - /** A reference to an Package to be deployed to Compute Nodes. */ export interface BatchApplicationPackageReferenceOutput { /** The ID of the application to deploy. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). */ @@ -542,6 +588,12 @@ export interface BatchApplicationPackageReferenceOutput { /** Specifies how Tasks should be distributed across Compute Nodes. */ export interface BatchTaskSchedulingPolicyOutput { + /** + * The order for scheduling tasks from different jobs with the same priority. If not specified, the default is none. + * + * Possible values: "none", "creationtime" + */ + jobDefaultOrder?: BatchJobDefaultOrderOutput; /** * How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread. * @@ -725,25 +777,25 @@ export interface BatchPoolListResultOutput { /** A Pool in the Azure Batch service. */ export interface BatchPoolOutput { /** A string that uniquely identifies the Pool within the Account. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case). */ - readonly id?: string; - /** 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. */ + readonly id: string; + /** The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024. */ readonly displayName?: string; /** The URL of the Pool. */ - readonly url?: string; + readonly url: string; /** The ETag of the Pool. This is an opaque string. You can use it to detect whether the Pool has changed between requests. In particular, you can be pass the ETag when updating a Pool to specify that your changes should take effect only if nobody else has modified the Pool in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Pool. This is the last time at which the Pool level data, such as the targetDedicatedNodes or enableAutoscale settings, changed. It does not factor in node-level changes such as a Compute Node changing state. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Pool. */ - readonly creationTime?: string; + readonly creationTime: string; /** * The current state of the Pool. * * Possible values: "active", "deleting" */ - readonly state?: BatchPoolStateOutput; + readonly state: BatchPoolStateOutput; /** The time at which the Pool entered its current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * Whether the Pool is resizing. * @@ -752,20 +804,18 @@ export interface BatchPoolOutput { readonly allocationState?: AllocationStateOutput; /** The time at which the Pool entered its current allocation state. */ readonly allocationStateTransitionTime?: string; - /** The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). */ - readonly vmSize?: string; + /** The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes). */ + readonly vmSize: string; /** The virtual machine configuration for the Pool. This property must be specified. */ readonly virtualMachineConfiguration?: VirtualMachineConfigurationOutput; /** The timeout for allocation of Compute Nodes to the Pool. This is the timeout for the most recent resize operation. (The initial sizing when the Pool is created counts as a resize.) The default value is 15 minutes. */ readonly resizeTimeout?: string; /** A list of errors encountered while performing the last resize on the Pool. This property is set only if one or more errors occurred during the last Pool resize, and only when the Pool allocationState is Steady. */ readonly resizeErrors?: Array; - /** The user-specified tags associated with the pool. The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - readonly resourceTags?: Record; /** The number of dedicated Compute Nodes currently in the Pool. */ - readonly currentDedicatedNodes?: number; + readonly currentDedicatedNodes: number; /** The number of Spot/Low-priority Compute Nodes currently in the Pool. Spot/Low-priority Compute Nodes which have been preempted are included in this count. */ - readonly currentLowPriorityNodes?: number; + readonly currentLowPriorityNodes: number; /** The desired number of dedicated Compute Nodes in the Pool. */ readonly targetDedicatedNodes?: number; /** The desired number of Spot/Low-priority Compute Nodes in the Pool. */ @@ -778,19 +828,12 @@ export interface BatchPoolOutput { readonly autoScaleEvaluationInterval?: string; /** The results and errors from the last execution of the autoscale formula. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true. */ readonly autoScaleRun?: AutoScaleRunOutput; - /** Whether the Pool permits direct communication between Compute Nodes. This imposes restrictions on which Compute Nodes can be assigned to the Pool. Specifying this value can reduce the chance of the requested number of Compute Nodes to be allocated in the Pool. */ + /** Whether the Pool permits direct communication between Compute Nodes. Enabling inter-node communication limits the maximum size of the Pool due to deployment restrictions on the Compute Nodes of the Pool. This may result in the Pool not reaching its desired size. The default value is false. */ readonly enableInterNodeCommunication?: boolean; /** The network configuration for the Pool. */ readonly networkConfiguration?: NetworkConfigurationOutput; /** A Task specified to run on each Compute Node as it joins the Pool. */ startTask?: BatchStartTaskOutput; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - readonly certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Package references on any given Pool. */ readonly applicationPackageReferences?: Array; /** The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256. */ @@ -803,22 +846,10 @@ export interface BatchPoolOutput { readonly metadata?: Array; /** Utilization and resource usage statistics for the entire lifetime of the Pool. This property is populated only if the BatchPool was retrieved with an expand clause including the 'stats' attribute; otherwise it is null. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes. */ readonly stats?: BatchPoolStatisticsOutput; - /** A list of file systems to mount on each node in the pool. This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. */ + /** 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. */ readonly mountConfiguration?: Array; /** The identity of the Batch pool, if configured. The list of user identities associated with the Batch pool. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. */ readonly identity?: BatchPoolIdentityOutput; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationModeOutput; - /** - * The current state of the pool communication mode. - * - * Possible values: "default", "classic", "simplified" - */ - readonly currentNodeCommunicationMode?: BatchNodeCommunicationModeOutput; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicyOutput; } @@ -1031,27 +1062,27 @@ export interface BatchNodeCountsOutput { /** An Azure Batch Job. */ export interface BatchJobOutput { /** A string that uniquely identifies the Job within the Account. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case). */ - readonly id?: string; + readonly id: string; /** The display name for the Job. */ readonly displayName?: string; /** Whether Tasks in the Job can define dependencies on each other. The default is false. */ readonly usesTaskDependencies?: boolean; /** The URL of the Job. */ - readonly url?: string; + readonly url: string; /** The ETag of the Job. This is an opaque string. You can use it to detect whether the Job has changed between requests. In particular, you can be pass the ETag when updating a Job to specify that your changes should take effect only if nobody else has modified the Job in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Job. This is the last time at which the Job level data, such as the Job state or priority, changed. It does not factor in task-level changes such as adding new Tasks or Tasks changing state. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Job. */ - readonly creationTime?: string; + readonly creationTime: string; /** * The current state of the Job. * * Possible values: "active", "disabling", "disabled", "enabling", "terminating", "completed", "deleting" */ - readonly state?: BatchJobStateOutput; + readonly state: BatchJobStateOutput; /** The time at which the Job entered its current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * The previous state of the Job. This property is not set if the Job is in its initial Active state. * @@ -1062,9 +1093,9 @@ export interface BatchJobOutput { readonly previousStateTransitionTime?: string; /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. */ constraints?: BatchJobConstraintsOutput; @@ -1090,7 +1121,7 @@ export interface BatchJobOutput { * Possible values: "noaction", "performexitoptionsjobaction" */ readonly onTaskFailure?: BatchTaskFailureModeOutput; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ readonly networkConfiguration?: BatchJobNetworkConfigurationOutput; /** 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. */ metadata?: Array; @@ -1370,8 +1401,6 @@ export interface BatchPoolSpecificationOutput { taskSchedulingPolicy?: BatchTaskSchedulingPolicyOutput; /** 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). */ resizeTimeout?: string; - /** The user-specified tags associated with the pool.The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - resourceTags?: string; /** 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. */ targetDedicatedNodes?: number; /** The desired number of Spot/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. */ @@ -1388,12 +1417,6 @@ export interface BatchPoolSpecificationOutput { networkConfiguration?: NetworkConfigurationOutput; /** 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. */ startTask?: BatchStartTaskOutput; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. - * Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). 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. */ applicationPackageReferences?: Array; /** The list of user Accounts to be created on each Compute Node in the Pool. */ @@ -1402,17 +1425,11 @@ export interface BatchPoolSpecificationOutput { metadata?: Array; /** A list of file systems to mount on each node in the pool. This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. */ mountConfiguration?: Array; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationModeOutput; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicyOutput; } -/** The network configuration for the Job. */ +/** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ export interface BatchJobNetworkConfigurationOutput { /** 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. 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://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. */ subnetId: string; @@ -1647,92 +1664,31 @@ export interface BatchTaskSlotCountsOutput { failed: number; } -/** - * A Certificate that can be installed on Compute Nodes and can be used to - * authenticate operations on the machine. - */ -export interface BatchCertificateOutput { - /** 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). */ - thumbprint: string; - /** The algorithm used to derive the thumbprint. This must be sha1. */ - thumbprintAlgorithm: string; - /** The URL of the Certificate. */ - readonly url?: string; - /** - * The state of the Certificate. - * - * Possible values: "active", "deleting", "deletefailed" - */ - readonly state?: BatchCertificateStateOutput; - /** The time at which the Certificate entered its current state. */ - readonly stateTransitionTime?: string; - /** - * The previous state of the Certificate. This property is not set if the Certificate is in its initial active state. - * - * Possible values: "active", "deleting", "deletefailed" - */ - readonly previousState?: BatchCertificateStateOutput; - /** The time at which the Certificate entered its previous state. This property is not set if the Certificate is in its initial Active state. */ - readonly previousStateTransitionTime?: string; - /** The public part of the Certificate as a base-64 encoded .cer file. */ - readonly publicData?: string; - /** The error that occurred on the last attempt to delete this Certificate. This property is set only if the Certificate is in the DeleteFailed state. */ - readonly deleteCertificateError?: BatchCertificateDeleteErrorOutput; - /** The base64-encoded contents of the Certificate. The maximum size is 10KB. */ - data: string; - /** - * The format of the Certificate data. - * - * Possible values: "pfx", "cer" - */ - certificateFormat?: BatchCertificateFormatOutput; - /** The password to access the Certificate's private key. This must be omitted if the Certificate format is cer. */ - password?: string; -} - -/** An error encountered by the Batch service when deleting a Certificate. */ -export interface BatchCertificateDeleteErrorOutput { - /** An identifier for the Certificate deletion error. Codes are invariant and are intended to be consumed programmatically. */ - code?: string; - /** A message describing the Certificate deletion error, intended to be suitable for display in a user interface. */ - message?: string; - /** A list of additional error details related to the Certificate deletion error. This list includes details such as the active Pools and Compute Nodes referencing this Certificate. However, if a large number of resources reference the Certificate, the list contains only about the first hundred. */ - values?: Array; -} - -/** The result of listing the Certificates in the Account. */ -export interface BatchCertificateListResultOutput { - /** The list of Certificates. */ - value?: Array; - /** The URL to get the next set of results. */ - "odata.nextLink"?: string; -} - /** * A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a * specification used to create each Job. */ export interface BatchJobScheduleOutput { /** A string that uniquely identifies the schedule within the Account. */ - readonly id?: string; + readonly id: string; /** The display name for the schedule. */ readonly displayName?: string; /** The URL of the Job Schedule. */ - readonly url?: string; + readonly url: string; /** The ETag of the Job Schedule. This is an opaque string. You can use it to detect whether the Job Schedule has changed between requests. In particular, you can be pass the ETag with an Update Job Schedule request to specify that your changes should take effect only if nobody else has modified the schedule in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Job Schedule. This is the last time at which the schedule level data, such as the Job specification or recurrence information, changed. It does not factor in job-level changes such as new Jobs being created or Jobs changing state. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Job Schedule. */ - readonly creationTime?: string; + readonly creationTime: string; /** * The current state of the Job Schedule. * * Possible values: "active", "completed", "disabled", "terminating", "deleting" */ - readonly state?: BatchJobScheduleStateOutput; + readonly state: BatchJobScheduleStateOutput; /** The time at which the Job Schedule entered the current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * The previous state of the Job Schedule. This property is not present if the Job Schedule is in its initial active state. * @@ -1746,7 +1702,7 @@ export interface BatchJobScheduleOutput { /** The details of the Jobs to be created on this schedule. */ jobSpecification: BatchJobSpecificationOutput; /** Information about Jobs that have been and will be run under this schedule. */ - readonly executionInfo?: BatchJobScheduleExecutionInfoOutput; + readonly executionInfo: BatchJobScheduleExecutionInfoOutput; /** 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. */ metadata?: Array; /** The lifetime resource usage statistics for the Job Schedule. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes. */ @@ -1772,9 +1728,9 @@ export interface BatchJobScheduleConfigurationOutput { export interface BatchJobSpecificationOutput { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** 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. */ displayName?: string; @@ -1792,7 +1748,7 @@ export interface BatchJobSpecificationOutput { * Possible values: "noaction", "performexitoptionsjobaction" */ onTaskFailure?: BatchTaskFailureModeOutput; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfigurationOutput; /** The execution constraints for Jobs created under this schedule. */ constraints?: BatchJobConstraintsOutput; @@ -1993,17 +1949,17 @@ export interface BatchTaskListResultOutput { */ export interface BatchTaskOutput { /** 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. */ - readonly id?: string; + readonly id: string; /** 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. */ readonly displayName?: string; /** The URL of the Task. */ - readonly url?: string; + readonly url: string; /** The ETag of the Task. This is an opaque string. You can use it to detect whether the Task has changed between requests. In particular, you can be pass the ETag when updating a Task to specify that your changes should take effect only if nobody else has modified the Task in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Task. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Task. */ - readonly creationTime?: string; + readonly creationTime: string; /** How the Batch service should respond when the Task completes. */ readonly exitConditions?: ExitConditionsOutput; /** @@ -2011,9 +1967,9 @@ export interface BatchTaskOutput { * * Possible values: "active", "preparing", "running", "completed" */ - readonly state?: BatchTaskStateOutput; + readonly state: BatchTaskStateOutput; /** The time at which the Task entered its current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * The previous state of the Task. This property is not set if the Task is in its initial Active state. * @@ -2023,7 +1979,7 @@ export interface BatchTaskOutput { /** The time at which the Task entered its previous state. This property is not set if the Task is in its initial Active state. */ readonly previousStateTransitionTime?: string; /** 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://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). */ - readonly commandLine?: string; + readonly commandLine: string; /** 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. */ readonly containerSettings?: BatchTaskContainerSettingsOutput; /** 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. */ @@ -2240,64 +2196,59 @@ export interface FilePropertiesOutput { /** A Compute Node in the Batch service. */ export interface BatchNodeOutput { /** The ID of the Compute Node. Every Compute Node that is added to a Pool is assigned a unique ID. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the ID is reclaimed and could be reused for new Compute Nodes. */ - id?: string; + readonly id: string; /** The URL of the Compute Node. */ - url?: string; + readonly url: string; /** * The current state of the Compute Node. The Spot/Low-priority Compute Node has been preempted. Tasks which were running on the Compute Node when it was preempted will be rescheduled when another Compute Node becomes available. * * Possible values: "idle", "rebooting", "reimaging", "running", "unusable", "creating", "starting", "waitingforstarttask", "starttaskfailed", "unknown", "leavingpool", "offline", "preempted", "upgradingos", "deallocated", "deallocating" */ - state?: BatchNodeStateOutput; + readonly state: BatchNodeStateOutput; /** * Whether the Compute Node is available for Task scheduling. * * Possible values: "enabled", "disabled" */ - schedulingState?: SchedulingStateOutput; + readonly schedulingState?: SchedulingStateOutput; /** The time at which the Compute Node entered its current state. */ - stateTransitionTime?: string; + readonly stateTransitionTime: string; /** The last time at which the Compute Node was started. This property may not be present if the Compute Node state is unusable. */ - lastBootTime?: string; + readonly lastBootTime: string; /** The time at which this Compute Node was allocated to the Pool. This is the time when the Compute Node was initially allocated and doesn't change once set. It is not updated when the Compute Node is service healed or preempted. */ - allocationTime?: string; + readonly allocationTime: string; /** The IP address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes. */ - ipAddress?: string; + readonly ipAddress: string; + /** The IPv6 address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes. This property will not be present if the Pool is not configured for IPv6. */ + readonly ipv6Address: string; /** An identifier which can be passed when adding a Task to request that the Task be scheduled on this Compute Node. Note that this is just a soft affinity. If the target Compute Node is busy or unavailable at the time the Task is scheduled, then the Task will be scheduled elsewhere. */ - affinityId?: string; + readonly affinityId: string; /** The size of the virtual machine hosting the Compute Node. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes). */ - vmSize?: string; + readonly vmSize: string; /** The total number of Job Tasks completed on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - totalTasksRun?: number; + readonly totalTasksRun: number; /** The total number of currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - runningTasksCount?: number; + readonly runningTasksCount?: number; /** The total number of scheduling slots used by currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - runningTaskSlotsCount?: number; + readonly runningTaskSlotsCount?: number; /** The total number of Job Tasks which completed successfully (with exitCode 0) on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - totalTasksSucceeded?: number; + readonly totalTasksSucceeded?: number; /** A list of Tasks whose state has recently changed. This property is present only if at least one Task has run on this Compute Node since it was assigned to the Pool. */ - recentTasks?: Array; + readonly recentTasks?: Array; /** The Task specified to run on the Compute Node as it joins the Pool. */ - startTask?: BatchStartTaskOutput; + readonly startTask?: BatchStartTaskOutput; /** Runtime information about the execution of the StartTask on the Compute Node. */ - startTaskInfo?: BatchStartTaskInfoOutput; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; + readonly startTaskInfo?: BatchStartTaskInfoOutput; /** The list of errors that are currently being encountered by the Compute Node. */ - errors?: Array; + readonly errors?: Array; /** Whether this Compute Node is a dedicated Compute Node. If false, the Compute Node is a Spot/Low-priority Compute Node. */ - isDedicated?: boolean; + readonly isDedicated?: boolean; /** The endpoint configuration for the Compute Node. */ - endpointConfiguration?: BatchNodeEndpointConfigurationOutput; + readonly endpointConfiguration?: BatchNodeEndpointConfigurationOutput; /** Information about the Compute Node agent version and the time the Compute Node upgraded to a new version. */ - nodeAgentInfo?: BatchNodeAgentInfoOutput; + readonly nodeAgentInfo: BatchNodeAgentInfoOutput; /** Info about the current state of the virtual machine. */ - virtualMachineInfo?: VirtualMachineInfoOutput; + readonly virtualMachineInfo: VirtualMachineInfoOutput; } /** Information about a Task running on a Compute Node. */ @@ -2407,6 +2358,10 @@ export interface VirtualMachineInfoOutput { /** The remote login settings for a Compute Node. */ export interface BatchNodeRemoteLoginSettingsOutput { + /** The IPv6 address used for remote login to the Compute Node. */ + ipv6RemoteLoginIPAddress?: string; + /** The port used for remote login to the Compute Node. */ + ipv6RemoteLoginPort?: number; /** The IP address used for remote login to the Compute Node. */ remoteLoginIPAddress: string; /** The port used for remote login to the Compute Node. */ @@ -2479,6 +2434,8 @@ export interface BatchNodeVMExtensionListResultOutput { export type CachingTypeOutput = string; /** Alias for StorageAccountTypeOutput */ export type StorageAccountTypeOutput = string; +/** Alias for SecurityEncryptionTypesOutput */ +export type SecurityEncryptionTypesOutput = string; /** Alias for ContainerTypeOutput */ export type ContainerTypeOutput = string; /** Alias for DiskEncryptionTargetOutput */ @@ -2487,8 +2444,8 @@ export type DiskEncryptionTargetOutput = string; export type BatchNodePlacementPolicyTypeOutput = string; /** Alias for DiffDiskPlacementOutput */ export type DiffDiskPlacementOutput = string; -/** Alias for SecurityEncryptionTypesOutput */ -export type SecurityEncryptionTypesOutput = string; +/** Alias for HostEndpointSettingsModeTypesOutput */ +export type HostEndpointSettingsModeTypesOutput = string; /** Alias for SecurityTypesOutput */ export type SecurityTypesOutput = string; /** Alias for DynamicVNetAssignmentScopeOutput */ @@ -2499,6 +2456,8 @@ export type InboundEndpointProtocolOutput = string; export type NetworkSecurityGroupRuleAccessOutput = string; /** Alias for IpAddressProvisioningTypeOutput */ export type IpAddressProvisioningTypeOutput = string; +/** Alias for IPFamilyOutput */ +export type IPFamilyOutput = string; /** Alias for ContainerWorkingDirectoryOutput */ export type ContainerWorkingDirectoryOutput = string; /** Alias for ContainerHostDataPathOutput */ @@ -2507,16 +2466,12 @@ export type ContainerHostDataPathOutput = string; export type AutoUserScopeOutput = string; /** Alias for ElevationLevelOutput */ export type ElevationLevelOutput = string; -/** Alias for BatchCertificateStoreLocationOutput */ -export type BatchCertificateStoreLocationOutput = string; -/** Alias for BatchCertificateVisibilityOutput */ -export type BatchCertificateVisibilityOutput = string; +/** Alias for BatchJobDefaultOrderOutput */ +export type BatchJobDefaultOrderOutput = string; /** Alias for BatchNodeFillTypeOutput */ export type BatchNodeFillTypeOutput = string; /** Alias for LoginModeOutput */ export type LoginModeOutput = string; -/** Alias for BatchNodeCommunicationModeOutput */ -export type BatchNodeCommunicationModeOutput = string; /** Alias for UpgradeModeOutput */ export type UpgradeModeOutput = string; /** Alias for BatchPoolStateOutput */ @@ -2549,10 +2504,6 @@ export type BatchJobPreparationTaskStateOutput = string; export type BatchTaskExecutionResultOutput = string; /** Alias for BatchJobReleaseTaskStateOutput */ export type BatchJobReleaseTaskStateOutput = string; -/** Alias for BatchCertificateStateOutput */ -export type BatchCertificateStateOutput = string; -/** Alias for BatchCertificateFormatOutput */ -export type BatchCertificateFormatOutput = string; /** Alias for BatchJobScheduleStateOutput */ export type BatchJobScheduleStateOutput = string; /** Alias for BatchJobActionKindOutput */ diff --git a/sdk/batch/batch-rest/generated/parameters.ts b/sdk/batch/batch-rest/generated/parameters.ts index 7573467d3ebe..e5a0331fdad8 100644 --- a/sdk/batch/batch-rest/generated/parameters.ts +++ b/sdk/batch/batch-rest/generated/parameters.ts @@ -16,7 +16,6 @@ import type { BatchJobDisableOptions, BatchJobTerminateOptions, BatchJobCreateOptions, - BatchCertificate, BatchJobScheduleUpdateOptions, BatchJobSchedule, BatchJobScheduleCreateOptions, @@ -1750,218 +1749,6 @@ export type GetJobTaskCountsParameters = GetJobTaskCountsQueryParam & GetJobTaskCountsHeaderParam & RequestParameters; -export interface CreateCertificateHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -export interface CreateCertificateBodyParam { - /** The Certificate to be created. */ - body: BatchCertificate; -} - -export interface CreateCertificateQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; -} - -export interface CreateCertificateQueryParam { - queryParameters?: CreateCertificateQueryParamProperties; -} - -export interface CreateCertificateHeaderParam { - headers?: RawHttpHeadersInput & CreateCertificateHeaders; -} - -export interface CreateCertificateMediaTypesParam { - /** Type of content */ - contentType: "application/json; odata=minimalmetadata"; -} - -export type CreateCertificateParameters = CreateCertificateQueryParam & - CreateCertificateHeaderParam & - CreateCertificateMediaTypesParam & - CreateCertificateBodyParam & - RequestParameters; - -export interface ListCertificatesHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -/** This is the wrapper object for the parameter `$select` with explode set to false and style set to form. */ -export interface ListCertificatesSelectQueryParam { - /** Value of the parameter */ - value: string[]; - /** Should we explode the value? */ - explode: false; - /** Style of the value */ - style: "form"; -} - -export interface ListCertificatesQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; - /** - * The maximum number of items to return in the response. A maximum of 1000 - * applications can be returned. - */ - maxresults?: number; - /** - * 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. - */ - $filter?: string; - /** An OData $select clause. */ - $select?: string[] | ListCertificatesSelectQueryParam; -} - -export interface ListCertificatesQueryParam { - queryParameters?: ListCertificatesQueryParamProperties; -} - -export interface ListCertificatesHeaderParam { - headers?: RawHttpHeadersInput & ListCertificatesHeaders; -} - -export type ListCertificatesParameters = ListCertificatesQueryParam & - ListCertificatesHeaderParam & - RequestParameters; - -export interface CancelCertificateDeletionHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -export interface CancelCertificateDeletionQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; -} - -export interface CancelCertificateDeletionQueryParam { - queryParameters?: CancelCertificateDeletionQueryParamProperties; -} - -export interface CancelCertificateDeletionHeaderParam { - headers?: RawHttpHeadersInput & CancelCertificateDeletionHeaders; -} - -export type CancelCertificateDeletionParameters = - CancelCertificateDeletionQueryParam & - CancelCertificateDeletionHeaderParam & - RequestParameters; - -export interface DeleteCertificateHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -export interface DeleteCertificateQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; -} - -export interface DeleteCertificateQueryParam { - queryParameters?: DeleteCertificateQueryParamProperties; -} - -export interface DeleteCertificateHeaderParam { - headers?: RawHttpHeadersInput & DeleteCertificateHeaders; -} - -export type DeleteCertificateParameters = DeleteCertificateQueryParam & - DeleteCertificateHeaderParam & - RequestParameters; - -export interface GetCertificateHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -/** This is the wrapper object for the parameter `$select` with explode set to false and style set to form. */ -export interface GetCertificateSelectQueryParam { - /** Value of the parameter */ - value: string[]; - /** Should we explode the value? */ - explode: false; - /** Style of the value */ - style: "form"; -} - -export interface GetCertificateQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; - /** An OData $select clause. */ - $select?: string[] | GetCertificateSelectQueryParam; -} - -export interface GetCertificateQueryParam { - queryParameters?: GetCertificateQueryParamProperties; -} - -export interface GetCertificateHeaderParam { - headers?: RawHttpHeadersInput & GetCertificateHeaders; -} - -export type GetCertificateParameters = GetCertificateQueryParam & - GetCertificateHeaderParam & - RequestParameters; - export interface JobScheduleExistsHeaders { /** * The caller-generated request identity, in the form of a GUID with no decoration diff --git a/sdk/batch/batch-rest/generated/responses.ts b/sdk/batch/batch-rest/generated/responses.ts index fac4c59e8b2f..8a77a7b7ec97 100644 --- a/sdk/batch/batch-rest/generated/responses.ts +++ b/sdk/batch/batch-rest/generated/responses.ts @@ -17,9 +17,6 @@ import type { BatchJobListResultOutput, BatchJobPreparationAndReleaseTaskStatusListResultOutput, BatchTaskCountsResultOutput, - BatchCertificateListResultOutput, - BatchCertificateStateOutput, - BatchCertificateDeleteErrorOutput, BatchJobScheduleOutput, BatchJobScheduleListResultOutput, BatchTaskListResultOutput, @@ -737,132 +734,6 @@ export interface GetJobTaskCountsDefaultResponse extends HttpResponse { body: BatchErrorOutput; } -export interface CreateCertificate201Headers { - /** The OData ID of the resource to which the request applied. */ - dataserviceid: string; - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has succeeded and a new resource has been created as a result. */ -export interface CreateCertificate201Response extends HttpResponse { - status: "201"; - headers: RawHttpHeaders & CreateCertificate201Headers; -} - -export interface CreateCertificateDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface ListCertificates200Headers { - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has succeeded. */ -export interface ListCertificates200Response extends HttpResponse { - status: "200"; - body: BatchCertificateListResultOutput; - headers: RawHttpHeaders & ListCertificates200Headers; -} - -export interface ListCertificatesDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface CancelCertificateDeletion204Headers { - /** The OData ID of the resource to which the request applied. */ - dataserviceid: string; - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** There is no content to send for this request, but the headers may be useful. */ -export interface CancelCertificateDeletion204Response extends HttpResponse { - status: "204"; - headers: RawHttpHeaders & CancelCertificateDeletion204Headers; -} - -export interface CancelCertificateDeletionDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface DeleteCertificate202Headers { - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has been accepted for processing, but processing has not yet completed. */ -export interface DeleteCertificate202Response extends HttpResponse { - status: "202"; - headers: RawHttpHeaders & DeleteCertificate202Headers; -} - -export interface DeleteCertificateDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface GetCertificate200Headers { - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has succeeded. */ -export interface GetCertificate200Response extends HttpResponse { - status: "200"; - body: { - thumbprint: string; - thumbprintAlgorithm: string; - url?: string; - state?: BatchCertificateStateOutput; - stateTransitionTime?: string; - previousState?: BatchCertificateStateOutput; - previousStateTransitionTime?: string; - publicData?: string; - deleteCertificateError?: BatchCertificateDeleteErrorOutput; - }; - headers: RawHttpHeaders & GetCertificate200Headers; -} - -export interface GetCertificateDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - export interface JobScheduleExists200Headers { /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ etag?: string; diff --git a/sdk/batch/batch-rest/metadata.json b/sdk/batch/batch-rest/metadata.json index 816d707ce451..8c6151ac0cc3 100644 --- a/sdk/batch/batch-rest/metadata.json +++ b/sdk/batch/batch-rest/metadata.json @@ -1,4 +1,4 @@ { - "apiVersion": "2024-07-01.20.0", - "emitterVersion": "0.42.0" + "apiVersion": "2025-06-01", + "emitterVersion": "0.44.0" } diff --git a/sdk/batch/batch-rest/package.json b/sdk/batch/batch-rest/package.json index 92774eddc375..08ca3d2fc46e 100644 --- a/sdk/batch/batch-rest/package.json +++ b/sdk/batch/batch-rest/package.json @@ -1,6 +1,6 @@ { "name": "@azure-rest/batch", - "version": "1.0.0-beta.3", + "version": "1.0.0-beta.4", "description": "Batch Service Rest Level Client", "engines": { "node": ">=20.0.0" @@ -56,28 +56,28 @@ }, "dependencies": { "@azure-rest/core-client": "^2.3.1", - "@azure/core-auth": "^1.6.0", - "@azure/core-rest-pipeline": "^1.5.0", - "@azure/logger": "^1.0.0", - "tslib": "^2.6.2", - "moment": "~2.30.1" + "@azure/core-auth": "^1.9.0", + "@azure/core-rest-pipeline": "^1.20.0", + "@azure/core-util": "^1.12.0", + "@azure/logger": "^1.2.0", + "tslib": "^2.8.1" }, "devDependencies": { - "@azure-tools/test-credential": "workspace:^", - "@azure-tools/test-recorder": "workspace:^", - "@azure/core-util": "workspace:^", - "@azure/dev-tool": "workspace:^", - "@azure/eslint-plugin-azure-sdk": "workspace:^", - "@azure/identity": "catalog:internal", - "@types/node": "catalog:", - "@vitest/browser": "catalog:testing", - "@vitest/coverage-istanbul": "catalog:testing", - "dotenv": "catalog:testing", - "eslint": "catalog:", - "moment": "^2.30.1", - "playwright": "catalog:testing", - "typescript": "catalog:", - "vitest": "catalog:testing" + "@azure-tools/test-credential": "^2.0.0", + "@azure-tools/test-recorder": "^4.1.0", + "@azure-tools/test-utils-vitest": "^1.0.0", + "@azure/dev-tool": "^1.0.0", + "@azure/eslint-plugin-azure-sdk": "^3.0.0", + "@azure/identity": "^4.9.0", + "@types/node": "^20.0.0", + "eslint": "^9.9.0", + "@vitest/browser": "^3.0.9", + "@vitest/coverage-istanbul": "^3.0.9", + "dotenv": "^16.0.0", + "playwright": "^1.52.0", + "typescript": "~5.8.2", + "vitest": "^3.0.9", + "moment": "^2.30.1" }, "scripts": { "build": "npm run clean && dev-tool run build-package && npm run extract-api", @@ -93,7 +93,8 @@ "pack": "pnpm pack 2>&1", "test": "npm run test:node && npm run test:browser", "test:browser": "npm run clean && dev-tool run build-package && dev-tool run build-test && dev-tool run test:vitest --browser", - "test:node": "dev-tool run build-test --no-browser-test && dev-tool run test:vitest", + "test:node": "dev-tool run test:vitest", + "test:node:esm": "dev-tool run test:vitest --esm", "update-snippets": "dev-tool run update-snippets" }, "exports": { diff --git a/sdk/batch/batch-rest/review/batch-node.api.md b/sdk/batch/batch-rest/review/batch-node.api.md index 563214d5ec0a..dfbb054f130d 100644 --- a/sdk/batch/batch-rest/review/batch-node.api.md +++ b/sdk/batch/batch-rest/review/batch-node.api.md @@ -185,93 +185,6 @@ export interface BatchAutoPoolSpecificationOutput { poolLifetimeOption: BatchPoolLifetimeOptionOutput; } -// @public -export interface BatchCertificate { - certificateFormat?: BatchCertificateFormat; - data: string; - password?: string; - thumbprint: string; - thumbprintAlgorithm: string; -} - -// @public -export interface BatchCertificateDeleteError { - code?: string; - message?: string; - values?: Array; -} - -// @public -export interface BatchCertificateDeleteErrorOutput { - code?: string; - message?: string; - values?: Array; -} - -// @public -export type BatchCertificateFormat = string; - -// @public -export type BatchCertificateFormatOutput = string; - -// @public -export interface BatchCertificateListResultOutput { - "odata.nextLink"?: string; - value?: Array; -} - -// @public -export interface BatchCertificateOutput { - certificateFormat?: BatchCertificateFormatOutput; - data: string; - readonly deleteCertificateError?: BatchCertificateDeleteErrorOutput; - password?: string; - readonly previousState?: BatchCertificateStateOutput; - readonly previousStateTransitionTime?: string; - readonly publicData?: string; - readonly state?: BatchCertificateStateOutput; - readonly stateTransitionTime?: string; - thumbprint: string; - thumbprintAlgorithm: string; - readonly url?: string; -} - -// @public -export interface BatchCertificateReference { - storeLocation?: BatchCertificateStoreLocation; - storeName?: string; - thumbprint: string; - thumbprintAlgorithm: string; - visibility?: BatchCertificateVisibility[]; -} - -// @public -export interface BatchCertificateReferenceOutput { - storeLocation?: BatchCertificateStoreLocationOutput; - storeName?: string; - thumbprint: string; - thumbprintAlgorithm: string; - visibility?: BatchCertificateVisibilityOutput[]; -} - -// @public -export type BatchCertificateState = string; - -// @public -export type BatchCertificateStateOutput = string; - -// @public -export type BatchCertificateStoreLocation = string; - -// @public -export type BatchCertificateStoreLocationOutput = string; - -// @public -export type BatchCertificateVisibility = string; - -// @public -export type BatchCertificateVisibilityOutput = string; - // @public (undocumented) export type BatchClient = Client & { path: Routes; @@ -405,6 +318,12 @@ export interface BatchJobCreateOptions { usesTaskDependencies?: boolean; } +// @public +export type BatchJobDefaultOrder = string; + +// @public +export type BatchJobDefaultOrderOutput = string; + // @public export interface BatchJobDisableOptions { disableTasks: DisableBatchJobOption; @@ -489,15 +408,15 @@ export interface BatchJobOutput { allowTaskPreemption?: boolean; readonly commonEnvironmentSettings?: Array; constraints?: BatchJobConstraintsOutput; - readonly creationTime?: string; + readonly creationTime: string; readonly displayName?: string; - readonly eTag?: string; + readonly eTag: string; readonly executionInfo?: BatchJobExecutionInfoOutput; - readonly id?: string; + readonly id: string; readonly jobManagerTask?: BatchJobManagerTaskOutput; readonly jobPreparationTask?: BatchJobPreparationTaskOutput; readonly jobReleaseTask?: BatchJobReleaseTaskOutput; - readonly lastModified?: string; + readonly lastModified: string; maxParallelTasks?: number; metadata?: Array; readonly networkConfiguration?: BatchJobNetworkConfigurationOutput; @@ -507,10 +426,10 @@ export interface BatchJobOutput { readonly previousState?: BatchJobStateOutput; readonly previousStateTransitionTime?: string; priority?: number; - readonly state?: BatchJobStateOutput; - readonly stateTransitionTime?: string; + readonly state: BatchJobStateOutput; + readonly stateTransitionTime: string; readonly stats?: BatchJobStatisticsOutput; - readonly url?: string; + readonly url: string; readonly usesTaskDependencies?: boolean; } @@ -667,21 +586,21 @@ export interface BatchJobScheduleListResultOutput { // @public export interface BatchJobScheduleOutput { - readonly creationTime?: string; + readonly creationTime: string; readonly displayName?: string; - readonly eTag?: string; - readonly executionInfo?: BatchJobScheduleExecutionInfoOutput; - readonly id?: string; + readonly eTag: string; + readonly executionInfo: BatchJobScheduleExecutionInfoOutput; + readonly id: string; jobSpecification: BatchJobSpecificationOutput; - readonly lastModified?: string; + readonly lastModified: string; metadata?: Array; readonly previousState?: BatchJobScheduleStateOutput; readonly previousStateTransitionTime?: string; schedule?: BatchJobScheduleConfigurationOutput; - readonly state?: BatchJobScheduleStateOutput; - readonly stateTransitionTime?: string; + readonly state: BatchJobScheduleStateOutput; + readonly stateTransitionTime: string; readonly stats?: BatchJobScheduleStatisticsOutput; - readonly url?: string; + readonly url: string; } // @public @@ -864,12 +783,6 @@ export interface BatchNodeAgentInfoOutput { version: string; } -// @public -export type BatchNodeCommunicationMode = string; - -// @public -export type BatchNodeCommunicationModeOutput = string; - // @public export interface BatchNodeCountsOutput { creating: number; @@ -980,29 +893,29 @@ export interface BatchNodeListResultOutput { // @public export interface BatchNodeOutput { - affinityId?: string; - allocationTime?: string; - certificateReferences?: Array; - endpointConfiguration?: BatchNodeEndpointConfigurationOutput; - errors?: Array; - id?: string; - ipAddress?: string; - isDedicated?: boolean; - lastBootTime?: string; - nodeAgentInfo?: BatchNodeAgentInfoOutput; - recentTasks?: Array; - runningTasksCount?: number; - runningTaskSlotsCount?: number; - schedulingState?: SchedulingStateOutput; - startTask?: BatchStartTaskOutput; - startTaskInfo?: BatchStartTaskInfoOutput; - state?: BatchNodeStateOutput; - stateTransitionTime?: string; - totalTasksRun?: number; - totalTasksSucceeded?: number; - url?: string; - virtualMachineInfo?: VirtualMachineInfoOutput; - vmSize?: string; + readonly affinityId: string; + readonly allocationTime: string; + readonly endpointConfiguration?: BatchNodeEndpointConfigurationOutput; + readonly errors?: Array; + readonly id: string; + readonly ipAddress: string; + readonly ipv6Address: string; + readonly isDedicated?: boolean; + readonly lastBootTime: string; + readonly nodeAgentInfo: BatchNodeAgentInfoOutput; + readonly recentTasks?: Array; + readonly runningTasksCount?: number; + readonly runningTaskSlotsCount?: number; + readonly schedulingState?: SchedulingStateOutput; + readonly startTask?: BatchStartTaskOutput; + readonly startTaskInfo?: BatchStartTaskInfoOutput; + readonly state: BatchNodeStateOutput; + readonly stateTransitionTime: string; + readonly totalTasksRun: number; + readonly totalTasksSucceeded?: number; + readonly url: string; + readonly virtualMachineInfo: VirtualMachineInfoOutput; + readonly vmSize: string; } // @public @@ -1039,6 +952,8 @@ export interface BatchNodeReimageOptions { // @public export interface BatchNodeRemoteLoginSettingsOutput { + ipv6RemoteLoginIPAddress?: string; + ipv6RemoteLoginPort?: number; remoteLoginIPAddress: string; remoteLoginPort: number; } @@ -1105,7 +1020,6 @@ export interface BatchPoolCreateOptions { applicationPackageReferences?: Array; autoScaleEvaluationInterval?: string; autoScaleFormula?: string; - certificateReferences?: Array; displayName?: string; enableAutoScale?: boolean; enableInterNodeCommunication?: boolean; @@ -1114,11 +1028,9 @@ export interface BatchPoolCreateOptions { mountConfiguration?: Array; networkConfiguration?: NetworkConfiguration; resizeTimeout?: string; - resourceTags?: Record; startTask?: BatchStartTask; targetDedicatedNodes?: number; targetLowPriorityNodes?: number; - targetNodeCommunicationMode?: BatchNodeCommunicationMode; taskSchedulingPolicy?: BatchTaskSchedulingPolicy; taskSlotsPerNode?: number; upgradePolicy?: UpgradePolicy; @@ -1154,6 +1066,16 @@ export interface BatchPoolIdentityOutput { userAssignedIdentities?: Array; } +// @public +export interface BatchPoolIdentityReference { + resourceId?: string; +} + +// @public +export interface BatchPoolIdentityReferenceOutput { + resourceId?: string; +} + // @public export type BatchPoolIdentityTypeOutput = string; @@ -1208,47 +1130,41 @@ export interface BatchPoolOutput { readonly autoScaleEvaluationInterval?: string; readonly autoScaleFormula?: string; readonly autoScaleRun?: AutoScaleRunOutput; - readonly certificateReferences?: Array; - readonly creationTime?: string; - readonly currentDedicatedNodes?: number; - readonly currentLowPriorityNodes?: number; - readonly currentNodeCommunicationMode?: BatchNodeCommunicationModeOutput; + readonly creationTime: string; + readonly currentDedicatedNodes: number; + readonly currentLowPriorityNodes: number; readonly displayName?: string; readonly enableAutoScale?: boolean; readonly enableInterNodeCommunication?: boolean; - readonly eTag?: string; - readonly id?: string; + readonly eTag: string; + readonly id: string; readonly identity?: BatchPoolIdentityOutput; - readonly lastModified?: string; + readonly lastModified: string; readonly metadata?: Array; readonly mountConfiguration?: Array; readonly networkConfiguration?: NetworkConfigurationOutput; readonly resizeErrors?: Array; readonly resizeTimeout?: string; - readonly resourceTags?: Record; startTask?: BatchStartTaskOutput; - readonly state?: BatchPoolStateOutput; - readonly stateTransitionTime?: string; + readonly state: BatchPoolStateOutput; + readonly stateTransitionTime: string; readonly stats?: BatchPoolStatisticsOutput; readonly targetDedicatedNodes?: number; readonly targetLowPriorityNodes?: number; - targetNodeCommunicationMode?: BatchNodeCommunicationModeOutput; readonly taskSchedulingPolicy?: BatchTaskSchedulingPolicyOutput; readonly taskSlotsPerNode?: number; upgradePolicy?: UpgradePolicyOutput; - readonly url?: string; + readonly url: string; readonly userAccounts?: Array; readonly virtualMachineConfiguration?: VirtualMachineConfigurationOutput; - readonly vmSize?: string; + readonly vmSize: string; } // @public export interface BatchPoolReplaceOptions { applicationPackageReferences: Array; - certificateReferences: Array; metadata: Array; startTask?: BatchStartTask; - targetNodeCommunicationMode?: BatchNodeCommunicationMode; } // @public @@ -1281,7 +1197,6 @@ export interface BatchPoolSpecification { applicationPackageReferences?: Array; autoScaleEvaluationInterval?: string; autoScaleFormula?: string; - certificateReferences?: Array; displayName?: string; enableAutoScale?: boolean; enableInterNodeCommunication?: boolean; @@ -1289,11 +1204,9 @@ export interface BatchPoolSpecification { mountConfiguration?: Array; networkConfiguration?: NetworkConfiguration; resizeTimeout?: string; - resourceTags?: string; startTask?: BatchStartTask; targetDedicatedNodes?: number; targetLowPriorityNodes?: number; - targetNodeCommunicationMode?: BatchNodeCommunicationMode; taskSchedulingPolicy?: BatchTaskSchedulingPolicy; taskSlotsPerNode?: number; upgradePolicy?: UpgradePolicy; @@ -1307,7 +1220,6 @@ export interface BatchPoolSpecificationOutput { applicationPackageReferences?: Array; autoScaleEvaluationInterval?: string; autoScaleFormula?: string; - certificateReferences?: Array; displayName?: string; enableAutoScale?: boolean; enableInterNodeCommunication?: boolean; @@ -1315,11 +1227,9 @@ export interface BatchPoolSpecificationOutput { mountConfiguration?: Array; networkConfiguration?: NetworkConfigurationOutput; resizeTimeout?: string; - resourceTags?: string; startTask?: BatchStartTaskOutput; targetDedicatedNodes?: number; targetLowPriorityNodes?: number; - targetNodeCommunicationMode?: BatchNodeCommunicationModeOutput; taskSchedulingPolicy?: BatchTaskSchedulingPolicyOutput; taskSlotsPerNode?: number; upgradePolicy?: UpgradePolicyOutput; @@ -1343,15 +1253,12 @@ export interface BatchPoolStatisticsOutput { // @public export interface BatchPoolUpdateOptions { applicationPackageReferences?: Array; - certificateReferences?: Array; displayName?: string; enableInterNodeCommunication?: boolean; metadata?: Array; mountConfiguration?: Array; networkConfiguration?: NetworkConfiguration; - resourceTags?: Record; startTask?: BatchStartTask; - targetNodeCommunicationMode?: BatchNodeCommunicationMode; taskSchedulingPolicy?: BatchTaskSchedulingPolicy; taskSlotsPerNode?: number; upgradePolicy?: UpgradePolicy; @@ -1379,12 +1286,16 @@ export interface BatchPoolUsageStatisticsOutput { // @public export interface BatchPublicIpAddressConfiguration { ipAddressIds?: string[]; + ipFamilies?: IPFamily[]; + ipTags?: Array; provision?: IpAddressProvisioningType; } // @public export interface BatchPublicIpAddressConfigurationOutput { ipAddressIds?: string[]; + ipFamilies?: IPFamilyOutput[]; + ipTags?: Array; provision?: IpAddressProvisioningTypeOutput; } @@ -1666,18 +1577,18 @@ export interface BatchTaskOutput { readonly affinityInfo?: BatchAffinityInfoOutput; readonly applicationPackageReferences?: Array; readonly authenticationTokenSettings?: AuthenticationTokenSettingsOutput; - readonly commandLine?: string; + readonly commandLine: string; constraints?: BatchTaskConstraintsOutput; readonly containerSettings?: BatchTaskContainerSettingsOutput; - readonly creationTime?: string; + readonly creationTime: string; readonly dependsOn?: BatchTaskDependenciesOutput; readonly displayName?: string; readonly environmentSettings?: Array; - readonly eTag?: string; + readonly eTag: string; readonly executionInfo?: BatchTaskExecutionInfoOutput; readonly exitConditions?: ExitConditionsOutput; - readonly id?: string; - readonly lastModified?: string; + readonly id: string; + readonly lastModified: string; readonly multiInstanceSettings?: MultiInstanceSettingsOutput; readonly nodeInfo?: BatchNodeInfoOutput; readonly outputFiles?: Array; @@ -1685,20 +1596,22 @@ export interface BatchTaskOutput { readonly previousStateTransitionTime?: string; readonly requiredSlots?: number; readonly resourceFiles?: Array; - readonly state?: BatchTaskStateOutput; - readonly stateTransitionTime?: string; + readonly state: BatchTaskStateOutput; + readonly stateTransitionTime: string; readonly stats?: BatchTaskStatisticsOutput; - readonly url?: string; + readonly url: string; readonly userIdentity?: UserIdentityOutput; } // @public export interface BatchTaskSchedulingPolicy { + jobDefaultOrder?: BatchJobDefaultOrder; nodeFillType: BatchNodeFillType; } // @public export interface BatchTaskSchedulingPolicyOutput { + jobDefaultOrder?: BatchJobDefaultOrderOutput; nodeFillType: BatchNodeFillTypeOutput; } @@ -1805,63 +1718,6 @@ export type CachingType = string; // @public export type CachingTypeOutput = string; -// @public (undocumented) -export interface CancelCertificateDeletion { - post(options?: CancelCertificateDeletionParameters): StreamableMethod; -} - -// @public (undocumented) -export interface CancelCertificateDeletion204Headers { - "client-request-id"?: string; - "last-modified"?: string; - "request-id"?: string; - dataserviceid: string; - etag?: string; -} - -// @public -export interface CancelCertificateDeletion204Response extends HttpResponse { - // (undocumented) - headers: RawHttpHeaders & CancelCertificateDeletion204Headers; - // (undocumented) - status: "204"; -} - -// @public (undocumented) -export interface CancelCertificateDeletionDefaultResponse extends HttpResponse { - // (undocumented) - body: BatchErrorOutput; - // (undocumented) - status: string; -} - -// @public (undocumented) -export interface CancelCertificateDeletionHeaderParam { - // (undocumented) - headers?: RawHttpHeadersInput & CancelCertificateDeletionHeaders; -} - -// @public (undocumented) -export interface CancelCertificateDeletionHeaders { - "client-request-id"?: string; - "ocp-date"?: string; - "return-client-request-id"?: boolean; -} - -// @public (undocumented) -export type CancelCertificateDeletionParameters = CancelCertificateDeletionQueryParam & CancelCertificateDeletionHeaderParam & RequestParameters; - -// @public (undocumented) -export interface CancelCertificateDeletionQueryParam { - // (undocumented) - queryParameters?: CancelCertificateDeletionQueryParamProperties; -} - -// @public (undocumented) -export interface CancelCertificateDeletionQueryParamProperties { - timeOut?: number; -} - // @public export interface CifsMountConfiguration { mountOptions?: string; @@ -1926,74 +1782,6 @@ export type ContainerWorkingDirectory = string; // @public export type ContainerWorkingDirectoryOutput = string; -// @public (undocumented) -export interface CreateCertificate { - get(options?: ListCertificatesParameters): StreamableMethod; - post(options: CreateCertificateParameters): StreamableMethod; -} - -// @public (undocumented) -export interface CreateCertificate201Headers { - "client-request-id"?: string; - "last-modified"?: string; - "request-id"?: string; - dataserviceid: string; - etag?: string; -} - -// @public -export interface CreateCertificate201Response extends HttpResponse { - // (undocumented) - headers: RawHttpHeaders & CreateCertificate201Headers; - // (undocumented) - status: "201"; -} - -// @public (undocumented) -export interface CreateCertificateBodyParam { - body: BatchCertificate; -} - -// @public (undocumented) -export interface CreateCertificateDefaultResponse extends HttpResponse { - // (undocumented) - body: BatchErrorOutput; - // (undocumented) - status: string; -} - -// @public (undocumented) -export interface CreateCertificateHeaderParam { - // (undocumented) - headers?: RawHttpHeadersInput & CreateCertificateHeaders; -} - -// @public (undocumented) -export interface CreateCertificateHeaders { - "client-request-id"?: string; - "ocp-date"?: string; - "return-client-request-id"?: boolean; -} - -// @public (undocumented) -export interface CreateCertificateMediaTypesParam { - contentType: "application/json; odata=minimalmetadata"; -} - -// @public (undocumented) -export type CreateCertificateParameters = CreateCertificateQueryParam & CreateCertificateHeaderParam & CreateCertificateMediaTypesParam & CreateCertificateBodyParam & RequestParameters; - -// @public (undocumented) -export interface CreateCertificateQueryParam { - // (undocumented) - queryParameters?: CreateCertificateQueryParamProperties; -} - -// @public (undocumented) -export interface CreateCertificateQueryParamProperties { - timeOut?: number; -} - // @public function createClient(endpointParam: string, credentials: TokenCredential | AzureNamedKeyCredential, { apiVersion, ...options }?: BatchClientOptions): BatchClient; export default createClient; @@ -2410,6 +2198,7 @@ export interface DataDisk { caching?: CachingType; diskSizeGB: number; lun: number; + managedDisk?: ManagedDisk; storageAccountType?: StorageAccountType; } @@ -2418,6 +2207,7 @@ export interface DataDiskOutput { caching?: CachingTypeOutput; diskSizeGB: number; lun: number; + managedDisk?: ManagedDiskOutput; storageAccountType?: StorageAccountTypeOutput; } @@ -2488,63 +2278,6 @@ export interface DeallocateNodeQueryParamProperties { timeOut?: number; } -// @public (undocumented) -export interface DeleteCertificate { - delete(options?: DeleteCertificateParameters): StreamableMethod; - get(options?: GetCertificateParameters): StreamableMethod; -} - -// @public (undocumented) -export interface DeleteCertificate202Headers { - "client-request-id"?: string; - "last-modified"?: string; - "request-id"?: string; - etag?: string; -} - -// @public -export interface DeleteCertificate202Response extends HttpResponse { - // (undocumented) - headers: RawHttpHeaders & DeleteCertificate202Headers; - // (undocumented) - status: "202"; -} - -// @public (undocumented) -export interface DeleteCertificateDefaultResponse extends HttpResponse { - // (undocumented) - body: BatchErrorOutput; - // (undocumented) - status: string; -} - -// @public (undocumented) -export interface DeleteCertificateHeaderParam { - // (undocumented) - headers?: RawHttpHeadersInput & DeleteCertificateHeaders; -} - -// @public (undocumented) -export interface DeleteCertificateHeaders { - "client-request-id"?: string; - "ocp-date"?: string; - "return-client-request-id"?: boolean; -} - -// @public (undocumented) -export type DeleteCertificateParameters = DeleteCertificateQueryParam & DeleteCertificateHeaderParam & RequestParameters; - -// @public (undocumented) -export interface DeleteCertificateQueryParam { - // (undocumented) - queryParameters?: DeleteCertificateQueryParamProperties; -} - -// @public (undocumented) -export interface DeleteCertificateQueryParamProperties { - timeOut?: number; -} - // @public (undocumented) export interface DeleteJob { delete(options?: DeleteJobParameters): StreamableMethod; @@ -3222,16 +2955,42 @@ export interface DisablePoolAutoScaleQueryParamProperties { timeOut?: number; } +// @public +export interface DiskCustomerManagedKey { + identityReference?: BatchPoolIdentityReference; + keyUrl?: string; + rotationToLatestKeyVersionEnabled?: boolean; +} + +// @public +export interface DiskCustomerManagedKeyOutput { + identityReference?: BatchPoolIdentityReferenceOutput; + keyUrl?: string; + rotationToLatestKeyVersionEnabled?: boolean; +} + // @public export interface DiskEncryptionConfiguration { + customerManagedKey?: DiskCustomerManagedKey; targets?: DiskEncryptionTarget[]; } // @public export interface DiskEncryptionConfigurationOutput { + customerManagedKey?: DiskCustomerManagedKeyOutput; targets?: DiskEncryptionTargetOutput[]; } +// @public +export interface DiskEncryptionSetParameters { + id?: string; +} + +// @public +export interface DiskEncryptionSetParametersOutput { + id?: string; +} + // @public export type DiskEncryptionTarget = string; @@ -3707,77 +3466,6 @@ export interface GetApplicationQueryParamProperties { // @public export type GetArrayType = T extends Array ? TData : never; -// @public (undocumented) -export interface GetCertificate200Headers { - "client-request-id"?: string; - "last-modified"?: string; - "request-id"?: string; - etag?: string; -} - -// @public -export interface GetCertificate200Response extends HttpResponse { - // (undocumented) - body: { - thumbprint: string; - thumbprintAlgorithm: string; - url?: string; - state?: BatchCertificateStateOutput; - stateTransitionTime?: string; - previousState?: BatchCertificateStateOutput; - previousStateTransitionTime?: string; - publicData?: string; - deleteCertificateError?: BatchCertificateDeleteErrorOutput; - }; - // (undocumented) - headers: RawHttpHeaders & GetCertificate200Headers; - // (undocumented) - status: "200"; -} - -// @public (undocumented) -export interface GetCertificateDefaultResponse extends HttpResponse { - // (undocumented) - body: BatchErrorOutput; - // (undocumented) - status: string; -} - -// @public (undocumented) -export interface GetCertificateHeaderParam { - // (undocumented) - headers?: RawHttpHeadersInput & GetCertificateHeaders; -} - -// @public (undocumented) -export interface GetCertificateHeaders { - "client-request-id"?: string; - "ocp-date"?: string; - "return-client-request-id"?: boolean; -} - -// @public (undocumented) -export type GetCertificateParameters = GetCertificateQueryParam & GetCertificateHeaderParam & RequestParameters; - -// @public (undocumented) -export interface GetCertificateQueryParam { - // (undocumented) - queryParameters?: GetCertificateQueryParamProperties; -} - -// @public (undocumented) -export interface GetCertificateQueryParamProperties { - $select?: string[] | GetCertificateSelectQueryParam; - timeOut?: number; -} - -// @public -export interface GetCertificateSelectQueryParam { - explode: false; - style: "form"; - value: string[]; -} - // @public (undocumented) export interface GetJob200Headers { "client-request-id"?: string; @@ -4563,6 +4251,24 @@ export interface GetTaskSelectQueryParam { value: string[]; } +// @public +export interface HostEndpointSettings { + inVMAccessControlProfileReferenceId?: string; + mode?: HostEndpointSettingsModeTypes; +} + +// @public +export type HostEndpointSettingsModeTypes = string; + +// @public +export type HostEndpointSettingsModeTypesOutput = string; + +// @public +export interface HostEndpointSettingsOutput { + inVMAccessControlProfileReferenceId?: string; + mode?: HostEndpointSettingsModeTypesOutput; +} + // @public export type ImageVerificationTypeOutput = string; @@ -4597,6 +4303,24 @@ export type IpAddressProvisioningType = string; // @public export type IpAddressProvisioningTypeOutput = string; +// @public +export type IPFamily = string; + +// @public +export type IPFamilyOutput = string; + +// @public +export interface IPTag { + ipTagType?: string; + tag?: string; +} + +// @public +export interface IPTagOutput { + ipTagType?: string; + tag?: string; +} + // @public (undocumented) export function isUnexpected(response: ListApplications200Response | ListApplicationsDefaultResponse): response is ListApplicationsDefaultResponse; @@ -4687,21 +4411,6 @@ export function isUnexpected(response: ListJobPreparationAndReleaseTaskStatus200 // @public (undocumented) export function isUnexpected(response: GetJobTaskCounts200Response | GetJobTaskCountsDefaultResponse): response is GetJobTaskCountsDefaultResponse; -// @public (undocumented) -export function isUnexpected(response: CreateCertificate201Response | CreateCertificateDefaultResponse): response is CreateCertificateDefaultResponse; - -// @public (undocumented) -export function isUnexpected(response: ListCertificates200Response | ListCertificatesDefaultResponse): response is ListCertificatesDefaultResponse; - -// @public (undocumented) -export function isUnexpected(response: CancelCertificateDeletion204Response | CancelCertificateDeletionDefaultResponse): response is CancelCertificateDeletionDefaultResponse; - -// @public (undocumented) -export function isUnexpected(response: DeleteCertificate202Response | DeleteCertificateDefaultResponse): response is DeleteCertificateDefaultResponse; - -// @public (undocumented) -export function isUnexpected(response: GetCertificate200Response | GetCertificateDefaultResponse): response is GetCertificateDefaultResponse; - // @public (undocumented) export function isUnexpected(response: JobScheduleExists200Response | JobScheduleExists404Response | JobScheduleExistsDefaultResponse): response is JobScheduleExistsDefaultResponse; @@ -4971,69 +4680,6 @@ export interface ListApplicationsQueryParamProperties { timeOut?: number; } -// @public (undocumented) -export interface ListCertificates200Headers { - "client-request-id"?: string; - "last-modified"?: string; - "request-id"?: string; - etag?: string; -} - -// @public -export interface ListCertificates200Response extends HttpResponse { - // (undocumented) - body: BatchCertificateListResultOutput; - // (undocumented) - headers: RawHttpHeaders & ListCertificates200Headers; - // (undocumented) - status: "200"; -} - -// @public (undocumented) -export interface ListCertificatesDefaultResponse extends HttpResponse { - // (undocumented) - body: BatchErrorOutput; - // (undocumented) - status: string; -} - -// @public (undocumented) -export interface ListCertificatesHeaderParam { - // (undocumented) - headers?: RawHttpHeadersInput & ListCertificatesHeaders; -} - -// @public (undocumented) -export interface ListCertificatesHeaders { - "client-request-id"?: string; - "ocp-date"?: string; - "return-client-request-id"?: boolean; -} - -// @public (undocumented) -export type ListCertificatesParameters = ListCertificatesQueryParam & ListCertificatesHeaderParam & RequestParameters; - -// @public (undocumented) -export interface ListCertificatesQueryParam { - // (undocumented) - queryParameters?: ListCertificatesQueryParamProperties; -} - -// @public (undocumented) -export interface ListCertificatesQueryParamProperties { - $filter?: string; - $select?: string[] | ListCertificatesSelectQueryParam; - maxresults?: number; - timeOut?: number; -} - -// @public -export interface ListCertificatesSelectQueryParam { - explode: false; - style: "form"; - value: string[]; -} - // @public (undocumented) export interface ListJobPreparationAndReleaseTaskStatus { get(options?: ListJobPreparationAndReleaseTaskStatusParameters): StreamableMethod; @@ -5975,12 +5621,14 @@ export type LoginModeOutput = string; // @public export interface ManagedDisk { + diskEncryptionSet?: DiskEncryptionSetParameters; securityProfile?: BatchVmDiskSecurityProfile; storageAccountType?: StorageAccountType; } // @public export interface ManagedDiskOutput { + diskEncryptionSet?: DiskEncryptionSetParametersOutput; securityProfile?: BatchVmDiskSecurityProfileOutput; storageAccountType?: StorageAccountTypeOutput; } @@ -6240,6 +5888,20 @@ export interface PoolExistsQueryParamProperties { timeOut?: number; } +// @public +export interface ProxyAgentSettings { + enabled?: boolean; + imds?: HostEndpointSettings; + wireServer?: HostEndpointSettings; +} + +// @public +export interface ProxyAgentSettingsOutput { + enabled?: boolean; + imds?: HostEndpointSettingsOutput; + wireServer?: HostEndpointSettingsOutput; +} + // @public (undocumented) export interface ReactivateTask { post(options?: ReactivateTaskParameters): StreamableMethod; @@ -6991,9 +6653,6 @@ export interface Routes { (path: "/jobschedules/{jobScheduleId}/jobs", jobScheduleId: string): ListJobsFromSchedule; (path: "/jobs/{jobId}/jobpreparationandreleasetaskstatus", jobId: string): ListJobPreparationAndReleaseTaskStatus; (path: "/jobs/{jobId}/taskcounts", jobId: string): GetJobTaskCounts; - (path: "/certificates"): CreateCertificate; - (path: "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete", thumbprintAlgorithm: string, thumbprint: string): CancelCertificateDeletion; - (path: "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})", thumbprintAlgorithm: string, thumbprint: string): DeleteCertificate; (path: "/jobschedules/{jobScheduleId}", jobScheduleId: string): JobScheduleExists; (path: "/jobschedules/{jobScheduleId}/disable", jobScheduleId: string): DisableJobSchedule; (path: "/jobschedules/{jobScheduleId}/enable", jobScheduleId: string): EnableJobSchedule; @@ -7037,6 +6696,7 @@ export type SecurityEncryptionTypesOutput = string; // @public export interface SecurityProfile { encryptionAtHost?: boolean; + proxyAgentSettings?: ProxyAgentSettings; securityType?: SecurityTypes; uefiSettings?: BatchUefiSettings; } @@ -7044,6 +6704,7 @@ export interface SecurityProfile { // @public export interface SecurityProfileOutput { encryptionAtHost?: boolean; + proxyAgentSettings?: ProxyAgentSettingsOutput; securityType?: SecurityTypesOutput; uefiSettings?: BatchUefiSettingsOutput; } diff --git a/sdk/batch/batch-rest/src/batchClient.ts b/sdk/batch/batch-rest/src/batchClient.ts index 79d2958706c4..a337c4e22939 100644 --- a/sdk/batch/batch-rest/src/batchClient.ts +++ b/sdk/batch/batch-rest/src/batchClient.ts @@ -24,7 +24,7 @@ export interface BatchClientOptions extends ClientOptions { export default function createClient( endpointParam: string, credentials: TokenCredential | AzureNamedKeyCredential, - { apiVersion = "2024-07-01.20.0", ...options }: BatchClientOptions = {}, + { apiVersion = "2025-06-01", ...options }: BatchClientOptions = {}, ): BatchClient { const endpointUrl = options.endpoint ?? `${endpointParam}`; const userAgentInfo = `azsdk-js-batch-rest/1.0.0-beta.3`; diff --git a/sdk/batch/batch-rest/src/clientDefinitions.ts b/sdk/batch/batch-rest/src/clientDefinitions.ts index 52e0b4454378..efce6ae65479 100644 --- a/sdk/batch/batch-rest/src/clientDefinitions.ts +++ b/sdk/batch/batch-rest/src/clientDefinitions.ts @@ -32,11 +32,6 @@ import type { ListJobsFromScheduleParameters, ListJobPreparationAndReleaseTaskStatusParameters, GetJobTaskCountsParameters, - CreateCertificateParameters, - ListCertificatesParameters, - CancelCertificateDeletionParameters, - DeleteCertificateParameters, - GetCertificateParameters, JobScheduleExistsParameters, DeleteJobScheduleParameters, GetJobScheduleParameters, @@ -142,16 +137,6 @@ import type { ListJobPreparationAndReleaseTaskStatusDefaultResponse, GetJobTaskCounts200Response, GetJobTaskCountsDefaultResponse, - CreateCertificate201Response, - CreateCertificateDefaultResponse, - ListCertificates200Response, - ListCertificatesDefaultResponse, - CancelCertificateDeletion204Response, - CancelCertificateDeletionDefaultResponse, - DeleteCertificate202Response, - DeleteCertificateDefaultResponse, - GetCertificate200Response, - GetCertificateDefaultResponse, JobScheduleExists200Response, JobScheduleExists404Response, JobScheduleExistsDefaultResponse, @@ -289,7 +274,7 @@ export interface CreatePool { post( options: CreatePoolParameters, ): StreamableMethod; - /** Lists all of the Pools which be mounted. */ + /** Lists all of the Pools in the specified Account. */ get( options?: ListPoolsParameters, ): StreamableMethod; @@ -566,55 +551,6 @@ export interface GetJobTaskCounts { ): StreamableMethod; } -export interface CreateCertificate { - /** Creates a Certificate to the specified Account. */ - post( - options: CreateCertificateParameters, - ): StreamableMethod; - /** Lists all of the Certificates that have been added to the specified Account. */ - get( - options?: ListCertificatesParameters, - ): StreamableMethod; -} - -export interface CancelCertificateDeletion { - /** - * 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. - */ - post( - options?: CancelCertificateDeletionParameters, - ): StreamableMethod< - CancelCertificateDeletion204Response | CancelCertificateDeletionDefaultResponse - >; -} - -export interface DeleteCertificate { - /** - * 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. - */ - delete( - options?: DeleteCertificateParameters, - ): StreamableMethod; - /** Gets information about the specified Certificate. */ - get( - options?: GetCertificateParameters, - ): StreamableMethod; -} - export interface JobScheduleExists { /** Checks the specified Job Schedule exists. */ head( @@ -1010,20 +946,6 @@ export interface Routes { ): ListJobPreparationAndReleaseTaskStatus; /** Resource for '/jobs/\{jobId\}/taskcounts' has methods for the following verbs: get */ (path: "/jobs/{jobId}/taskcounts", jobId: string): GetJobTaskCounts; - /** Resource for '/certificates' has methods for the following verbs: post, get */ - (path: "/certificates"): CreateCertificate; - /** Resource for '/certificates(thumbprintAlgorithm=\{thumbprintAlgorithm\},thumbprint=\{thumbprint\})/canceldelete' has methods for the following verbs: post */ - ( - path: "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete", - thumbprintAlgorithm: string, - thumbprint: string, - ): CancelCertificateDeletion; - /** Resource for '/certificates(thumbprintAlgorithm=\{thumbprintAlgorithm\},thumbprint=\{thumbprint\})' has methods for the following verbs: delete, get */ - ( - path: "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})", - thumbprintAlgorithm: string, - thumbprint: string, - ): DeleteCertificate; /** Resource for '/jobschedules/\{jobScheduleId\}' has methods for the following verbs: head, delete, get, patch, put */ (path: "/jobschedules/{jobScheduleId}", jobScheduleId: string): JobScheduleExists; /** Resource for '/jobschedules/\{jobScheduleId\}/disable' has methods for the following verbs: post */ diff --git a/sdk/batch/batch-rest/src/isUnexpected.ts b/sdk/batch/batch-rest/src/isUnexpected.ts index 4f683ffae151..9164146a47ed 100644 --- a/sdk/batch/batch-rest/src/isUnexpected.ts +++ b/sdk/batch/batch-rest/src/isUnexpected.ts @@ -63,16 +63,6 @@ import type { ListJobPreparationAndReleaseTaskStatusDefaultResponse, GetJobTaskCounts200Response, GetJobTaskCountsDefaultResponse, - CreateCertificate201Response, - CreateCertificateDefaultResponse, - ListCertificates200Response, - ListCertificatesDefaultResponse, - CancelCertificateDeletion204Response, - CancelCertificateDeletionDefaultResponse, - DeleteCertificate202Response, - DeleteCertificateDefaultResponse, - GetCertificate200Response, - GetCertificateDefaultResponse, JobScheduleExists200Response, JobScheduleExists404Response, JobScheduleExistsDefaultResponse, @@ -191,14 +181,6 @@ const responseMap: Record = { "GET /jobschedules/{jobScheduleId}/jobs": ["200"], "GET /jobs/{jobId}/jobpreparationandreleasetaskstatus": ["200"], "GET /jobs/{jobId}/taskcounts": ["200"], - "POST /certificates": ["201"], - "GET /certificates": ["200"], - "POST /certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete": - ["204"], - "DELETE /certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})": [ - "202", - ], - "GET /certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})": ["200"], "HEAD /jobschedules/{jobScheduleId}": ["200", "404"], "DELETE /jobschedules/{jobScheduleId}": ["202"], "GET /jobschedules/{jobScheduleId}": ["200"], @@ -335,21 +317,6 @@ export function isUnexpected( export function isUnexpected( response: GetJobTaskCounts200Response | GetJobTaskCountsDefaultResponse, ): response is GetJobTaskCountsDefaultResponse; -export function isUnexpected( - response: CreateCertificate201Response | CreateCertificateDefaultResponse, -): response is CreateCertificateDefaultResponse; -export function isUnexpected( - response: ListCertificates200Response | ListCertificatesDefaultResponse, -): response is ListCertificatesDefaultResponse; -export function isUnexpected( - response: CancelCertificateDeletion204Response | CancelCertificateDeletionDefaultResponse, -): response is CancelCertificateDeletionDefaultResponse; -export function isUnexpected( - response: DeleteCertificate202Response | DeleteCertificateDefaultResponse, -): response is DeleteCertificateDefaultResponse; -export function isUnexpected( - response: GetCertificate200Response | GetCertificateDefaultResponse, -): response is GetCertificateDefaultResponse; export function isUnexpected( response: | JobScheduleExists200Response @@ -542,16 +509,6 @@ export function isUnexpected( | ListJobPreparationAndReleaseTaskStatusDefaultResponse | GetJobTaskCounts200Response | GetJobTaskCountsDefaultResponse - | CreateCertificate201Response - | CreateCertificateDefaultResponse - | ListCertificates200Response - | ListCertificatesDefaultResponse - | CancelCertificateDeletion204Response - | CancelCertificateDeletionDefaultResponse - | DeleteCertificate202Response - | DeleteCertificateDefaultResponse - | GetCertificate200Response - | GetCertificateDefaultResponse | JobScheduleExists200Response | JobScheduleExists404Response | JobScheduleExistsDefaultResponse @@ -668,11 +625,6 @@ export function isUnexpected( | ListJobsFromScheduleDefaultResponse | ListJobPreparationAndReleaseTaskStatusDefaultResponse | GetJobTaskCountsDefaultResponse - | CreateCertificateDefaultResponse - | ListCertificatesDefaultResponse - | CancelCertificateDeletionDefaultResponse - | DeleteCertificateDefaultResponse - | GetCertificateDefaultResponse | JobScheduleExistsDefaultResponse | DeleteJobScheduleDefaultResponse | GetJobScheduleDefaultResponse diff --git a/sdk/batch/batch-rest/src/models.ts b/sdk/batch/batch-rest/src/models.ts index c0112cc0168d..96d04e50417f 100644 --- a/sdk/batch/batch-rest/src/models.ts +++ b/sdk/batch/batch-rest/src/models.ts @@ -13,8 +13,6 @@ export interface BatchPoolCreateOptions { virtualMachineConfiguration?: VirtualMachineConfiguration; /** 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). */ resizeTimeout?: string; - /** The user-specified tags associated with the pool. The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - resourceTags?: Record; /** 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. */ targetDedicatedNodes?: number; /** The desired number of Spot/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. */ @@ -31,13 +29,6 @@ export interface BatchPoolCreateOptions { networkConfiguration?: NetworkConfiguration; /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). 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. */ applicationPackageReferences?: Array; /** The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256. */ @@ -50,12 +41,6 @@ export interface BatchPoolCreateOptions { metadata?: Array; /** Mount storage using specified file system for the entire lifetime of the pool. Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system. */ mountConfiguration?: Array; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicy; } @@ -145,6 +130,8 @@ export interface DataDisk { caching?: CachingType; /** The initial disk size in gigabytes. */ diskSizeGB: number; + /** The managed disk parameters. */ + managedDisk?: ManagedDisk; /** * The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". * @@ -153,6 +140,36 @@ export interface DataDisk { storageAccountType?: StorageAccountType; } +/** The managed disk parameters. */ +export interface ManagedDisk { + /** Specifies the customer managed disk encryption set resource id for the managed disk. It can be set only in UserSubscription mode. */ + diskEncryptionSet?: DiskEncryptionSetParameters; + /** + * The storage account type for managed disk. + * + * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" + */ + storageAccountType?: StorageAccountType; + /** Specifies the security profile settings for the managed disk. */ + securityProfile?: BatchVmDiskSecurityProfile; +} + +/** The ARM resource id of the disk encryption set. */ +export interface DiskEncryptionSetParameters { + /** The ARM resource id of the disk encryption set. The resource must be in the same subscription as the Batch account. */ + id?: string; +} + +/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ +export interface BatchVmDiskSecurityProfile { + /** + * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. + * + * Possible values: "DiskWithVMGuestState", "NonPersistedTPM", "VMGuestStateOnly" + */ + securityEncryptionType?: SecurityEncryptionTypes; +} + /** The configuration for container-enabled Pools. */ export interface BatchContainerConfiguration { /** @@ -194,10 +211,28 @@ export interface BatchNodeIdentityReference { * Azure Compute Gallery Image. */ export interface DiskEncryptionConfiguration { + /** The Customer Managed Key reference to encrypt the OS Disk. Customer Managed Key will encrypt OS Disk by EncryptionAtRest, and by default we will encrypt the data disk as well. It can be used only when the pool is configured with an identity and OsDisk is set as one of the targets of DiskEncryption. */ + customerManagedKey?: DiskCustomerManagedKey; /** The list of disk targets Batch Service will encrypt on the compute node. The list of disk targets Batch Service will encrypt on the compute node. */ targets?: DiskEncryptionTarget[]; } +/** The Customer Managed Key reference to encrypt the Disk. */ +export interface DiskCustomerManagedKey { + /** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the KeyVault. */ + identityReference?: BatchPoolIdentityReference; + /** Fully versioned Key Url pointing to a key in KeyVault. Version segment of the Url is required regardless of rotationToLatestKeyVersionEnabled value. */ + keyUrl?: string; + /** Set this flag to true to enable auto-updating of the Disk Encryption to the latest key version. Default is false. */ + rotationToLatestKeyVersionEnabled?: boolean; +} + +/** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the key vault. */ +export interface BatchPoolIdentityReference { + /** The ARM resource id of the user assigned identity. This reference must be included in the pool identities. */ + resourceId?: string; +} + /** * For regional placement, nodes in the pool will be allocated in the same region. * For zonal placement, nodes in the pool will be spread across different zones @@ -265,32 +300,12 @@ export interface BatchDiffDiskSettings { placement?: DiffDiskPlacement; } -/** The managed disk parameters. */ -export interface ManagedDisk { - /** - * The storage account type for managed disk. - * - * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" - */ - storageAccountType?: StorageAccountType; - /** Specifies the security profile settings for the managed disk. */ - securityProfile?: BatchVmDiskSecurityProfile; -} - -/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ -export interface BatchVmDiskSecurityProfile { - /** - * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. - * - * Possible values: "NonPersistedTPM", "VMGuestStateOnly" - */ - securityEncryptionType?: SecurityEncryptionTypes; -} - /** Specifies the security profile settings for the virtual machine or virtual machine scale set. */ export interface SecurityProfile { /** This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. For more information on encryption at host requirements, please refer to https://learn.microsoft.com/azure/virtual-machines/disk-encryption#supported-vm-sizes. */ encryptionAtHost?: boolean; + /** Specifies ProxyAgent settings while creating the virtual machine. */ + proxyAgentSettings?: ProxyAgentSettings; /** * Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. * @@ -301,6 +316,28 @@ export interface SecurityProfile { uefiSettings?: BatchUefiSettings; } +/** Specifies ProxyAgent settings while creating the virtual machine. */ +export interface ProxyAgentSettings { + /** Specifies whether Metadata Security Protocol feature should be enabled on the virtual machine or virtual machine scale set. Default is False. */ + enabled?: boolean; + /** Settings for the IMDS endpoint. */ + imds?: HostEndpointSettings; + /** Settings for the WireServer endpoint. */ + wireServer?: HostEndpointSettings; +} + +/** Specifies particular host endpoint settings. */ +export interface HostEndpointSettings { + /** Specifies the reference to the InVMAccessControlProfileVersion resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}. */ + inVMAccessControlProfileReferenceId?: string; + /** + * Specifies the access control policy execution mode. + * + * Possible values: "Audit", "Enforce" + */ + mode?: HostEndpointSettingsModeTypes; +} + /** Specifies the security settings like secure boot and vTPM used while creating the virtual machine. */ export interface BatchUefiSettings { /** Specifies whether secure boot should be enabled on the virtual machine. */ @@ -389,8 +426,20 @@ export interface BatchPublicIpAddressConfiguration { * Possible values: "batchmanaged", "usermanaged", "nopublicipaddresses" */ provision?: IpAddressProvisioningType; + /** The IP families used to specify IP versions available to the pool. IP families are used to determine single-stack or dual-stack pools. For single-stack, the expected value is IPv4. For dual-stack, the expected values are IPv4 and IPv6. */ + ipFamilies?: IPFamily[]; /** 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 - 100 dedicated nodes or 100 Spot/Low-priority nodes can be allocated for each public IP. For example, a pool needing 250 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}. */ ipAddressIds?: string[]; + /** A list of IP tags associated with the public IP addresses of the Pool. IP tags are used to categorize and filter public IP addresses for billing and management purposes. */ + ipTags?: Array; +} + +/** Contains the IP tag associated with the public IP address. */ +export interface IPTag { + /** The IP Tag type. Example: FirstPartyUsage. */ + ipTagType?: string; + /** The value of the IP tag associated with the public IP. Example: SQL. */ + tag?: string; } /** @@ -492,7 +541,7 @@ export interface UserIdentity { /** Specifies the options for the auto user that runs an Azure Batch Task. */ export interface AutoUserSpecification { /** - * 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. + * 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. * * Possible values: "task", "pool" */ @@ -505,24 +554,6 @@ export interface AutoUserSpecification { elevationLevel?: ElevationLevel; } -/** A reference to a Certificate to be installed on Compute Nodes in a Pool. Warning: This object is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. */ -export interface BatchCertificateReference { - /** The thumbprint of the Certificate. */ - thumbprint: string; - /** The algorithm with which the thumbprint is associated. This must be sha1. */ - thumbprintAlgorithm: string; - /** - * The location of the Certificate store on the Compute Node into which to install the Certificate. The default value is currentuser. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). 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. - * - * Possible values: "currentuser", "localmachine" - */ - storeLocation?: BatchCertificateStoreLocation; - /** The name of the Certificate store on the Compute Node into which to install the Certificate. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My. */ - storeName?: string; - /** Which user Accounts on the Compute Node should have access to the private data of the Certificate. You can specify more than one visibility in this collection. The default is all Accounts. */ - visibility?: BatchCertificateVisibility[]; -} - /** A reference to an Package to be deployed to Compute Nodes. */ export interface BatchApplicationPackageReference { /** The ID of the application to deploy. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). */ @@ -533,6 +564,12 @@ export interface BatchApplicationPackageReference { /** Specifies how Tasks should be distributed across Compute Nodes. */ export interface BatchTaskSchedulingPolicy { + /** + * The order for scheduling tasks from different jobs with the same priority. If not specified, the default is none. + * + * Possible values: "none", "creationtime" + */ + jobDefaultOrder?: BatchJobDefaultOrder; /** * How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread. * @@ -723,35 +760,18 @@ export interface BatchPoolUpdateOptions { enableInterNodeCommunication?: boolean; /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** 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. */ applicationPackageReferences?: Array; /** 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. */ metadata?: Array; /** The virtual machine configuration for the Pool. This property must be specified.

This field can be updated only when the pool is empty. */ virtualMachineConfiguration?: VirtualMachineConfiguration; - /** - * The desired node communication mode for the pool. If this element is present, it replaces the existing targetNodeCommunicationMode configured on the Pool. If omitted, any existing metadata is left unchanged. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; /** The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.

This field can be updated only when the pool is empty. */ taskSlotsPerNode?: number; /** How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread.

This field can be updated only when the pool is empty. */ taskSchedulingPolicy?: BatchTaskSchedulingPolicy; /** The network configuration for the Pool. This field can be updated only when the pool is empty. */ networkConfiguration?: NetworkConfiguration; - /** The user-specified tags associated with the pool. The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'.

This field can be updated only when the pool is empty. */ - resourceTags?: Record; /** The list of user Accounts to be created on each Compute Node in the Pool. This field can be updated only when the pool is empty. */ userAccounts?: Array; /** Mount storage using specified file system for the entire lifetime of the pool. Mount the storage using Azure fileshare, NFS, CIFS or Blobfuse based file system.

This field can be updated only when the pool is empty. */ @@ -794,25 +814,10 @@ export interface BatchPoolResizeOptions { export interface BatchPoolReplaceOptions { /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences: Array; /** 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. */ applicationPackageReferences: Array; /** 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. */ metadata: Array; - /** - * The desired node communication mode for the pool. This setting replaces any existing targetNodeCommunication setting on the Pool. If omitted, the existing setting is default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; } /** Parameters for removing nodes from an Azure Batch Pool. */ @@ -833,9 +838,9 @@ export interface BatchNodeRemoveOptions { export interface BatchJob { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. */ constraints?: BatchJobConstraints; @@ -1121,8 +1126,6 @@ export interface BatchPoolSpecification { taskSchedulingPolicy?: BatchTaskSchedulingPolicy; /** 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). */ resizeTimeout?: string; - /** The user-specified tags associated with the pool.The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - resourceTags?: string; /** 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. */ targetDedicatedNodes?: number; /** The desired number of Spot/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. */ @@ -1139,12 +1142,6 @@ export interface BatchPoolSpecification { networkConfiguration?: NetworkConfiguration; /** 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. */ startTask?: BatchStartTask; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. - * Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). 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. */ applicationPackageReferences?: Array; /** The list of user Accounts to be created on each Compute Node in the Pool. */ @@ -1153,17 +1150,11 @@ export interface BatchPoolSpecification { metadata?: Array; /** A list of file systems to mount on each node in the pool. This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. */ mountConfiguration?: Array; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationMode; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicy; } -/** The network configuration for the Job. */ +/** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ export interface BatchJobNetworkConfiguration { /** 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. 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://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. */ subnetId: string; @@ -1237,9 +1228,9 @@ export interface BatchJobStatistics { export interface BatchJobUpdateOptions { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. If omitted, the existing execution constraints are left unchanged. */ constraints?: BatchJobConstraints; @@ -1253,7 +1244,7 @@ export interface BatchJobUpdateOptions { onAllTasksComplete?: BatchAllTasksCompleteMode; /** A list of name-value pairs associated with the Job as metadata. If omitted, the existing Job metadata is left unchanged. */ metadata?: Array; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfiguration; } @@ -1283,9 +1274,9 @@ export interface BatchJobCreateOptions { usesTaskDependencies?: boolean; /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. */ constraints?: BatchJobConstraints; @@ -1311,7 +1302,7 @@ export interface BatchJobCreateOptions { * Possible values: "noaction", "performexitoptionsjobaction" */ onTaskFailure?: BatchTaskFailureMode; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfiguration; /** 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. */ metadata?: Array; @@ -1343,37 +1334,6 @@ export interface BatchTaskFailureInfo { details?: Array; } -/** - * A Certificate that can be installed on Compute Nodes and can be used to - * authenticate operations on the machine. - */ -export interface BatchCertificate { - /** 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). */ - thumbprint: string; - /** The algorithm used to derive the thumbprint. This must be sha1. */ - thumbprintAlgorithm: string; - /** The base64-encoded contents of the Certificate. The maximum size is 10KB. */ - data: string; - /** - * The format of the Certificate data. - * - * Possible values: "pfx", "cer" - */ - certificateFormat?: BatchCertificateFormat; - /** The password to access the Certificate's private key. This must be omitted if the Certificate format is cer. */ - password?: string; -} - -/** An error encountered by the Batch service when deleting a Certificate. */ -export interface BatchCertificateDeleteError { - /** An identifier for the Certificate deletion error. Codes are invariant and are intended to be consumed programmatically. */ - code?: string; - /** A message describing the Certificate deletion error, intended to be suitable for display in a user interface. */ - message?: string; - /** A list of additional error details related to the Certificate deletion error. This list includes details such as the active Pools and Compute Nodes referencing this Certificate. However, if a large number of resources reference the Certificate, the list contains only about the first hundred. */ - values?: Array; -} - /** * A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a * specification used to create each Job. @@ -1406,9 +1366,9 @@ export interface BatchJobScheduleConfiguration { export interface BatchJobSpecification { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** 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. */ displayName?: string; @@ -1426,7 +1386,7 @@ export interface BatchJobSpecification { * Possible values: "noaction", "performexitoptionsjobaction" */ onTaskFailure?: BatchTaskFailureMode; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfiguration; /** The execution constraints for Jobs created under this schedule. */ constraints?: BatchJobConstraints; @@ -1830,6 +1790,8 @@ export interface UploadBatchServiceLogsOptions { export type CachingType = string; /** Alias for StorageAccountType */ export type StorageAccountType = string; +/** Alias for SecurityEncryptionTypes */ +export type SecurityEncryptionTypes = string; /** Alias for ContainerType */ export type ContainerType = string; /** Alias for DiskEncryptionTarget */ @@ -1838,8 +1800,8 @@ export type DiskEncryptionTarget = string; export type BatchNodePlacementPolicyType = string; /** Alias for DiffDiskPlacement */ export type DiffDiskPlacement = string; -/** Alias for SecurityEncryptionTypes */ -export type SecurityEncryptionTypes = string; +/** Alias for HostEndpointSettingsModeTypes */ +export type HostEndpointSettingsModeTypes = string; /** Alias for SecurityTypes */ export type SecurityTypes = string; /** Alias for DynamicVNetAssignmentScope */ @@ -1850,6 +1812,8 @@ export type InboundEndpointProtocol = string; export type NetworkSecurityGroupRuleAccess = string; /** Alias for IpAddressProvisioningType */ export type IpAddressProvisioningType = string; +/** Alias for IPFamily */ +export type IPFamily = string; /** Alias for ContainerWorkingDirectory */ export type ContainerWorkingDirectory = string; /** Alias for ContainerHostDataPath */ @@ -1858,16 +1822,12 @@ export type ContainerHostDataPath = string; export type AutoUserScope = string; /** Alias for ElevationLevel */ export type ElevationLevel = string; -/** Alias for BatchCertificateStoreLocation */ -export type BatchCertificateStoreLocation = string; -/** Alias for BatchCertificateVisibility */ -export type BatchCertificateVisibility = string; +/** Alias for BatchJobDefaultOrder */ +export type BatchJobDefaultOrder = string; /** Alias for BatchNodeFillType */ export type BatchNodeFillType = string; /** Alias for LoginMode */ export type LoginMode = string; -/** Alias for BatchNodeCommunicationMode */ -export type BatchNodeCommunicationMode = string; /** Alias for UpgradeMode */ export type UpgradeMode = string; /** Alias for BatchNodeDeallocationOption */ @@ -1890,10 +1850,6 @@ export type BatchErrorSourceCategory = string; export type DisableBatchJobOption = string; /** Alias for BatchTaskExecutionResult */ export type BatchTaskExecutionResult = string; -/** Alias for BatchCertificateState */ -export type BatchCertificateState = string; -/** Alias for BatchCertificateFormat */ -export type BatchCertificateFormat = string; /** Alias for BatchJobScheduleState */ export type BatchJobScheduleState = string; /** Alias for BatchJobActionKind */ diff --git a/sdk/batch/batch-rest/src/outputModels.ts b/sdk/batch/batch-rest/src/outputModels.ts index 8238f4f294be..28f96475ba1a 100644 --- a/sdk/batch/batch-rest/src/outputModels.ts +++ b/sdk/batch/batch-rest/src/outputModels.ts @@ -154,6 +154,8 @@ export interface DataDiskOutput { caching?: CachingTypeOutput; /** The initial disk size in gigabytes. */ diskSizeGB: number; + /** The managed disk parameters. */ + managedDisk?: ManagedDiskOutput; /** * The storage Account type to be used for the data disk. If omitted, the default is "standard_lrs". * @@ -162,6 +164,36 @@ export interface DataDiskOutput { storageAccountType?: StorageAccountTypeOutput; } +/** The managed disk parameters. */ +export interface ManagedDiskOutput { + /** Specifies the customer managed disk encryption set resource id for the managed disk. It can be set only in UserSubscription mode. */ + diskEncryptionSet?: DiskEncryptionSetParametersOutput; + /** + * The storage account type for managed disk. + * + * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" + */ + storageAccountType?: StorageAccountTypeOutput; + /** Specifies the security profile settings for the managed disk. */ + securityProfile?: BatchVmDiskSecurityProfileOutput; +} + +/** The ARM resource id of the disk encryption set. */ +export interface DiskEncryptionSetParametersOutput { + /** The ARM resource id of the disk encryption set. The resource must be in the same subscription as the Batch account. */ + id?: string; +} + +/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ +export interface BatchVmDiskSecurityProfileOutput { + /** + * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. + * + * Possible values: "DiskWithVMGuestState", "NonPersistedTPM", "VMGuestStateOnly" + */ + securityEncryptionType?: SecurityEncryptionTypesOutput; +} + /** The configuration for container-enabled Pools. */ export interface BatchContainerConfigurationOutput { /** @@ -203,10 +235,28 @@ export interface BatchNodeIdentityReferenceOutput { * Azure Compute Gallery Image. */ export interface DiskEncryptionConfigurationOutput { + /** The Customer Managed Key reference to encrypt the OS Disk. Customer Managed Key will encrypt OS Disk by EncryptionAtRest, and by default we will encrypt the data disk as well. It can be used only when the pool is configured with an identity and OsDisk is set as one of the targets of DiskEncryption. */ + customerManagedKey?: DiskCustomerManagedKeyOutput; /** The list of disk targets Batch Service will encrypt on the compute node. The list of disk targets Batch Service will encrypt on the compute node. */ targets?: DiskEncryptionTargetOutput[]; } +/** The Customer Managed Key reference to encrypt the Disk. */ +export interface DiskCustomerManagedKeyOutput { + /** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the KeyVault. */ + identityReference?: BatchPoolIdentityReferenceOutput; + /** Fully versioned Key Url pointing to a key in KeyVault. Version segment of the Url is required regardless of rotationToLatestKeyVersionEnabled value. */ + keyUrl?: string; + /** Set this flag to true to enable auto-updating of the Disk Encryption to the latest key version. Default is false. */ + rotationToLatestKeyVersionEnabled?: boolean; +} + +/** The reference of one of the pool identities to encrypt Disk. This identity will be used to access the key vault. */ +export interface BatchPoolIdentityReferenceOutput { + /** The ARM resource id of the user assigned identity. This reference must be included in the pool identities. */ + resourceId?: string; +} + /** * For regional placement, nodes in the pool will be allocated in the same region. * For zonal placement, nodes in the pool will be spread across different zones @@ -274,32 +324,12 @@ export interface BatchDiffDiskSettingsOutput { placement?: DiffDiskPlacementOutput; } -/** The managed disk parameters. */ -export interface ManagedDiskOutput { - /** - * The storage account type for managed disk. - * - * Possible values: "standard_lrs", "premium_lrs", "standardssd_lrs" - */ - storageAccountType?: StorageAccountTypeOutput; - /** Specifies the security profile settings for the managed disk. */ - securityProfile?: BatchVmDiskSecurityProfileOutput; -} - -/** Specifies the security profile settings for the managed disk. **Note**: It can only be set for Confidential VMs and required when using Confidential VMs. */ -export interface BatchVmDiskSecurityProfileOutput { - /** - * Specifies the EncryptionType of the managed disk. It is set to VMGuestStateOnly for encryption of just the VMGuestState blob, and NonPersistedTPM for not persisting firmware state in the VMGuestState blob. **Note**: It can be set for only Confidential VMs and is required when using Confidential VMs. - * - * Possible values: "NonPersistedTPM", "VMGuestStateOnly" - */ - securityEncryptionType?: SecurityEncryptionTypesOutput; -} - /** Specifies the security profile settings for the virtual machine or virtual machine scale set. */ export interface SecurityProfileOutput { /** This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. For more information on encryption at host requirements, please refer to https://learn.microsoft.com/azure/virtual-machines/disk-encryption#supported-vm-sizes. */ encryptionAtHost?: boolean; + /** Specifies ProxyAgent settings while creating the virtual machine. */ + proxyAgentSettings?: ProxyAgentSettingsOutput; /** * Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. * @@ -310,6 +340,28 @@ export interface SecurityProfileOutput { uefiSettings?: BatchUefiSettingsOutput; } +/** Specifies ProxyAgent settings while creating the virtual machine. */ +export interface ProxyAgentSettingsOutput { + /** Specifies whether Metadata Security Protocol feature should be enabled on the virtual machine or virtual machine scale set. Default is False. */ + enabled?: boolean; + /** Settings for the IMDS endpoint. */ + imds?: HostEndpointSettingsOutput; + /** Settings for the WireServer endpoint. */ + wireServer?: HostEndpointSettingsOutput; +} + +/** Specifies particular host endpoint settings. */ +export interface HostEndpointSettingsOutput { + /** Specifies the reference to the InVMAccessControlProfileVersion resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/inVMAccessControlProfiles/{profile}/versions/{version}. */ + inVMAccessControlProfileReferenceId?: string; + /** + * Specifies the access control policy execution mode. + * + * Possible values: "Audit", "Enforce" + */ + mode?: HostEndpointSettingsModeTypesOutput; +} + /** Specifies the security settings like secure boot and vTPM used while creating the virtual machine. */ export interface BatchUefiSettingsOutput { /** Specifies whether secure boot should be enabled on the virtual machine. */ @@ -398,8 +450,20 @@ export interface BatchPublicIpAddressConfigurationOutput { * Possible values: "batchmanaged", "usermanaged", "nopublicipaddresses" */ provision?: IpAddressProvisioningTypeOutput; + /** The IP families used to specify IP versions available to the pool. IP families are used to determine single-stack or dual-stack pools. For single-stack, the expected value is IPv4. For dual-stack, the expected values are IPv4 and IPv6. */ + ipFamilies?: IPFamilyOutput[]; /** 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 - 100 dedicated nodes or 100 Spot/Low-priority nodes can be allocated for each public IP. For example, a pool needing 250 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}. */ ipAddressIds?: string[]; + /** A list of IP tags associated with the public IP addresses of the Pool. IP tags are used to categorize and filter public IP addresses for billing and management purposes. */ + ipTags?: Array; +} + +/** Contains the IP tag associated with the public IP address. */ +export interface IPTagOutput { + /** The IP Tag type. Example: FirstPartyUsage. */ + ipTagType?: string; + /** The value of the IP tag associated with the public IP. Example: SQL. */ + tag?: string; } /** @@ -501,7 +565,7 @@ export interface UserIdentityOutput { /** Specifies the options for the auto user that runs an Azure Batch Task. */ export interface AutoUserSpecificationOutput { /** - * 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. + * 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. * * Possible values: "task", "pool" */ @@ -514,24 +578,6 @@ export interface AutoUserSpecificationOutput { elevationLevel?: ElevationLevelOutput; } -/** A reference to a Certificate to be installed on Compute Nodes in a Pool. Warning: This object is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. */ -export interface BatchCertificateReferenceOutput { - /** The thumbprint of the Certificate. */ - thumbprint: string; - /** The algorithm with which the thumbprint is associated. This must be sha1. */ - thumbprintAlgorithm: string; - /** - * The location of the Certificate store on the Compute Node into which to install the Certificate. The default value is currentuser. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). 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. - * - * Possible values: "currentuser", "localmachine" - */ - storeLocation?: BatchCertificateStoreLocationOutput; - /** The name of the Certificate store on the Compute Node into which to install the Certificate. This property is applicable only for Pools configured with Windows Compute Nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows Image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My. */ - storeName?: string; - /** Which user Accounts on the Compute Node should have access to the private data of the Certificate. You can specify more than one visibility in this collection. The default is all Accounts. */ - visibility?: BatchCertificateVisibilityOutput[]; -} - /** A reference to an Package to be deployed to Compute Nodes. */ export interface BatchApplicationPackageReferenceOutput { /** The ID of the application to deploy. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). */ @@ -542,6 +588,12 @@ export interface BatchApplicationPackageReferenceOutput { /** Specifies how Tasks should be distributed across Compute Nodes. */ export interface BatchTaskSchedulingPolicyOutput { + /** + * The order for scheduling tasks from different jobs with the same priority. If not specified, the default is none. + * + * Possible values: "none", "creationtime" + */ + jobDefaultOrder?: BatchJobDefaultOrderOutput; /** * How Tasks are distributed across Compute Nodes in a Pool. If not specified, the default is spread. * @@ -725,25 +777,25 @@ export interface BatchPoolListResultOutput { /** A Pool in the Azure Batch service. */ export interface BatchPoolOutput { /** A string that uniquely identifies the Pool within the Account. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case). */ - readonly id?: string; - /** 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. */ + readonly id: string; + /** The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024. */ readonly displayName?: string; /** The URL of the Pool. */ - readonly url?: string; + readonly url: string; /** The ETag of the Pool. This is an opaque string. You can use it to detect whether the Pool has changed between requests. In particular, you can be pass the ETag when updating a Pool to specify that your changes should take effect only if nobody else has modified the Pool in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Pool. This is the last time at which the Pool level data, such as the targetDedicatedNodes or enableAutoscale settings, changed. It does not factor in node-level changes such as a Compute Node changing state. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Pool. */ - readonly creationTime?: string; + readonly creationTime: string; /** * The current state of the Pool. * * Possible values: "active", "deleting" */ - readonly state?: BatchPoolStateOutput; + readonly state: BatchPoolStateOutput; /** The time at which the Pool entered its current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * Whether the Pool is resizing. * @@ -752,20 +804,18 @@ export interface BatchPoolOutput { readonly allocationState?: AllocationStateOutput; /** The time at which the Pool entered its current allocation state. */ readonly allocationStateTransitionTime?: string; - /** The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available VM sizes, see Sizes for Virtual Machines in Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). */ - readonly vmSize?: string; + /** The size of virtual machines in the Pool. All virtual machines in a Pool are the same size. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes). */ + readonly vmSize: string; /** The virtual machine configuration for the Pool. This property must be specified. */ readonly virtualMachineConfiguration?: VirtualMachineConfigurationOutput; /** The timeout for allocation of Compute Nodes to the Pool. This is the timeout for the most recent resize operation. (The initial sizing when the Pool is created counts as a resize.) The default value is 15 minutes. */ readonly resizeTimeout?: string; /** A list of errors encountered while performing the last resize on the Pool. This property is set only if one or more errors occurred during the last Pool resize, and only when the Pool allocationState is Steady. */ readonly resizeErrors?: Array; - /** The user-specified tags associated with the pool. The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - readonly resourceTags?: Record; /** The number of dedicated Compute Nodes currently in the Pool. */ - readonly currentDedicatedNodes?: number; + readonly currentDedicatedNodes: number; /** The number of Spot/Low-priority Compute Nodes currently in the Pool. Spot/Low-priority Compute Nodes which have been preempted are included in this count. */ - readonly currentLowPriorityNodes?: number; + readonly currentLowPriorityNodes: number; /** The desired number of dedicated Compute Nodes in the Pool. */ readonly targetDedicatedNodes?: number; /** The desired number of Spot/Low-priority Compute Nodes in the Pool. */ @@ -778,19 +828,12 @@ export interface BatchPoolOutput { readonly autoScaleEvaluationInterval?: string; /** The results and errors from the last execution of the autoscale formula. This property is set only if the Pool automatically scales, i.e. enableAutoScale is true. */ readonly autoScaleRun?: AutoScaleRunOutput; - /** Whether the Pool permits direct communication between Compute Nodes. This imposes restrictions on which Compute Nodes can be assigned to the Pool. Specifying this value can reduce the chance of the requested number of Compute Nodes to be allocated in the Pool. */ + /** Whether the Pool permits direct communication between Compute Nodes. Enabling inter-node communication limits the maximum size of the Pool due to deployment restrictions on the Compute Nodes of the Pool. This may result in the Pool not reaching its desired size. The default value is false. */ readonly enableInterNodeCommunication?: boolean; /** The network configuration for the Pool. */ readonly networkConfiguration?: NetworkConfigurationOutput; /** A Task specified to run on each Compute Node as it joins the Pool. */ startTask?: BatchStartTaskOutput; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - readonly certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. Changes to Package references affect all new Nodes joining the Pool, but do not affect Compute Nodes that are already in the Pool until they are rebooted or reimaged. There is a maximum of 10 Package references on any given Pool. */ readonly applicationPackageReferences?: Array; /** The number of task slots that can be used to run concurrent tasks on a single compute node in the pool. The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256. */ @@ -803,22 +846,10 @@ export interface BatchPoolOutput { readonly metadata?: Array; /** Utilization and resource usage statistics for the entire lifetime of the Pool. This property is populated only if the BatchPool was retrieved with an expand clause including the 'stats' attribute; otherwise it is null. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes. */ readonly stats?: BatchPoolStatisticsOutput; - /** A list of file systems to mount on each node in the pool. This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. */ + /** 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. */ readonly mountConfiguration?: Array; /** The identity of the Batch pool, if configured. The list of user identities associated with the Batch pool. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. */ readonly identity?: BatchPoolIdentityOutput; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationModeOutput; - /** - * The current state of the pool communication mode. - * - * Possible values: "default", "classic", "simplified" - */ - readonly currentNodeCommunicationMode?: BatchNodeCommunicationModeOutput; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicyOutput; } @@ -1031,27 +1062,27 @@ export interface BatchNodeCountsOutput { /** An Azure Batch Job. */ export interface BatchJobOutput { /** A string that uniquely identifies the Job within the Account. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case). */ - readonly id?: string; + readonly id: string; /** The display name for the Job. */ readonly displayName?: string; /** Whether Tasks in the Job can define dependencies on each other. The default is false. */ readonly usesTaskDependencies?: boolean; /** The URL of the Job. */ - readonly url?: string; + readonly url: string; /** The ETag of the Job. This is an opaque string. You can use it to detect whether the Job has changed between requests. In particular, you can be pass the ETag when updating a Job to specify that your changes should take effect only if nobody else has modified the Job in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Job. This is the last time at which the Job level data, such as the Job state or priority, changed. It does not factor in task-level changes such as adding new Tasks or Tasks changing state. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Job. */ - readonly creationTime?: string; + readonly creationTime: string; /** * The current state of the Job. * * Possible values: "active", "disabling", "disabled", "enabling", "terminating", "completed", "deleting" */ - readonly state?: BatchJobStateOutput; + readonly state: BatchJobStateOutput; /** The time at which the Job entered its current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * The previous state of the Job. This property is not set if the Job is in its initial Active state. * @@ -1062,9 +1093,9 @@ export interface BatchJobOutput { readonly previousStateTransitionTime?: string; /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** The execution constraints for the Job. */ constraints?: BatchJobConstraintsOutput; @@ -1090,7 +1121,7 @@ export interface BatchJobOutput { * Possible values: "noaction", "performexitoptionsjobaction" */ readonly onTaskFailure?: BatchTaskFailureModeOutput; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ readonly networkConfiguration?: BatchJobNetworkConfigurationOutput; /** 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. */ metadata?: Array; @@ -1370,8 +1401,6 @@ export interface BatchPoolSpecificationOutput { taskSchedulingPolicy?: BatchTaskSchedulingPolicyOutput; /** 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). */ resizeTimeout?: string; - /** The user-specified tags associated with the pool.The user-defined tags to be associated with the Azure Batch Pool. When specified, these tags are propagated to the backing Azure resources associated with the pool. This property can only be specified when the Batch account was created with the poolAllocationMode property set to 'UserSubscription'. */ - resourceTags?: string; /** 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. */ targetDedicatedNodes?: number; /** The desired number of Spot/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. */ @@ -1388,12 +1417,6 @@ export interface BatchPoolSpecificationOutput { networkConfiguration?: NetworkConfigurationOutput; /** 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. */ startTask?: BatchStartTaskOutput; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. - * Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; /** The list of Packages to be installed on each Compute Node in the Pool. When creating a pool, the package's application ID must be fully qualified (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}). 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. */ applicationPackageReferences?: Array; /** The list of user Accounts to be created on each Compute Node in the Pool. */ @@ -1402,17 +1425,11 @@ export interface BatchPoolSpecificationOutput { metadata?: Array; /** A list of file systems to mount on each node in the pool. This supports Azure Files, NFS, CIFS/SMB, and Blobfuse. */ mountConfiguration?: Array; - /** - * The desired node communication mode for the pool. If omitted, the default value is Default. - * - * Possible values: "default", "classic", "simplified" - */ - targetNodeCommunicationMode?: BatchNodeCommunicationModeOutput; /** The upgrade policy for the Pool. Describes an upgrade policy - automatic, manual, or rolling. */ upgradePolicy?: UpgradePolicyOutput; } -/** The network configuration for the Job. */ +/** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ export interface BatchJobNetworkConfigurationOutput { /** 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. 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://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. */ subnetId: string; @@ -1647,92 +1664,31 @@ export interface BatchTaskSlotCountsOutput { failed: number; } -/** - * A Certificate that can be installed on Compute Nodes and can be used to - * authenticate operations on the machine. - */ -export interface BatchCertificateOutput { - /** 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). */ - thumbprint: string; - /** The algorithm used to derive the thumbprint. This must be sha1. */ - thumbprintAlgorithm: string; - /** The URL of the Certificate. */ - readonly url?: string; - /** - * The state of the Certificate. - * - * Possible values: "active", "deleting", "deletefailed" - */ - readonly state?: BatchCertificateStateOutput; - /** The time at which the Certificate entered its current state. */ - readonly stateTransitionTime?: string; - /** - * The previous state of the Certificate. This property is not set if the Certificate is in its initial active state. - * - * Possible values: "active", "deleting", "deletefailed" - */ - readonly previousState?: BatchCertificateStateOutput; - /** The time at which the Certificate entered its previous state. This property is not set if the Certificate is in its initial Active state. */ - readonly previousStateTransitionTime?: string; - /** The public part of the Certificate as a base-64 encoded .cer file. */ - readonly publicData?: string; - /** The error that occurred on the last attempt to delete this Certificate. This property is set only if the Certificate is in the DeleteFailed state. */ - readonly deleteCertificateError?: BatchCertificateDeleteErrorOutput; - /** The base64-encoded contents of the Certificate. The maximum size is 10KB. */ - data: string; - /** - * The format of the Certificate data. - * - * Possible values: "pfx", "cer" - */ - certificateFormat?: BatchCertificateFormatOutput; - /** The password to access the Certificate's private key. This must be omitted if the Certificate format is cer. */ - password?: string; -} - -/** An error encountered by the Batch service when deleting a Certificate. */ -export interface BatchCertificateDeleteErrorOutput { - /** An identifier for the Certificate deletion error. Codes are invariant and are intended to be consumed programmatically. */ - code?: string; - /** A message describing the Certificate deletion error, intended to be suitable for display in a user interface. */ - message?: string; - /** A list of additional error details related to the Certificate deletion error. This list includes details such as the active Pools and Compute Nodes referencing this Certificate. However, if a large number of resources reference the Certificate, the list contains only about the first hundred. */ - values?: Array; -} - -/** The result of listing the Certificates in the Account. */ -export interface BatchCertificateListResultOutput { - /** The list of Certificates. */ - value?: Array; - /** The URL to get the next set of results. */ - "odata.nextLink"?: string; -} - /** * A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a * specification used to create each Job. */ export interface BatchJobScheduleOutput { /** A string that uniquely identifies the schedule within the Account. */ - readonly id?: string; + readonly id: string; /** The display name for the schedule. */ readonly displayName?: string; /** The URL of the Job Schedule. */ - readonly url?: string; + readonly url: string; /** The ETag of the Job Schedule. This is an opaque string. You can use it to detect whether the Job Schedule has changed between requests. In particular, you can be pass the ETag with an Update Job Schedule request to specify that your changes should take effect only if nobody else has modified the schedule in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Job Schedule. This is the last time at which the schedule level data, such as the Job specification or recurrence information, changed. It does not factor in job-level changes such as new Jobs being created or Jobs changing state. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Job Schedule. */ - readonly creationTime?: string; + readonly creationTime: string; /** * The current state of the Job Schedule. * * Possible values: "active", "completed", "disabled", "terminating", "deleting" */ - readonly state?: BatchJobScheduleStateOutput; + readonly state: BatchJobScheduleStateOutput; /** The time at which the Job Schedule entered the current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * The previous state of the Job Schedule. This property is not present if the Job Schedule is in its initial active state. * @@ -1746,7 +1702,7 @@ export interface BatchJobScheduleOutput { /** The details of the Jobs to be created on this schedule. */ jobSpecification: BatchJobSpecificationOutput; /** Information about Jobs that have been and will be run under this schedule. */ - readonly executionInfo?: BatchJobScheduleExecutionInfoOutput; + readonly executionInfo: BatchJobScheduleExecutionInfoOutput; /** 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. */ metadata?: Array; /** The lifetime resource usage statistics for the Job Schedule. The statistics may not be immediately available. The Batch service performs periodic roll-up of statistics. The typical delay is about 30 minutes. */ @@ -1772,9 +1728,9 @@ export interface BatchJobScheduleConfigurationOutput { export interface BatchJobSpecificationOutput { /** 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. */ priority?: number; - /** Whether Tasks in this job can be preempted by other high priority jobs. If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ + /** Whether Tasks in this job can be preempted by other high priority jobs. (This property is not available by default. Please contact support for more information) If the value is set to True, other high priority jobs submitted to the system will take precedence and will be able requeue tasks from this job. You can update a job's allowTaskPreemption after it has been created using the update job API. */ allowTaskPreemption?: boolean; - /** The maximum number of tasks that can be executed in parallel for the job. The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ + /** The maximum number of tasks that can be executed in parallel for the job. (This property is not available by default. Please contact support for more information) The value of maxParallelTasks must be -1 or greater than 0 if specified. If not specified, the default value is -1, which means there's no limit to the number of tasks that can be run at once. You can update a job's maxParallelTasks after it has been created using the update job API. */ maxParallelTasks?: number; /** 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. */ displayName?: string; @@ -1792,7 +1748,7 @@ export interface BatchJobSpecificationOutput { * Possible values: "noaction", "performexitoptionsjobaction" */ onTaskFailure?: BatchTaskFailureModeOutput; - /** The network configuration for the Job. */ + /** (This property is not available by default. Please contact support for more information) The network configuration for the Job. */ networkConfiguration?: BatchJobNetworkConfigurationOutput; /** The execution constraints for Jobs created under this schedule. */ constraints?: BatchJobConstraintsOutput; @@ -1993,17 +1949,17 @@ export interface BatchTaskListResultOutput { */ export interface BatchTaskOutput { /** 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. */ - readonly id?: string; + readonly id: string; /** 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. */ readonly displayName?: string; /** The URL of the Task. */ - readonly url?: string; + readonly url: string; /** The ETag of the Task. This is an opaque string. You can use it to detect whether the Task has changed between requests. In particular, you can be pass the ETag when updating a Task to specify that your changes should take effect only if nobody else has modified the Task in the meantime. */ - readonly eTag?: string; + readonly eTag: string; /** The last modified time of the Task. */ - readonly lastModified?: string; + readonly lastModified: string; /** The creation time of the Task. */ - readonly creationTime?: string; + readonly creationTime: string; /** How the Batch service should respond when the Task completes. */ readonly exitConditions?: ExitConditionsOutput; /** @@ -2011,9 +1967,9 @@ export interface BatchTaskOutput { * * Possible values: "active", "preparing", "running", "completed" */ - readonly state?: BatchTaskStateOutput; + readonly state: BatchTaskStateOutput; /** The time at which the Task entered its current state. */ - readonly stateTransitionTime?: string; + readonly stateTransitionTime: string; /** * The previous state of the Task. This property is not set if the Task is in its initial Active state. * @@ -2023,7 +1979,7 @@ export interface BatchTaskOutput { /** The time at which the Task entered its previous state. This property is not set if the Task is in its initial Active state. */ readonly previousStateTransitionTime?: string; /** 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://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). */ - readonly commandLine?: string; + readonly commandLine: string; /** 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. */ readonly containerSettings?: BatchTaskContainerSettingsOutput; /** 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. */ @@ -2240,64 +2196,59 @@ export interface FilePropertiesOutput { /** A Compute Node in the Batch service. */ export interface BatchNodeOutput { /** The ID of the Compute Node. Every Compute Node that is added to a Pool is assigned a unique ID. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the ID is reclaimed and could be reused for new Compute Nodes. */ - id?: string; + readonly id: string; /** The URL of the Compute Node. */ - url?: string; + readonly url: string; /** * The current state of the Compute Node. The Spot/Low-priority Compute Node has been preempted. Tasks which were running on the Compute Node when it was preempted will be rescheduled when another Compute Node becomes available. * * Possible values: "idle", "rebooting", "reimaging", "running", "unusable", "creating", "starting", "waitingforstarttask", "starttaskfailed", "unknown", "leavingpool", "offline", "preempted", "upgradingos", "deallocated", "deallocating" */ - state?: BatchNodeStateOutput; + readonly state: BatchNodeStateOutput; /** * Whether the Compute Node is available for Task scheduling. * * Possible values: "enabled", "disabled" */ - schedulingState?: SchedulingStateOutput; + readonly schedulingState?: SchedulingStateOutput; /** The time at which the Compute Node entered its current state. */ - stateTransitionTime?: string; + readonly stateTransitionTime: string; /** The last time at which the Compute Node was started. This property may not be present if the Compute Node state is unusable. */ - lastBootTime?: string; + readonly lastBootTime: string; /** The time at which this Compute Node was allocated to the Pool. This is the time when the Compute Node was initially allocated and doesn't change once set. It is not updated when the Compute Node is service healed or preempted. */ - allocationTime?: string; + readonly allocationTime: string; /** The IP address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes. */ - ipAddress?: string; + readonly ipAddress: string; + /** The IPv6 address that other Nodes can use to communicate with this Compute Node. Every Compute Node that is added to a Pool is assigned a unique IP address. Whenever a Compute Node is removed from a Pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new Compute Nodes. This property will not be present if the Pool is not configured for IPv6. */ + readonly ipv6Address: string; /** An identifier which can be passed when adding a Task to request that the Task be scheduled on this Compute Node. Note that this is just a soft affinity. If the target Compute Node is busy or unavailable at the time the Task is scheduled, then the Task will be scheduled elsewhere. */ - affinityId?: string; + readonly affinityId: string; /** The size of the virtual machine hosting the Compute Node. For information about available sizes of virtual machines in Pools, see Choose a VM size for Compute Nodes in an Azure Batch Pool (https://learn.microsoft.com/azure/batch/batch-pool-vm-sizes). */ - vmSize?: string; + readonly vmSize: string; /** The total number of Job Tasks completed on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - totalTasksRun?: number; + readonly totalTasksRun: number; /** The total number of currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - runningTasksCount?: number; + readonly runningTasksCount?: number; /** The total number of scheduling slots used by currently running Job Tasks on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - runningTaskSlotsCount?: number; + readonly runningTaskSlotsCount?: number; /** The total number of Job Tasks which completed successfully (with exitCode 0) on the Compute Node. This includes Job Manager Tasks and normal Tasks, but not Job Preparation, Job Release or Start Tasks. */ - totalTasksSucceeded?: number; + readonly totalTasksSucceeded?: number; /** A list of Tasks whose state has recently changed. This property is present only if at least one Task has run on this Compute Node since it was assigned to the Pool. */ - recentTasks?: Array; + readonly recentTasks?: Array; /** The Task specified to run on the Compute Node as it joins the Pool. */ - startTask?: BatchStartTaskOutput; + readonly startTask?: BatchStartTaskOutput; /** Runtime information about the execution of the StartTask on the Compute Node. */ - startTaskInfo?: BatchStartTaskInfoOutput; - /** - * 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. - * Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead. - */ - certificateReferences?: Array; + readonly startTaskInfo?: BatchStartTaskInfoOutput; /** The list of errors that are currently being encountered by the Compute Node. */ - errors?: Array; + readonly errors?: Array; /** Whether this Compute Node is a dedicated Compute Node. If false, the Compute Node is a Spot/Low-priority Compute Node. */ - isDedicated?: boolean; + readonly isDedicated?: boolean; /** The endpoint configuration for the Compute Node. */ - endpointConfiguration?: BatchNodeEndpointConfigurationOutput; + readonly endpointConfiguration?: BatchNodeEndpointConfigurationOutput; /** Information about the Compute Node agent version and the time the Compute Node upgraded to a new version. */ - nodeAgentInfo?: BatchNodeAgentInfoOutput; + readonly nodeAgentInfo: BatchNodeAgentInfoOutput; /** Info about the current state of the virtual machine. */ - virtualMachineInfo?: VirtualMachineInfoOutput; + readonly virtualMachineInfo: VirtualMachineInfoOutput; } /** Information about a Task running on a Compute Node. */ @@ -2407,6 +2358,10 @@ export interface VirtualMachineInfoOutput { /** The remote login settings for a Compute Node. */ export interface BatchNodeRemoteLoginSettingsOutput { + /** The IPv6 address used for remote login to the Compute Node. */ + ipv6RemoteLoginIPAddress?: string; + /** The port used for remote login to the Compute Node. */ + ipv6RemoteLoginPort?: number; /** The IP address used for remote login to the Compute Node. */ remoteLoginIPAddress: string; /** The port used for remote login to the Compute Node. */ @@ -2479,6 +2434,8 @@ export interface BatchNodeVMExtensionListResultOutput { export type CachingTypeOutput = string; /** Alias for StorageAccountTypeOutput */ export type StorageAccountTypeOutput = string; +/** Alias for SecurityEncryptionTypesOutput */ +export type SecurityEncryptionTypesOutput = string; /** Alias for ContainerTypeOutput */ export type ContainerTypeOutput = string; /** Alias for DiskEncryptionTargetOutput */ @@ -2487,8 +2444,8 @@ export type DiskEncryptionTargetOutput = string; export type BatchNodePlacementPolicyTypeOutput = string; /** Alias for DiffDiskPlacementOutput */ export type DiffDiskPlacementOutput = string; -/** Alias for SecurityEncryptionTypesOutput */ -export type SecurityEncryptionTypesOutput = string; +/** Alias for HostEndpointSettingsModeTypesOutput */ +export type HostEndpointSettingsModeTypesOutput = string; /** Alias for SecurityTypesOutput */ export type SecurityTypesOutput = string; /** Alias for DynamicVNetAssignmentScopeOutput */ @@ -2499,6 +2456,8 @@ export type InboundEndpointProtocolOutput = string; export type NetworkSecurityGroupRuleAccessOutput = string; /** Alias for IpAddressProvisioningTypeOutput */ export type IpAddressProvisioningTypeOutput = string; +/** Alias for IPFamilyOutput */ +export type IPFamilyOutput = string; /** Alias for ContainerWorkingDirectoryOutput */ export type ContainerWorkingDirectoryOutput = string; /** Alias for ContainerHostDataPathOutput */ @@ -2507,16 +2466,12 @@ export type ContainerHostDataPathOutput = string; export type AutoUserScopeOutput = string; /** Alias for ElevationLevelOutput */ export type ElevationLevelOutput = string; -/** Alias for BatchCertificateStoreLocationOutput */ -export type BatchCertificateStoreLocationOutput = string; -/** Alias for BatchCertificateVisibilityOutput */ -export type BatchCertificateVisibilityOutput = string; +/** Alias for BatchJobDefaultOrderOutput */ +export type BatchJobDefaultOrderOutput = string; /** Alias for BatchNodeFillTypeOutput */ export type BatchNodeFillTypeOutput = string; /** Alias for LoginModeOutput */ export type LoginModeOutput = string; -/** Alias for BatchNodeCommunicationModeOutput */ -export type BatchNodeCommunicationModeOutput = string; /** Alias for UpgradeModeOutput */ export type UpgradeModeOutput = string; /** Alias for BatchPoolStateOutput */ @@ -2549,10 +2504,6 @@ export type BatchJobPreparationTaskStateOutput = string; export type BatchTaskExecutionResultOutput = string; /** Alias for BatchJobReleaseTaskStateOutput */ export type BatchJobReleaseTaskStateOutput = string; -/** Alias for BatchCertificateStateOutput */ -export type BatchCertificateStateOutput = string; -/** Alias for BatchCertificateFormatOutput */ -export type BatchCertificateFormatOutput = string; /** Alias for BatchJobScheduleStateOutput */ export type BatchJobScheduleStateOutput = string; /** Alias for BatchJobActionKindOutput */ diff --git a/sdk/batch/batch-rest/src/parameters.ts b/sdk/batch/batch-rest/src/parameters.ts index 91b2c845ad3b..558708d7d38d 100644 --- a/sdk/batch/batch-rest/src/parameters.ts +++ b/sdk/batch/batch-rest/src/parameters.ts @@ -16,7 +16,6 @@ import type { BatchJobDisableOptions, BatchJobTerminateOptions, BatchJobCreateOptions, - BatchCertificate, BatchJobScheduleUpdateOptions, BatchJobSchedule, BatchJobScheduleCreateOptions, @@ -1734,217 +1733,6 @@ export type GetJobTaskCountsParameters = GetJobTaskCountsQueryParam & GetJobTaskCountsHeaderParam & RequestParameters; -export interface CreateCertificateHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -export interface CreateCertificateBodyParam { - /** The Certificate to be created. */ - body: BatchCertificate; -} - -export interface CreateCertificateQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; -} - -export interface CreateCertificateQueryParam { - queryParameters?: CreateCertificateQueryParamProperties; -} - -export interface CreateCertificateHeaderParam { - headers?: RawHttpHeadersInput & CreateCertificateHeaders; -} - -export interface CreateCertificateMediaTypesParam { - /** Type of content */ - contentType: "application/json; odata=minimalmetadata"; -} - -export type CreateCertificateParameters = CreateCertificateQueryParam & - CreateCertificateHeaderParam & - CreateCertificateMediaTypesParam & - CreateCertificateBodyParam & - RequestParameters; - -export interface ListCertificatesHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -/** This is the wrapper object for the parameter `$select` with explode set to false and style set to form. */ -export interface ListCertificatesSelectQueryParam { - /** Value of the parameter */ - value: string[]; - /** Should we explode the value? */ - explode: false; - /** Style of the value */ - style: "form"; -} - -export interface ListCertificatesQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; - /** - * The maximum number of items to return in the response. A maximum of 1000 - * applications can be returned. - */ - maxresults?: number; - /** - * 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. - */ - $filter?: string; - /** An OData $select clause. */ - $select?: string[] | ListCertificatesSelectQueryParam; -} - -export interface ListCertificatesQueryParam { - queryParameters?: ListCertificatesQueryParamProperties; -} - -export interface ListCertificatesHeaderParam { - headers?: RawHttpHeadersInput & ListCertificatesHeaders; -} - -export type ListCertificatesParameters = ListCertificatesQueryParam & - ListCertificatesHeaderParam & - RequestParameters; - -export interface CancelCertificateDeletionHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -export interface CancelCertificateDeletionQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; -} - -export interface CancelCertificateDeletionQueryParam { - queryParameters?: CancelCertificateDeletionQueryParamProperties; -} - -export interface CancelCertificateDeletionHeaderParam { - headers?: RawHttpHeadersInput & CancelCertificateDeletionHeaders; -} - -export type CancelCertificateDeletionParameters = CancelCertificateDeletionQueryParam & - CancelCertificateDeletionHeaderParam & - RequestParameters; - -export interface DeleteCertificateHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -export interface DeleteCertificateQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; -} - -export interface DeleteCertificateQueryParam { - queryParameters?: DeleteCertificateQueryParamProperties; -} - -export interface DeleteCertificateHeaderParam { - headers?: RawHttpHeadersInput & DeleteCertificateHeaders; -} - -export type DeleteCertificateParameters = DeleteCertificateQueryParam & - DeleteCertificateHeaderParam & - RequestParameters; - -export interface GetCertificateHeaders { - /** - * 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. - */ - "client-request-id"?: string; - /** Whether the server should return the client-request-id in the response. */ - "return-client-request-id"?: boolean; - /** - * 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. - */ - "ocp-date"?: string; -} - -/** This is the wrapper object for the parameter `$select` with explode set to false and style set to form. */ -export interface GetCertificateSelectQueryParam { - /** Value of the parameter */ - value: string[]; - /** Should we explode the value? */ - explode: false; - /** Style of the value */ - style: "form"; -} - -export interface GetCertificateQueryParamProperties { - /** The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". */ - timeOut?: number; - /** An OData $select clause. */ - $select?: string[] | GetCertificateSelectQueryParam; -} - -export interface GetCertificateQueryParam { - queryParameters?: GetCertificateQueryParamProperties; -} - -export interface GetCertificateHeaderParam { - headers?: RawHttpHeadersInput & GetCertificateHeaders; -} - -export type GetCertificateParameters = GetCertificateQueryParam & - GetCertificateHeaderParam & - RequestParameters; - export interface JobScheduleExistsHeaders { /** * The caller-generated request identity, in the form of a GUID with no decoration diff --git a/sdk/batch/batch-rest/src/responses.ts b/sdk/batch/batch-rest/src/responses.ts index e7b394cf4edb..1f652f3ceac0 100644 --- a/sdk/batch/batch-rest/src/responses.ts +++ b/sdk/batch/batch-rest/src/responses.ts @@ -17,9 +17,6 @@ import type { BatchJobListResultOutput, BatchJobPreparationAndReleaseTaskStatusListResultOutput, BatchTaskCountsResultOutput, - BatchCertificateListResultOutput, - BatchCertificateStateOutput, - BatchCertificateDeleteErrorOutput, BatchJobScheduleOutput, BatchJobScheduleListResultOutput, BatchTaskListResultOutput, @@ -735,132 +732,6 @@ export interface GetJobTaskCountsDefaultResponse extends HttpResponse { body: BatchErrorOutput; } -export interface CreateCertificate201Headers { - /** The OData ID of the resource to which the request applied. */ - dataserviceid: string; - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has succeeded and a new resource has been created as a result. */ -export interface CreateCertificate201Response extends HttpResponse { - status: "201"; - headers: RawHttpHeaders & CreateCertificate201Headers; -} - -export interface CreateCertificateDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface ListCertificates200Headers { - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has succeeded. */ -export interface ListCertificates200Response extends HttpResponse { - status: "200"; - body: BatchCertificateListResultOutput; - headers: RawHttpHeaders & ListCertificates200Headers; -} - -export interface ListCertificatesDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface CancelCertificateDeletion204Headers { - /** The OData ID of the resource to which the request applied. */ - dataserviceid: string; - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** There is no content to send for this request, but the headers may be useful. */ -export interface CancelCertificateDeletion204Response extends HttpResponse { - status: "204"; - headers: RawHttpHeaders & CancelCertificateDeletion204Headers; -} - -export interface CancelCertificateDeletionDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface DeleteCertificate202Headers { - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has been accepted for processing, but processing has not yet completed. */ -export interface DeleteCertificate202Response extends HttpResponse { - status: "202"; - headers: RawHttpHeaders & DeleteCertificate202Headers; -} - -export interface DeleteCertificateDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - -export interface GetCertificate200Headers { - /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ - etag?: string; - /** The time at which the resource was last modified. */ - "last-modified"?: string; - /** The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true. */ - "client-request-id"?: string; - /** A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch Account against which the request was made, and the region that Account resides in. */ - "request-id"?: string; -} - -/** The request has succeeded. */ -export interface GetCertificate200Response extends HttpResponse { - status: "200"; - body: { - thumbprint: string; - thumbprintAlgorithm: string; - url?: string; - state?: BatchCertificateStateOutput; - stateTransitionTime?: string; - previousState?: BatchCertificateStateOutput; - previousStateTransitionTime?: string; - publicData?: string; - deleteCertificateError?: BatchCertificateDeleteErrorOutput; - }; - headers: RawHttpHeaders & GetCertificate200Headers; -} - -export interface GetCertificateDefaultResponse extends HttpResponse { - status: string; - body: BatchErrorOutput; -} - export interface JobScheduleExists200Headers { /** The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers. */ etag?: string; diff --git a/sdk/batch/batch-rest/test/pools.spec.ts b/sdk/batch/batch-rest/test/pools.spec.ts index e7d875676cce..1ba4ecddba86 100644 --- a/sdk/batch/batch-rest/test/pools.spec.ts +++ b/sdk/batch/batch-rest/test/pools.spec.ts @@ -192,8 +192,7 @@ describe("Pool Operations Test", () => { metadata: [{ name: "foo", value: "bar" }], applicationPackageReferences: [], // Ensures the start task isn't cleared - startTask: { commandLine: "cmd /c echo hello > hello.txt" }, - certificateReferences: [], + startTask: { commandLine: "cmd /c echo hello > hello.txt" } }, contentType: "application/json; odata=minimalmetadata", }; @@ -318,10 +317,10 @@ describe("Pool Operations Test", () => { virtualMachineConfiguration: { imageReference: { publisher: "Canonical", - offer: "UbuntuServer", - sku: "18.04-LTS", + offer: "ubuntu-24_04-lts", + sku: "server-gen1", }, - nodeAgentSKUId: "batch.node.ubuntu 18.04", + nodeAgentSKUId: "batch.node.ubuntu 24.04", dataDisks: [ { lun: 1, @@ -535,16 +534,6 @@ describe("Pool Operations Test", () => { assert.equal(stopPoolResizeResult.status, "202"); }); - it("should list pools usage metrics", async () => { - const listPoolUsageResult = await batchClient.path("/poolusagemetrics").get(); - if (isUnexpected(listPoolUsageResult)) { - assert.fail(`Received unexpected status code from getting pool usage metrics: ${listPoolUsageResult.status} - Response Body: ${listPoolUsageResult.body.message}`); - } - - assert.isAtLeast(listPoolUsageResult.body?.value?.length ?? 0, 0); // No pool activity during this test - }); - it("should delete a pool successfully", async () => { const deleteResult = await batchClient .path("/pools/{poolId}", recorder.variable("BASIC_POOL", BASIC_POOL)) @@ -711,9 +700,9 @@ describe("Pool Operations Test", () => { vmSize: VMSIZE_D2s, virtualMachineConfiguration: { imageReference: { - publisher: "Canonical", - offer: "0001-com-ubuntu-server-jammy", - sku: "22_04-lts", + publisher: "canonical", + offer: "0001-com-ubuntu-confidential-vm-jammy", + sku: "22_04-lts-cvm", }, nodeAgentSKUId: "batch.node.ubuntu 22.04", securityProfile: { diff --git a/sdk/batch/batch-rest/tsconfig.browser.config.json b/sdk/batch/batch-rest/tsconfig.browser.config.json index 02629ab77995..907e1c7d4363 100644 --- a/sdk/batch/batch-rest/tsconfig.browser.config.json +++ b/sdk/batch/batch-rest/tsconfig.browser.config.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.browser.base.json", + "extends": ["./tsconfig.test.json", "../../../tsconfig.browser.base.json"], "compilerOptions": { "paths": { "@azure-rest/batch": ["./dist/browser/index.d.ts"], diff --git a/sdk/batch/batch-rest/tsconfig.test.json b/sdk/batch/batch-rest/tsconfig.test.json index 42798ad68913..290ca214aebc 100644 --- a/sdk/batch/batch-rest/tsconfig.test.json +++ b/sdk/batch/batch-rest/tsconfig.test.json @@ -1,14 +1,3 @@ { - "references": [ - { - "path": "./tsconfig.test.node.json" - }, - { - "path": "./tsconfig.browser.config.json" - } - ], - "compilerOptions": { - "composite": true - }, - "files": [] + "extends": ["./tsconfig.src.json", "../../../tsconfig.test.base.json"] } diff --git a/sdk/batch/batch-rest/tsp-location.yaml b/sdk/batch/batch-rest/tsp-location.yaml index 2a69f2bb7590..b5e15fb2e791 100644 --- a/sdk/batch/batch-rest/tsp-location.yaml +++ b/sdk/batch/batch-rest/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/batch/Azure.Batch -commit: 70d293f0964bb1e04738cc4192321f40d1dc93a1 +commit: ffdc67d225e2148e8f6c172c44cbc1d1ab77c8bd repo: Azure/azure-rest-api-specs additionalDirectories: diff --git a/sdk/batch/batch-rest/vitest.esm.config.ts b/sdk/batch/batch-rest/vitest.esm.config.ts new file mode 100644 index 000000000000..5e9735e9b144 --- /dev/null +++ b/sdk/batch/batch-rest/vitest.esm.config.ts @@ -0,0 +1,8 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { mergeConfig } from "vitest/config"; +import vitestConfig from "./vitest.config.ts"; +import vitestEsmConfig from "../../../vitest.esm.shared.config.ts"; + +export default mergeConfig(vitestConfig, vitestEsmConfig);